Class Emitter

java.lang.Object
com.icl.saxon.output.Emitter
All Implemented Interfaces:
Result
Direct Known Subclasses:
Builder, ContentHandlerProxy, DocumentHandlerProxy, DOMEmitter, ErrorEmitter, ProxyEmitter, StringEmitter, XMLEmitter

public abstract class Emitter extends Object implements Result
Emitter: This interface defines methods that must be implemented by components that format SAXON output. There is one emitter for XML, one for HTML, and so on. Additional methods are concerned with setting options and providing a Writer.

The interface is deliberately designed to be as close as possible to the standard SAX2 ContentHandler interface, however, it allows additional information to be made available.

  • Field Details

    • namePool

      protected NamePool namePool
    • systemId

      protected String systemId
    • writer

      protected Writer writer
    • outputStream

      protected OutputStream outputStream
    • outputProperties

      protected Properties outputProperties
    • locator

      protected Locator locator
  • Constructor Details

    • Emitter

      public Emitter()
  • Method Details

    • setNamePool

      public void setNamePool(NamePool namePool)
      Set the namePool in which all name codes can be found
    • getNamePool

      public NamePool getNamePool()
      Get the namepool used for this document
    • setSystemId

      public void setSystemId(String systemId)
      Set the System ID
      Specified by:
      setSystemId in interface Result
    • getSystemId

      public String getSystemId()
      Get the System ID
      Specified by:
      getSystemId in interface Result
    • setOutputProperties

      public void setOutputProperties(Properties props)
      Set the output properties
    • getOutputProperties

      public Properties getOutputProperties()
      Get the output properties
    • usesWriter

      public boolean usesWriter()
      Determine whether the Emitter wants a Writer for character output or an OutputStream for binary output
    • setWriter

      public void setWriter(Writer writer)
      Set the output destination as a character stream
    • getWriter

      public Writer getWriter()
      Get the output writer
    • setOutputStream

      public void setOutputStream(OutputStream stream)
      Set the output destination as a byte stream
    • getOutputStream

      public OutputStream getOutputStream()
      Get the output stream
    • startDocument

      public abstract void startDocument() throws TransformerException
      Notify document start
      Throws:
      TransformerException
    • endDocument

      public abstract void endDocument() throws TransformerException
      Notify document end
      Throws:
      TransformerException
    • startElement

      public abstract void startElement(int nameCode, Attributes attributes, int[] namespaces, int nscount) throws TransformerException
      Output an element start tag.
      Parameters:
      namespaces - Array of namespace codes identifying the namespace prefix/uri pairs associated with this element
      nscount - Number of significant entries within namespaces array
      Throws:
      TransformerException
    • endElement

      public abstract void endElement(int nameCode) throws TransformerException
      Output an element end tag
      Throws:
      TransformerException
    • characters

      public abstract void characters(char[] chars, int start, int len) throws TransformerException
      Output character data
      Throws:
      TransformerException
    • processingInstruction

      public abstract void processingInstruction(String name, String data) throws TransformerException
      Output a processing instruction
      Throws:
      TransformerException
    • comment

      public abstract void comment(char[] chars, int start, int length) throws TransformerException
      Output a comment.
      (The method signature is borrowed from the SAX2 LexicalHandler interface)
      Throws:
      TransformerException
    • setEscaping

      public void setEscaping(boolean escaping) throws TransformerException
      Switch escaping on or off. This is called when the XSLT disable-output-escaping attribute is used to switch escaping on or off. It is also called at the start and end of a CDATA section It is not called for other sections of output (e.g. comments) where escaping is inappropriate.
      Throws:
      TransformerException
    • setDocumentLocator

      public void setDocumentLocator(Locator locator)
      Set locator, to identify position in the document. Used only when supplying input from a parser.
    • setUnparsedEntity

      public void setUnparsedEntity(String name, String uri) throws TransformerException
      Set unparsed entity URI Used only when supplying input from a parser.
      Throws:
      TransformerException
    • makeEmitter

      public static Emitter makeEmitter(String className) throws TransformerException
      load a named output emitter or document handler and check it is OK.
      Throws:
      TransformerException