com.saxonica.schema.sdoc

## Class SchemaNodeFactory

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

- All Implemented Interfaces:
    Serializable, NodeFactory

      public class SchemaNodeFactory
      extends Object
      implements NodeFactory

  Class SchemaNodeFactory.
  A Factory for nodes in the schema document tree.
  Currently only allows Element nodes to be user-constructed.
  Author:
    Michael H. Kay
  See Also:
    Serialized Form

- - ### Constructor Summary

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

  - ### Method Summary

    Methods
    Modifier and Type | Method and 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, AttributeCollectionImpl attlist, NamespaceBinding[] namespaces, int namespacesUsed, PipelineConfiguration pipe, int locationId, int sequence)` Create an Element node.
    `TextImpl` | `makeTextNode(NodeInfo parent, CharSequence content)` Make a text node
    `SchemaException` | `registerId(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,
                                    AttributeCollectionImpl attlist,
                                    NamespaceBinding[] namespaces,
                                    int namespacesUsed,
                                    PipelineConfiguration pipe,
                                    int 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` - List of new namespace declarations for this element, as a sequence of namespace codes representing pairs of strings: (prefix1, uri1), (prefix2, uri2)...
        `namespacesUsed` - the number of elemnts of the namespaces array actually used
        `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.

    - #### makeTextNode

          public TextImpl makeTextNode(NodeInfo parent,
                              CharSequence content)

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

    - #### registerId

          public SchemaException registerId(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.

Copyright (c) 2004-2013 Saxonica Limited. All rights reserved.