Class XsdGeneratorHelper
- java.lang.Object
-
- org.codehaus.mojo.jaxb2.schemageneration.XsdGeneratorHelper
-
public final class XsdGeneratorHelper extends Object
Utility class holding algorithms used when generating XSD schema.- Since:
- 1.4
- Author:
- Lennart Jörelid
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static Map<String,SimpleNamespaceResolver>
getFileNameToResolverMap(File outputDirectory)
Acquires a map relating generated schema filename to its SimpleNamespaceResolver.protected static String
getHumanReadableXml(Node node)
Converts the provided DOM Node to a pretty-printed XML-formatted string.static int
insertJavaDocAsAnnotations(org.apache.maven.plugin.logging.Log log, String encoding, File outputDir, SearchableDocumentation docs, JavaDocRenderer renderer)
Inserts XML documentation annotations into all generated XSD files found within the supplied outputDir.static Document
parseXmlStream(Reader xmlStream)
Parses the provided InputStream to create a dom Document.static void
process(Node node, boolean recurseToChildren, NodeProcessor visitor)
Drives the supplied visitor to process the provided Node and all its children, should the recurseToChildren flag be set totrue
.static void
renameGeneratedSchemaFiles(Map<String,SimpleNamespaceResolver> resolverMap, List<TransformSchema> configuredTransformSchemas, org.apache.maven.plugin.logging.Log mavenLog, File schemaDirectory, String charsetName)
Updates all schemaLocation attributes within the generated schema files to match the 'file' properties within the Schemas read from the plugin configuration.static void
replaceNamespacePrefixes(Map<String,SimpleNamespaceResolver> resolverMap, List<TransformSchema> configuredTransformSchemas, org.apache.maven.plugin.logging.Log mavenLog, File schemaDirectory, String encoding)
Replaces all namespaces within generated schema files, as instructed by the configured Schema instances.static void
validateSchemasInPluginConfiguration(List<TransformSchema> configuredTransformSchemas)
Validates that the list of Schemas provided within the configuration all contain unique values.
-
-
-
Method Detail
-
getFileNameToResolverMap
public static Map<String,SimpleNamespaceResolver> getFileNameToResolverMap(File outputDirectory) throws org.apache.maven.plugin.MojoExecutionException
Acquires a map relating generated schema filename to its SimpleNamespaceResolver.- Parameters:
outputDirectory
- The output directory of the generated schema files.- Returns:
- a map relating generated schema filename to an initialized SimpleNamespaceResolver.
- Throws:
org.apache.maven.plugin.MojoExecutionException
- if two generated schema files used the same namespace URI.
-
validateSchemasInPluginConfiguration
public static void validateSchemasInPluginConfiguration(List<TransformSchema> configuredTransformSchemas) throws org.apache.maven.plugin.MojoExecutionException
Validates that the list of Schemas provided within the configuration all contain unique values. Should a MojoExecutionException be thrown, it contains informative text about the exact nature of the configuration problem - we should simplify for all plugin users.- Parameters:
configuredTransformSchemas
- The List of configuration schemas provided to this mojo.- Throws:
org.apache.maven.plugin.MojoExecutionException
- if any two configuredSchemas instances contain duplicate values for any of the properties uri, prefix or file. Also throws a MojoExecutionException if the uri of any Schema is null or empty, or if none of the 'file' and 'prefix' properties are given within any of the configuredSchema instances.
-
insertJavaDocAsAnnotations
public static int insertJavaDocAsAnnotations(org.apache.maven.plugin.logging.Log log, String encoding, File outputDir, SearchableDocumentation docs, JavaDocRenderer renderer)
Inserts XML documentation annotations into all generated XSD files found within the supplied outputDir.- Parameters:
log
- A Maven Log.outputDir
- The outputDir, where generated XSD files are found.docs
- The SearchableDocumentation for the source files within the compilation unit.renderer
- The JavaDocRenderer used to convert JavaDoc annotations into XML documentation annotations.- Returns:
- The number of processed XSDs.
-
replaceNamespacePrefixes
public static void replaceNamespacePrefixes(Map<String,SimpleNamespaceResolver> resolverMap, List<TransformSchema> configuredTransformSchemas, org.apache.maven.plugin.logging.Log mavenLog, File schemaDirectory, String encoding) throws org.apache.maven.plugin.MojoExecutionException
Replaces all namespaces within generated schema files, as instructed by the configured Schema instances.- Parameters:
resolverMap
- The map relating generated schema file name to SimpleNamespaceResolver instances.configuredTransformSchemas
- The Schema instances read from the configuration of this plugin.mavenLog
- The active Log.schemaDirectory
- The directory where all generated schema files reside.encoding
- The encoding to use when writing the file.- Throws:
org.apache.maven.plugin.MojoExecutionException
- If the namespace replacement could not be done.
-
renameGeneratedSchemaFiles
public static void renameGeneratedSchemaFiles(Map<String,SimpleNamespaceResolver> resolverMap, List<TransformSchema> configuredTransformSchemas, org.apache.maven.plugin.logging.Log mavenLog, File schemaDirectory, String charsetName)
Updates all schemaLocation attributes within the generated schema files to match the 'file' properties within the Schemas read from the plugin configuration. After that, the files are physically renamed.- Parameters:
resolverMap
- The map relating generated schema file name to SimpleNamespaceResolver instances.configuredTransformSchemas
- The Schema instances read from the configuration of this plugin.mavenLog
- The active Log.schemaDirectory
- The directory where all generated schema files reside.charsetName
- The encoding / charset name.
-
process
public static void process(Node node, boolean recurseToChildren, NodeProcessor visitor)
Drives the supplied visitor to process the provided Node and all its children, should the recurseToChildren flag be set totrue
. All attributes of the current node are processed before recursing to children (i.e. breadth first recursion).- Parameters:
node
- The Node to process.recurseToChildren
- iftrue
, processes all children of the supplied node recursively.visitor
- The NodeProcessor instance which should process the nodes.
-
parseXmlStream
public static Document parseXmlStream(Reader xmlStream)
Parses the provided InputStream to create a dom Document.- Parameters:
xmlStream
- An InputStream connected to an XML document.- Returns:
- A DOM Document created from the contents of the provided stream.
-
-