Package com.saxonica.ee.schema.sdoc

## Class SchemaNodeFactory

- java.lang.Object
- - com.saxonica.ee.schema.sdoc.SchemaNodeFactory

- All Implemented Interfaces:
    `NodeFactory`

      public class SchemaNodeFactory
      extends java.lang.Object
      implements NodeFactory

  Class SchemaNodeFactory.
  A Factory for nodes in the schema document tree.
  Currently only allows Element nodes to be user-constructed.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `SchemaNodeFactory​(SchemaCompiler compiler, PipelineConfiguration pipe, SchemaElement referrer)` | Create a SchemaNodeFactory, used for building the tree representation of a schema document

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `PipelineConfiguration` | `getPipelineConfiguration()` | Get the pipeline configuration
    `SchemaCompiler` | `getSchemaCompiler()` | Get the SchemaCompiler associated with this node factory
    `ElementImpl` | `makeElementNode​(NodeInfo parent, NodeName elemName, SchemaType elemType, boolean isNilled, AttributeMap attlist, NamespaceMap namespaces, PipelineConfiguration pipe, Location locationId, int sequence)` | Create an Element node.
    `TextImpl` | `makeTextNode​(NodeInfo parent, java.lang.CharSequence content)` | Make a text node
    `SchemaException` | `registerId​(java.lang.String id, SchemaElement element)` | Register an ID value found on an element in the schema document

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### SchemaNodeFactory

          public SchemaNodeFactory​(SchemaCompiler compiler,
                                   PipelineConfiguration pipe,
                                   SchemaElement referrer)

      Create a SchemaNodeFactory, used for building the tree representation of a schema document
      Parameters:
        `compiler` - used for error reporting
        `pipe` - the PipelineConfiguration
        `referrer` - the element, typically an xs:include, xs:import, or xs:redefine, that caused this schema document to be built

  - ### Method Detail

    - #### getPipelineConfiguration

          public PipelineConfiguration getPipelineConfiguration()

      Get the pipeline configuration
      Returns:
        the pipeline configuration

    - #### getSchemaCompiler

          public SchemaCompiler getSchemaCompiler()

      Get the SchemaCompiler associated with this node factory
      Returns:
        the SchemaCompiler associated with this node factory

    - #### makeElementNode

          public ElementImpl makeElementNode​(NodeInfo parent,
                                             NodeName elemName,
                                             SchemaType elemType,
                                             boolean isNilled,
                                             AttributeMap attlist,
                                             NamespaceMap namespaces,
                                             PipelineConfiguration pipe,
                                             Location locationId,
                                             int sequence)

      Create an Element node.
      Specified by:
        `makeElementNode` in interface `NodeFactory`
      Parameters:
        `parent` - The parent element
        `elemName` - The element name
        `elemType` - The type annotation of the element
        `isNilled` - true if the element is to be marked as nilled
        `attlist` - The attribute collection, excluding any namespace attributes
        `namespaces` - in-scope namespace declarations for this element
        `pipe` - The pipeline configuration (provides access to the error listener and the location provider)
        `locationId` - Indicates the source document and line number containing the node
        `sequence` - Sequence number to be assigned to represent document order.
      Returns:
        the element node

    - #### makeTextNode

          public TextImpl makeTextNode​(NodeInfo parent,
                                       java.lang.CharSequence content)

      Make a text node
      Specified by:
        `makeTextNode` in interface `NodeFactory`
      Parameters:
        `parent` - the parent element
        `content` - the content of the text node
      Returns:
        the constructed text node

    - #### registerId

          public SchemaException registerId​(java.lang.String id,
                                            SchemaElement element)

      Register an ID value found on an element in the schema document
      Parameters:
        `id` - the ID value
        `element` - the element on which the ID value appears
      Returns:
        a SchemaException if the ID value is invalid or non-unique: note this is returned, not thrown.