This outputter is used when writing a sequence of atomic values and nodes, for
example, when xsl:variable is used with content and an "as" attribute. The outputter
builds the sequence; the concrete subclass is responsible for deciding what to do with the
resulting items.
This class is not used to build temporary trees. For that, the ComplexContentOutputter
is used.
adviseReuse
protected boolean adviseReuse()
Decide whether reuse of the SequenceWriter is advisable
append
public void append(Item item,
int locationId,
int copyNamespaces)
throws XPathException
Append an item to the sequence, performing any necessary type-checking and conversion
- append in interface SequenceReceiver
attribute
public void attribute(int nameCode,
int typeCode,
CharSequence value,
int locationId,
int properties)
throws XPathException
Output an attribute value.
- attribute in interface Receiver
nameCode
- An integer code representing the name of the attribute, as held in the Name PooltypeCode
- Integer code identifying the type annotation of the attribute; zero represents
the default type (xs:untypedAtomic)value
- The value of the attributeproperties
- Bit significant flags for passing extra information to the serializer, e.g.
to disable escaping
XPathException
- if there is no start tag to write to (created using writeStartTag),
or if character content has been written since the start tag was written.
characters
public void characters(CharSequence s,
int locationId,
int properties)
throws XPathException
Produce text content output.
- characters in interface Receiver
s
- The String to be outputproperties
- bit-significant flags for extra information, e.g. disable-output-escaping
comment
public void comment(CharSequence comment,
int locationId,
int properties)
throws XPathException
Write a comment.
- comment in interface Receiver
hasOpenNodes
public boolean hasOpenNodes()
Determine whether there are any open document or element nodes in the output
namespace
public void namespace(int nscode,
int properties)
throws XPathException
Output a namespace declaration.
This is added to a list of pending namespaces for the current start tag.
If there is already another declaration of the same prefix, this one is
ignored.
Note that unlike SAX2 startPrefixMapping(), this call is made AFTER writing the start tag.
- namespace in interface Receiver
nscode
- The namespace codeproperties
- Allows special properties to be passed if required
XPathException
- if there is no start tag to write to (created using writeStartTag),
or if character content has been written since the start tag was written.
processingInstruction
public void processingInstruction(String target,
CharSequence data,
int locationId,
int properties)
throws XPathException
Write a processing instruction
No-op in this implementation
- processingInstruction in interface Receiver
startContent
public void startContent()
throws XPathException
The startContent() event is notified after all namespaces and attributes of an element
have been notified, and before any child nodes are notified.
- startContent in interface Receiver
startElement
public void startElement(int nameCode,
int typeCode,
int locationId,
int properties)
throws XPathException
Output an element start tag.
- startElement in interface Receiver
nameCode
- The element name code - a code held in the Name PooltypeCode
- Integer code identifying the type of this element. Zero identifies the default
type, that is xs:anyTypeproperties
- bit-significant flags indicating any special information
write
public abstract void write(Item item)
throws XPathException
Abstract method to be supplied by subclasses: output one item in the sequence.