java.lang.Object
org.codehaus.mojo.jaxb2.schemageneration.postprocessing.schemaenhancement.ChangeFilenameProcessor
All Implemented Interfaces:
NodeProcessor

public class ChangeFilenameProcessor extends Object implements NodeProcessor

NodeProcessor which alters the filename for generated XML schema files. The ChangeNamespacePrefixProcessor alters the following:

Schema Import Definitions
<xs:import namespace="http://some/namespace" schemaLocation="schema2.xsd"/> is altered to <xs:import namespace="http://some/namespace" schemaLocation="anotherFile.xsd"/>
Since:
1.4
  • Field Details

  • Constructor Details

    • ChangeFilenameProcessor

      public ChangeFilenameProcessor(Map<String,String> namespaceUriToNewFilenameMap)

      Creates a new ChangeFilenameProcessor using the provided map relating namespace URIs to desired new file names.

      Parameters:
      namespaceUriToNewFilenameMap - A map relating namespace URIs [key] to new/desired schema filenames [value].
  • Method Details

    • accept

      public boolean accept(Node aNode)
      Defines if this visitor should process the provided node.
      Specified by:
      accept in interface NodeProcessor
      Parameters:
      aNode - The DOM node to process.
      Returns:
      true if the provided Node should be processed by this NodeProcessor.
    • process

      public void process(Node aNode)
      Processes the provided DOM Node.
      Specified by:
      process in interface NodeProcessor
      Parameters:
      aNode - The DOM Node to process.
    • isSchemaLocationAttributeForKnownNamespaceUri

      private boolean isSchemaLocationAttributeForKnownNamespaceUri(Attr attribute)
      Discovers if the provided attribute is a schemaLocation definition, which should be changed by this ChangeFilenameProcessor. Such an attribute is on the form <xs:import namespace="http://a/registered/namespace" schemaLocation="schema1.xsd"/>.
      Parameters:
      attribute - the attribute to test.
      Returns:
      true if the provided attribute is a schemaLocation definition whose namespace is known to this ChangeFilenameProcessor.
    • getNamespace

      private String getNamespace(Attr attribute)
      Retrieves the value of the "namespace" attribute found within the parent element of the provided attribute.
      Parameters:
      attribute - An attribute defined within the parent holding the "namespace" attribute.
      Returns:
      The value of the "namespace" attribute.