Class SchemaHolder


  • public class SchemaHolder
    extends HolderBase
    External data for a schema definition. This tracks references to other schemas, along with the associated namespace information. The finish() method actually generates the includes.
    Author:
    Dennis M. Sosnoski
    • Field Detail

      • m_schema

        private final SchemaElement m_schema
        Actual schema definition.
      • m_typeNameSet

        private final UniqueNameSet m_typeNameSet
        Set of type names defined in schema (only for new schema definitions).
      • m_elementNameSet

        private final UniqueNameSet m_elementNameSet
        Set of element names defined in schema (also used for group/attributeGroup; only for new definitions).
      • m_fixedSet

        private java.util.Set m_fixedSet
        Set of schemas imported into this schema.
    • Constructor Detail

      • SchemaHolder

        public SchemaHolder​(java.lang.String uri)
        Constructor for new schema definition file.
        Parameters:
        uri - (null if no-namespace schema)
      • SchemaHolder

        public SchemaHolder​(SchemaElement schema)
        Constructor for existing schema definition file.
        Parameters:
        schema - schema definition
    • Method Detail

      • getSchema

        public SchemaElement getSchema()
        Get the schema definition.
        Returns:
        definition
      • addTypeName

        public java.lang.String addTypeName​(java.lang.String base)
        Add type name to set defined. This assures uniqueness of the name used, if necessary modifying the supplied base name to a unique alternative.
        Parameters:
        base - name to try adding
        Returns:
        name to be used for type
      • addElementName

        public java.lang.String addElementName​(java.lang.String base)
        Add element name to set defined. This assures uniqueness of the name used, if necessary modifying the supplied base name to a unique alternative. The same set of names is also used for groups and attributeGroups, even though these name sets are separate in schema terms. Doing things this way avoids the possibility of an element name matching a group name with the two representing different structures.
        Parameters:
        base - name to try adding
        Returns:
        name to be used for element
      • addNamespaceDecl

        protected void addNamespaceDecl​(java.lang.String prefix,
                                        java.lang.String uri)
        Implementation method to handle adding a namespace declaration. This sets up the namespace declaration for output in the generated XML.
        Specified by:
        addNamespaceDecl in class HolderBase
        Parameters:
        prefix -
        uri -
      • finish

        public void finish()
        Implementation method to handle references from this schema to other schemas. This adds import elements to the constructed schema for all referenced schemas.
        Overrides:
        finish in class HolderBase