Package com.icl.saxon.output
Class StringOutputter
- java.lang.Object
-
- com.icl.saxon.output.Outputter
-
- com.icl.saxon.output.StringOutputter
-
public final class StringOutputter extends Outputter
This class allows output to be generated. It channels output requests to an Emitter which does the actual writing. This is a specialized and simplified version that is used to handle xsl:attribute, xsl:comment, and xsl:processing-instruction.- Author:
- Michael H. Kay
-
-
Field Summary
Fields Modifier and Type Field Description (package private) java.lang.StringBuffer
buffer
(package private) javax.xml.transform.ErrorListener
errorListener
(package private) int
ignoreElements
-
Constructor Summary
Constructors Constructor Description StringOutputter(java.lang.StringBuffer buffer)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
checkAttributePrefix(int nameCode)
Check that the prefix for an attribute is acceptable, returning a substitute prefix if not.void
close()
Close the outputvoid
copyNamespaceNode(int nscode)
Copy a namespace node to the current element node (Rules defined in XSLT 1.0 errata)java.util.Properties
getOutputProperties()
void
reset()
Synchronize the state of the Outputter with that of the underlying Emittervoid
setErrorListener(javax.xml.transform.ErrorListener listener)
boolean
thereIsAnOpenStartTag()
Test whether there is an open start tag.void
write(java.lang.String s)
Produce literal output.void
writeAttribute(int nameCode, java.lang.String value, boolean noEscape)
Output an attribute value.void
writeComment(java.lang.String comment)
Write a comment.void
writeContent(char[] chars, int start, int length)
Produce text content output.void
writeContent(java.lang.String s)
Produce text content output.void
writeEndTag(int nameCode)
Output an element end tag.void
writeNamespaceDeclaration(int nscode)
Output a namespace declaration.void
writePI(java.lang.String target, java.lang.String data)
Write a processing instruction No-op in this implementationvoid
writeStartTag(int nameCode)
Output an element start tag.-
Methods inherited from class com.icl.saxon.output.Outputter
getEmitter, open, setEscaping, writeAttribute
-
-
-
-
Method Detail
-
setErrorListener
public void setErrorListener(javax.xml.transform.ErrorListener listener)
-
reset
public void reset() throws javax.xml.transform.TransformerException
Description copied from class:Outputter
Synchronize the state of the Outputter with that of the underlying Emitter
-
getOutputProperties
public java.util.Properties getOutputProperties()
- Specified by:
getOutputProperties
in classOutputter
-
write
public void write(java.lang.String s) throws javax.xml.transform.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().
-
writeContent
public void writeContent(java.lang.String s) throws javax.xml.transform.TransformerException
Produce text content output.
Special characters are escaped using XML/HTML conventions if the output format requires it.- Specified by:
writeContent
in classOutputter
- Parameters:
s
- The String to be output- Throws:
javax.xml.transform.TransformerException
- for any failure
-
writeContent
public void writeContent(char[] chars, int start, int length) throws javax.xml.transform.TransformerException
Produce text content output.
Special characters are escaped using XML/HTML conventions if the output format requires it.- Specified by:
writeContent
in classOutputter
- Parameters:
chars
- Character array to be outputstart
- start position of characters to be outputlength
- number of characters to be output- Throws:
javax.xml.transform.TransformerException
- for any failure
-
writeStartTag
public void writeStartTag(int nameCode) throws javax.xml.transform.TransformerException
Output an element start tag. With this outputter, this is a recoverable error.- Specified by:
writeStartTag
in classOutputter
- Parameters:
nameCode
- The element name code- Throws:
javax.xml.transform.TransformerException
-
checkAttributePrefix
public int checkAttributePrefix(int nameCode) throws javax.xml.transform.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.- Specified by:
checkAttributePrefix
in classOutputter
- Throws:
javax.xml.transform.TransformerException
-
writeNamespaceDeclaration
public void writeNamespaceDeclaration(int nscode) throws javax.xml.transform.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.- Specified by:
writeNamespaceDeclaration
in classOutputter
- Parameters:
nscode
- The namespace code- Throws:
javax.xml.transform.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.
-
copyNamespaceNode
public void copyNamespaceNode(int nscode) throws javax.xml.transform.TransformerException
Copy a namespace node to the current element node (Rules defined in XSLT 1.0 errata)- Specified by:
copyNamespaceNode
in classOutputter
- Throws:
javax.xml.transform.TransformerException
-
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.- Specified by:
thereIsAnOpenStartTag
in classOutputter
-
writeAttribute
public void writeAttribute(int nameCode, java.lang.String value, boolean noEscape) throws javax.xml.transform.TransformerException
Output an attribute value.
No-op in this implementation.- Specified by:
writeAttribute
in classOutputter
- Parameters:
name
- The name of the attributevalue
- The value of the attributenoEscape
- True if it's known there are no special characters in the value. If unsure, set this to false.- Throws:
javax.xml.transform.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.
-
writeEndTag
public void writeEndTag(int nameCode) throws javax.xml.transform.TransformerException
Output an element end tag.- Specified by:
writeEndTag
in classOutputter
- Parameters:
nameCode
- The element name code- Throws:
javax.xml.transform.TransformerException
-
writeComment
public void writeComment(java.lang.String comment) throws javax.xml.transform.TransformerException
Write a comment. No-op in this implementation- Specified by:
writeComment
in classOutputter
- Throws:
javax.xml.transform.TransformerException
-
writePI
public void writePI(java.lang.String target, java.lang.String data) throws javax.xml.transform.TransformerException
Write a processing instruction No-op in this implementation
-
-