## com.saxonica.sdoc
Class SchemaNodeFactory

    java.lang.Object
      com.saxonica.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.

Author:
  Michael H. Kay

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

Method Summary
`PipelineConfiguration` `getPipelineConfiguration()` Get the pipeline configuration
`SchemaCompiler` `getSchemaCompiler()` Get the SchemaCompiler associated with this node factory
`ElementImpl` `makeElementNode(NodeInfo parent, int nameCode, int typeCode, AttributeCollectionImpl attlist, int[] namespaces, int namespacesUsed, LocationProvider locator, int locationId, int sequence)` Create an Element 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,
                                       int nameCode,
                                       int typeCode,
                                       AttributeCollectionImpl attlist,
                                       int[] namespaces,
                                       int namespacesUsed,
                                       LocationProvider locator,
                                       int locationId,
                                       int sequence)

  Create an Element node.

  Specified by:
    `makeElementNode` in interface `NodeFactory`
  Parameters:
    `nameCode` - The element name
    `typeCode` -
    `attlist` - the attribute list
    `parent` - The parent element
    `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
    `locator` - Indicates the source document and line number containing the node
    `locationId` - Indicates the source document and line number containing the node
    `sequence` - Sequence number to be assigned to represent document order.

### 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.

Copyright (c) Saxonica Limited. All rights reserved.