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 Details

  • Constructor Details

    • StringOutputter

      public StringOutputter(StringBuffer buffer)
  • Method Details

    • setErrorListener

      public void setErrorListener(ErrorListener listener)
    • reset

      public void reset() throws TransformerException
      Description copied from class: Outputter
      Synchronize the state of the Outputter with that of the underlying Emitter
      Specified by:
      reset in class Outputter
      Throws:
      TransformerException
    • getOutputProperties

      public Properties getOutputProperties()
      Specified by:
      getOutputProperties in class Outputter
    • 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().
      Specified by:
      write in class Outputter
      Throws:
      TransformerException
    • 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.
      Specified by:
      writeContent in class Outputter
      Parameters:
      s - The String to be output
      Throws:
      TransformerException - for any failure
    • 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.
      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:
      TransformerException - for any failure
    • writeStartTag

      public void writeStartTag(int nameCode) throws 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
      Throws:
      TransformerException
    • 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.
      Specified by:
      checkAttributePrefix in class Outputter
      Throws:
      TransformerException
    • 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.
      Specified by:
      writeNamespaceDeclaration in class Outputter
      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.
    • copyNamespaceNode

      public void copyNamespaceNode(int nscode) throws TransformerException
      Copy a namespace node to the current element node (Rules defined in XSLT 1.0 errata)
      Specified by:
      copyNamespaceNode in class Outputter
      Throws:
      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, String value, boolean noEscape) throws 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.
      name - The name 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.
    • writeEndTag

      public void writeEndTag(int nameCode) throws TransformerException
      Output an element end tag.
      Specified by:
      writeEndTag in class Outputter
      Parameters:
      nameCode - The element name code
      Throws:
      TransformerException
    • writeComment

      public void writeComment(String comment) throws TransformerException
      Write a comment. No-op in this implementation
      Specified by:
      writeComment in class Outputter
      Throws:
      TransformerException
    • writePI

      public void writePI(String target, String data) throws TransformerException
      Write a processing instruction No-op in this implementation
      Specified by:
      writePI in class Outputter
      Throws:
      TransformerException
    • close

      public void close() throws TransformerException
      Close the output
      Specified by:
      close in class Outputter
      Throws:
      TransformerException