net.sf.saxon.event
public class TreeReceiver extends SequenceReceiver
If atomic items are appended to the sequence, then adjacent atomic items are turned in to a text node by converting them to strings and adding a single space as a separator.
If a document node is appended to the sequence, then the document node is ignored and its children are appended to the sequence.
If any other node is appended to the sequence, then it is pushed to the result as a sequence of Receiver events, which may involve walking recursively through the contents of a tree.
Constructor Summary | |
---|---|
TreeReceiver(Receiver nextInChain)
Create a TreeReceiver |
Method Summary | |
---|---|
void | append(Item item, int locationId, int copyNamespaces)
Append an arbitrary item (node or atomic value) to the output |
void | attribute(int nameCode, int typeCode, CharSequence value, int locationId, int properties)
Notify an attribute. |
void | characters(CharSequence chars, int locationId, int properties)
Character data |
void | close()
End of event sequence |
void | comment(CharSequence chars, int locationId, int properties)
Output a comment |
void | endDocument()
Notify the end of a document node |
void | endElement()
End of element |
Receiver | getUnderlyingReceiver()
Get the underlying Receiver (that is, the next one in the pipeline) |
void | namespace(int namespaceCode, int properties)
Notify a namespace. |
void | open()
Start of event sequence |
void | processingInstruction(String target, CharSequence data, int locationId, int properties)
Processing Instruction |
void | setPipelineConfiguration(PipelineConfiguration pipe) |
void | setSystemId(String systemId) |
void | setUnparsedEntity(String name, String uri, String publicId)
Set the URI for an unparsed entity in the document. |
void | startContent()
Notify the start of the content, that is, the completion of all attributes and namespaces.
|
void | startDocument(int properties)
Start of a document node. |
void | startElement(int nameCode, int typeCode, int locationId, int properties)
Notify the start of an element |
boolean | usesTypeAnnotations()
Ask whether this Receiver (or the downstream pipeline) makes any use of the type annotations
supplied on element and attribute events |
Parameters: nextInChain the receiver to which events will be directed, after expanding append events into more primitive tree-based events
Parameters: nameCode The name of the attribute, as held in the name pool typeCode The type of the attribute, as held in the name pool properties Bit significant value. The following bits are defined:
Throws: IllegalStateException: attempt to output an attribute when there is no open element start tag
Returns: the underlying Receiver
Parameters: namespaceCode an integer: the top half is a prefix code, the bottom half a URI code. These may be translated into an actual prefix and URI using the name pool. A prefix code of zero represents the empty prefix (that is, the default namespace). A URI code of zero represents a URI of "", that is, a namespace undeclaration.
Throws: IllegalStateException: attempt to output a namespace when there is no open element start tag
Parameters: nameCode integer code identifying the name of the element within the name pool. typeCode integer code identifying the element's type within the name pool. properties bit-significant properties of the element node
Returns: true if the Receiver makes any use of this information. If false, the caller may supply untyped nodes instead of supplying the type annotation