Class ContentHandlerProxy

java.lang.Object
com.icl.saxon.output.Emitter
com.icl.saxon.output.ContentHandlerProxy
All Implemented Interfaces:
Result, Locator

public class ContentHandlerProxy extends Emitter implements Locator
A ContentHandlerProxy is an Emitter that filters data before passing it to an underlying SAX2 ContentHandler. Relevant events (notably comments) can also be fed to a LexicalHandler. Note that in general the output passed to an Emitter corresponds to an External General Parsed Entity. A SAX2 ContentHandler only expects to deal with well-formed XML documents, so we only pass it the contents of the first element encountered.
  • Field Details

    • handler

      protected ContentHandler handler
    • lexicalHandler

      protected LexicalHandler lexicalHandler
    • locator

      protected Locator locator
    • requireWellFormed

      protected boolean requireWellFormed
  • Constructor Details

    • ContentHandlerProxy

      public ContentHandlerProxy()
  • Method Details

    • setUnderlyingContentHandler

      public void setUnderlyingContentHandler(ContentHandler handler)
      Set the underlying content handler. This call is mandatory before using the Emitter.
    • setOutputProperties

      public void setOutputProperties(Properties props)
      Set the output properties
      Overrides:
      setOutputProperties in class Emitter
    • setLexicalHandler

      public void setLexicalHandler(LexicalHandler handler)
      Set the Lexical Handler to be used. If called, this must be called AFTER setUnderlyingContentHandler()
    • setRequireWellFormed

      public void setRequireWellFormed(boolean wellFormed)
      Indicate whether the content handler can handle a stream of events that is merely well-balanced, or whether it can only handle a well-formed sequence.
    • setDocumentLocator

      public void setDocumentLocator(Locator locator)
      Set Document Locator
      Overrides:
      setDocumentLocator in class Emitter
    • startDocument

      public void startDocument() throws TransformerException
      Start of document
      Specified by:
      startDocument in class Emitter
      Throws:
      TransformerException
    • endDocument

      public void endDocument() throws TransformerException
      End of document
      Specified by:
      endDocument in class Emitter
      Throws:
      TransformerException
    • startElement

      public void startElement(int nameCode, Attributes atts, int[] namespaces, int nscount) throws TransformerException
      Start of element
      Specified by:
      startElement in class Emitter
      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 void endElement(int nameCode) throws TransformerException
      End of element
      Specified by:
      endElement in class Emitter
      Throws:
      TransformerException
    • characters

      public void characters(char[] chars, int start, int len) throws TransformerException
      Character data
      Specified by:
      characters in class Emitter
      Throws:
      TransformerException
    • notifyNotWellFormed

      protected void notifyNotWellFormed() throws SAXException
      The following function notifies the content handler, by means of a processing instruction, that the output is not a well-formed document. If the content handler responds with an exception containing the message "continue" (this is the only way it can get information back) then further events are notified, otherwise they are suppressed.
      Throws:
      SAXException
    • processingInstruction

      public void processingInstruction(String target, String data) throws TransformerException
      Processing Instruction
      Specified by:
      processingInstruction in class Emitter
      Throws:
      TransformerException
    • comment

      public void comment(char[] ch, int start, int length) throws TransformerException
      Output a comment. Passes it on to the ContentHandler provided that the ContentHandler is also a SAX2 LexicalHandler.
      Specified by:
      comment in class Emitter
      Throws:
      TransformerException
    • setEscaping

      public void setEscaping(boolean escaping)
      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 not called for other sections of output (e.g. element names) where escaping is inappropriate. The action, as defined in JAXP 1.1, is to notify the request to the Content Handler using a processing instruction.
      Overrides:
      setEscaping in class Emitter
    • getPublicId

      public String getPublicId()
      Specified by:
      getPublicId in interface Locator
    • getLineNumber

      public int getLineNumber()
      Specified by:
      getLineNumber in interface Locator
    • getColumnNumber

      public int getColumnNumber()
      Specified by:
      getColumnNumber in interface Locator