## 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.

Field Summary

Fields inherited from class com.icl.saxon.output.Outputter
`emitter`

Constructor Summary
`StringOutputter(java.lang.StringBuffer buffer)`

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)
`java.util.Properties` `getOutputProperties()`
`void` `reset()` Synchronize the state of the Outputter with that of the underlying Emitter
`void` `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 implementation
`void` `writeStartTag(int nameCode)` Output an element start tag.

Methods inherited from class com.icl.saxon.output.Outputter
`getEmitter, open, setEscaping, writeAttribute`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### StringOutputter

    public StringOutputter(java.lang.StringBuffer buffer)

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

  Specified by:
    `reset` in class `Outputter`
    `javax.xml.transform.TransformerException`

### getOutputProperties

    public java.util.Properties getOutputProperties()

  Specified by:
    `getOutputProperties` in class `Outputter`

### 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().

  Specified by:
    `write` in class `Outputter`
    `javax.xml.transform.TransformerException`

### 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 class `Outputter`
  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 class `Outputter`
  Parameters:
    `chars` - Character array to be output
    `start` - start position of characters to be output
    `length` - 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 class `Outputter`
  Parameters:
    `nameCode` - The element name code
    `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 class `Outputter`
    `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 class `Outputter`
  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 class `Outputter`
    `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 class `Outputter`

### 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 class `Outputter`
  Parameters:
    `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:
    `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 class `Outputter`
  Parameters:
    `nameCode` - The element name code
    `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 class `Outputter`
    `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

  Specified by:
    `writePI` in class `Outputter`
    `javax.xml.transform.TransformerException`

### close

    public void close()
               throws javax.xml.transform.TransformerException

  Close the output

  Specified by:
    `close` in class `Outputter`
    `javax.xml.transform.TransformerException`