com.icl.saxon.output
Class GeneralOutputter
public
class
GeneralOutputter
extends Outputter
This class allows output to be generated. It channels output requests to an
Emitter which does the actual writing.
Author: Michael H. Kay
Method Summary |
int | checkAttributePrefix(int nameCode)
Check that the prefix for an attribute is acceptable, returning a substitute
prefix if not. |
void | close()
Close the output |
void | copyNamespaceNode(int nscode)
Copy a namespace node to the current element node
(Rules defined in XSLT 1.0 errata) |
protected void | flushStartTag()
Flush out a pending start tag |
Properties | getOutputProperties() |
Emitter | makeEmitter(Properties props, Result result)
Make an emitter appropriate for a given set of output properties and
output destination. |
static FileOutputStream | makeFileOutputStream(String baseURI, String fileName, boolean mkdirs)
Create a new FileOutputStream, given a filename and a baseURI |
void | reset() |
void | setOutputDestination(Properties props, Result result)
Initialise the outputter for a new output destination, supplying
the output format details. |
boolean | thereIsAnOpenStartTag()
Test whether there is an open start tag. |
static String | urlToFileName(String base)
The following atrocious code is borrowed from Xalan, where it is commented simply:
// yuck.
|
void | write(String s) |
void | writeAttribute(int nameCode, String value)
Output an attribute value. |
void | writeAttribute(int nameCode, String value, boolean noEscape)
Output an attribute value. |
void | writeComment(String comment)
Write a comment |
void | writeContent(String s)
Produce text content output. |
void | writeContent(char[] chars, int start, int length)
Produce text content output. |
void | writeContent(StringBuffer chars, int start, int len)
Produce text content output. |
void | writeEndTag(int nameCode)
Output an element end tag.
|
void | writeNamespaceDeclaration(int nscode)
Output a namespace declaration. |
void | writePI(String target, String data)
Write a processing instruction |
void | writeStartTag(int nameCode)
Output an element start tag. |
char[] charbuffer
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().
public int checkAttributePrefix(int nameCode)
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.
public void close()
Close the output
public void copyNamespaceNode(int nscode)
Copy a namespace node to the current element node
(Rules defined in XSLT 1.0 errata)
protected void flushStartTag()
Flush out a pending start tag
public Properties getOutputProperties()
public
Emitter makeEmitter(Properties props, Result result)
Make an emitter appropriate for a given set of output properties and
output destination. Also updates the output properties
public static FileOutputStream makeFileOutputStream(String baseURI, String fileName, boolean mkdirs)
Create a new FileOutputStream, given a filename and a baseURI
public void reset()
public void setOutputDestination(Properties props, Result result)
Initialise the outputter for a new output destination, supplying
the output format details.
Parameters: outputProperties Details of the new output format result Details of the new output destination
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.
public static String urlToFileName(String base)
The following atrocious code is borrowed from Xalan, where it is commented simply:
// yuck.
The backslash variants added by MHK.
public void write(String s)
public void writeAttribute(int nameCode, String value)
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.
Parameters: nameCode The name code of the attribute value The value of the attribute
Throws: TransformerException 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.
public void writeAttribute(int nameCode, String value, boolean noEscape)
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.
Parameters: name The name of the attribute value The value of the attribute noEscape True if it's known there are no special characters in the value. If
unsure, set this to false.
Throws: TransformerException 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.
public void writeComment(String comment)
Write a comment
public void writeContent(String s)
Produce text content output.
Special characters are escaped using XML/HTML conventions if the output format
requires it.
Parameters: s The String to be output
Throws: TransformerException for any failure
public void writeContent(char[] chars, int start, int length)
Produce text content output.
Special characters are escaped using XML/HTML conventions if the output format
requires it.
Parameters: chars Character array to be output start start position of characters to be output length number of characters to be output
Throws: TransformerException for any failure
public void writeContent(StringBuffer chars, int start, int len)
Produce text content output.
Special characters are escaped using XML/HTML conventions if the output format
requires it.
Parameters: chars StringBuffer containing to be output start start position of characters to be output len number of characters to be output
Throws: TransformerException for any failure
public void writeEndTag(int nameCode)
Output an element end tag.
Parameters: nameCode The element name code
public void writeNamespaceDeclaration(int nscode)
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.
Parameters: nscode The namespace code
Throws: TransformerException 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.
public void writePI(String target, String data)
Write a processing instruction
public void writeStartTag(int nameCode)
Output an element start tag.
The actual output of the tag is deferred until all attributes have been output
using writeAttribute().
Parameters: nameCode The element name code