This class allows output to be generated. It channels output requests to an
Emitter which does the actual writing. This is an abstract class, there are
concrete implementions for XML output and text output.
checkAttributePrefix
public int checkAttributePrefix(int nameCode)
throws TransformerException
Check that the prefix for an attribute is acceptable, returning a substitute
prefix if not. The prefix is acceptable unless a namespace declaration has been
written that assignes this prefix to a different namespace URI. This method
also checks that the attribute namespace has been declared, and declares it
if not.
close
public void close()
throws TransformerException
Close the output
copyNamespaceNode
public void copyNamespaceNode(int nscode)
throws TransformerException
Copy a namespace node to the current element node
(Rules defined in XSLT 1.0 errata)
getEmitter
public Emitter getEmitter()
throws TransformerException
Get emitter. This is used by xsl:copy-of, a fragment is copied directly to the
Emitter rather than going via the Outputter.
getOutputProperties
public Properties getOutputProperties()
open
public final void open()
throws TransformerException
Start the output process
reset
public void reset()
throws TransformerException
Synchronize the state of the Outputter with that of the underlying Emitter
setEscaping
public final void setEscaping(boolean escaping)
throws TransformerException
Switch escaping (of special characters) on or off.
thereIsAnOpenStartTag
public boolean thereIsAnOpenStartTag()
Test whether there is an open start tag. This determines whether it is
possible to write an attribute node at this point.
write
public void write(String s)
throws TransformerException
Produce literal output. This is written as is, without any escaping.
The method is provided for Java applications that wish to output literal HTML text.
It is not used by the XSL system, which always writes using specific methods such as
writeStartTag().
writeAttribute
public void writeAttribute(int nameCode,
String value)
throws TransformerException
Output an attribute value.
This is added to a list of pending attributes for the current start tag, overwriting
any previous attribute with the same name.
This method should NOT be used to output namespace declarations.
nameCode
- The name code of the attributevalue
- The value of the attribute
writeAttribute
public void writeAttribute(int nameCode,
String value,
boolean noEscape)
throws TransformerException
Output an attribute value.
This is added to a list of pending attributes for the current start tag, overwriting
any previous attribute with the same name.
This method should NOT be used to output namespace declarations.
Before calling this, checkAttributePrefix() should be called to ensure the namespace
is OK.
value
- The value of the attributenoEscape
- True if it's known there are no special characters in the value. If
unsure, set this to false.
writeComment
public void writeComment(String comment)
throws TransformerException
Write a comment
writeContent
public void writeContent(String s)
throws TransformerException
Produce text content output.
Special characters are escaped using XML/HTML conventions if the output format
requires it.
s
- The String to be output
writeContent
public void writeContent(char[] chars,
int start,
int length)
throws TransformerException
Produce text content output.
Special characters are escaped using XML/HTML conventions if the output format
requires it.
chars
- Character array to be outputstart
- start position of characters to be outputlength
- number of characters to be output
writeEndTag
public void writeEndTag(int nameCode)
throws TransformerException
Output an element end tag.
nameCode
- The element name code
writeNamespaceDeclaration
public void writeNamespaceDeclaration(int nscode)
throws TransformerException
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.
nscode
- The namespace code
writePI
public void writePI(String target,
String data)
throws TransformerException
Write a processing instruction
writeStartTag
public void writeStartTag(int nameCode)
throws TransformerException
Output an element start tag.
The actual output of the tag is deferred until all attributes have been output
using writeAttribute().
nameCode
- The element name code