com.icl.saxon.tree
Class TreeBuilder

java.lang.Object
  extended bycom.icl.saxon.output.Emitter
      extended bycom.icl.saxon.om.Builder
          extended bycom.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