## com.icl.saxon.tree
Class TreeBuilder

    java.lang.Object
      com.icl.saxon.output.Emitter
          com.icl.saxon.om.Builder
              com.icl.saxon.tree.TreeBuilder

All Implemented Interfaces:
  org.xml.sax.ErrorHandler, org.xml.sax.Locator, Result, SourceLocator

public class TreeBuilder
extends Builder

The Builder class is responsible for taking a stream of SAX events and constructing a Document tree.

Field Summary

Fields inherited from class com.icl.saxon.om.Builder
`columnNumber, controller, currentDocument, discardComments, errorHandler, errorListener, errorOutput, estimatedLength, failed, inDTD, lineNumber, lineNumbering, previewManager, STANDARD_TREE, started, stripper, timing, TINY_TREE`

Fields inherited from class com.icl.saxon.output.Emitter
`locator, namePool, outputProperties, outputStream, systemId, writer`

Fields inherited from interface javax.xml.transform.Result
`PI_DISABLE_OUTPUT_ESCAPING, PI_ENABLE_OUTPUT_ESCAPING`

Constructor Summary
`TreeBuilder()` create a Builder and initialise variables

Method Summary
`void` `characters(char[] ch, int start, int length)` Callback interface for SAX: not for application use
`void` `comment(char[] ch, int start, int length)` Callback interface for SAX (part of LexicalHandler interface): not for application use
`void` `endDocument()` Callback interface for SAX: not for application use
`void` `endElement(int nameCode)` Callback interface for SAX: not for application use
`void` `graftElement(ElementImpl element)` graftElement() allows an element node to be transferred from one tree to another.
`void` `processingInstruction(java.lang.String name, java.lang.String remainder)` Callback interface for SAX: not for application use Note: because SAX1 does not deliver comment nodes, we get these in the form of a processing instruction with a null name.
`void` `setDocumentLocator(org.xml.sax.Locator locator)` Callback interface for SAX: not for application use
`void` `setNodeFactory(NodeFactory factory)` Set the Node Factory to use.
`void` `setUnparsedEntity(java.lang.String name, java.lang.String uri)` Set an unparsed entity URI for the document
`void` `startDocument()` Callback interface for SAX: not for application use
`void` `startElement(int nameCode, org.xml.sax.Attributes attributes, int[] namespaces, int namespacesUsed)` Callback interface for SAX: not for application use

Methods inherited from class com.icl.saxon.om.Builder
`build, error, fatalError, getColumnNumber, getCurrentDocument, getLineNumber, getPublicId, getStripper, isTiming, reportError, setController, setDiscardCommentsAndPIs, setErrorHandler, setErrorListener, setErrorOutput, setLineNumbering, setPreviewManager, setRootNode, setStripper, setTiming, warning`

Methods inherited from class com.icl.saxon.output.Emitter
`getNamePool, getOutputProperties, getOutputStream, getSystemId, getWriter, makeEmitter, setEscaping, setNamePool, setOutputProperties, setOutputStream, setSystemId, setWriter, usesWriter`

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

Methods inherited from interface org.xml.sax.Locator
`getSystemId`

Methods inherited from interface javax.xml.transform.SourceLocator
`getSystemId`

Constructor Detail

### TreeBuilder

    public TreeBuilder()

  create a Builder and initialise variables

Method Detail

### setNodeFactory

    public void setNodeFactory(NodeFactory factory)

  Set the Node Factory to use. If none is specified, the Builder uses its own.

### startDocument

    public void startDocument()
                       throws TransformerException

  Callback interface for SAX: not for application use

  Specified by:
    `startDocument` in class `Emitter`
  Throws:
    `TransformerException`

### endDocument

    public void endDocument()
                     throws TransformerException

  Callback interface for SAX: not for application use

  Specified by:
    `endDocument` in class `Emitter`
  Throws:
    `TransformerException`

### setDocumentLocator

    public void setDocumentLocator(org.xml.sax.Locator locator)

  Callback interface for SAX: not for application use

  Overrides:
    `setDocumentLocator` in class `Emitter`

### startElement

    public void startElement(int nameCode,
                             org.xml.sax.Attributes attributes,
                             int[] namespaces,
                             int namespacesUsed)
                      throws TransformerException

  Callback interface for SAX: not for application use

  Specified by:
    `startElement` in class `Emitter`
  Parameters:
    `namespaces` - Array of namespace codes identifying the namespace prefix/uri pairs associated with this element
    `namespacesUsed` - Number of significant entries within namespaces array
  Throws:
    `TransformerException`

### endElement

    public void endElement(int nameCode)
                    throws TransformerException

  Callback interface for SAX: not for application use

  Specified by:
    `endElement` in class `Emitter`
  Throws:
    `TransformerException`

### characters

    public void characters(char[] ch,
                           int start,
                           int length)
                    throws TransformerException

  Callback interface for SAX: not for application use

  Specified by:
    `characters` in class `Emitter`
  Throws:
    `TransformerException`

### processingInstruction

    public void processingInstruction(java.lang.String name,
                                      java.lang.String remainder)

  Callback interface for SAX: not for application use
  Note: because SAX1 does not deliver comment nodes, we get these in the form of a processing instruction with a null name. This requires a specially-adapted SAX driver.

  Specified by:
    `processingInstruction` in class `Emitter`

### comment

    public void comment(char[] ch,
                        int start,
                        int length)
                 throws TransformerException

  Callback interface for SAX (part of LexicalHandler interface): not for application use

  Specified by:
    `comment` in class `Emitter`
  Throws:
    `TransformerException`

### graftElement

    public void graftElement(ElementImpl element)
                      throws TransformerException

  graftElement() allows an element node to be transferred from one tree to another. This is a dangerous internal interface which is used only to contruct a stylesheet tree from a stylesheet using the "literal result element as stylesheet" syntax. The supplied element is grafted onto the current element as its only child.

  Throws:
    `TransformerException`

### setUnparsedEntity

    public void setUnparsedEntity(java.lang.String name,
                                  java.lang.String uri)

  Set an unparsed entity URI for the document

  Specified by:
    `setUnparsedEntity` in class `Builder`