## net.sf.saxon.style
Class StyleNodeFactory

    java.lang.Object
      net.sf.saxon.style.StyleNodeFactory

All Implemented Interfaces:
  Serializable, NodeFactory

Direct Known Subclasses:
  StyleNodeFactoryPE

    public class StyleNodeFactory

extends Object
implements NodeFactory

Class StyleNodeFactory.
A Factory for nodes in the stylesheet tree.
Currently only allows Element nodes to be user-constructed.

Author:
  Michael H. Kay
See Also:
  Serialized Form

Field Summary
`protected Configuration` `config`
`protected NamePool` `namePool`
`protected DecimalValue` `processorVersion`

Constructor Summary
`StyleNodeFactory(Configuration config)` Create the node factory for representing an XSLT stylesheet as a tree structure

Method Summary
`DecimalValue` `getXsltProcessorVersion()` Get the XSLT processor version to be used by this node factory.
`boolean` `isElementAvailable(String uri, String localName)` Method to support the element-available() function
`ElementImpl` `makeElementNode(NodeInfo parent, int nameCode, int typeCode, AttributeCollectionImpl attlist, int[] namespaces, int namespacesUsed, PipelineConfiguration pipe, int locationId, int sequence)` Create an Element node.
`protected StyleElement` `makeXSLElement(int f)` Make an XSL element node
`void` `setXsltProcessorVersion(DecimalValue version)` Set the XSLT processor version to be used by this node factory.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### config

    protected Configuration config

### namePool

    protected NamePool namePool

### processorVersion

    protected DecimalValue processorVersion

Constructor Detail

### StyleNodeFactory

    public StyleNodeFactory(Configuration config)

  Create the node factory for representing an XSLT stylesheet as a tree structure

  Parameters:
    `config` - the Saxon configuration

Method Detail

### setXsltProcessorVersion

    public void setXsltProcessorVersion(DecimalValue version)

  Set the XSLT processor version to be used by this node factory. This must be 0.0, 2.0 or 3.0. The value 3.0 is ignored in Saxon-HE. The value 0.0 indicates that the processor version is to be taken from the version attribute of the xsl:stylesheet element.

### getXsltProcessorVersion

    public DecimalValue getXsltProcessorVersion()

  Get the XSLT processor version to be used by this node factory.

  Returns:
    the processor version (always 2.0 or 3.0 once the stylesheet version attribute has been read)

### makeElementNode

    public ElementImpl makeElementNode(NodeInfo parent,
                                       int nameCode,
                                       int typeCode,
                                       AttributeCollectionImpl attlist,
                                       int[] namespaces,
                                       int namespacesUsed,
                                       PipelineConfiguration pipe,
                                       int locationId,
                                       int sequence)

  Create an Element node. Note, if there is an error detected while constructing the Element, we add the element anyway, and return success, but flag the element with a validation error. This allows us to report more than one error from a single compilation.

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

### makeXSLElement

    protected StyleElement makeXSLElement(int f)

  Make an XSL element node

  Parameters:
    `f` - the fingerprint of the node name
  Returns:
    the constructed element node

### isElementAvailable

    public boolean isElementAvailable(String uri,
                                      String localName)

  Method to support the element-available() function

  Parameters:
    `uri` - the namespace URI
    `localName` - the local Name
  Returns:
    true if an extension element of this name is recognized

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