## net.sf.saxon.event
Class ReceivingContentHandler

    java.lang.Object
      net.sf.saxon.event.ReceivingContentHandler

All Implemented Interfaces:
  org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.ext.LexicalHandler

Direct Known Subclasses:
  IdentityTransformerHandler, TemplatesHandlerImpl, TransformerHandlerImpl

    public class ReceivingContentHandler

extends java.lang.Object
implements org.xml.sax.ContentHandler, org.xml.sax.ext.LexicalHandler, org.xml.sax.DTDHandler

ReceivingContentHandler is a glue class that provides a standard SAX ContentHandler interface to a Saxon Receiver. To achieve this it needs to map names supplied as strings to numeric name codes, for which purpose it needs access to a name pool. The class also performs the function of assembling adjacent text nodes.

The class was previously named ContentEmitter.

If the input stream contains the processing instructions assigned by JAXP to switch disable-output-escaping on or off, these will be reflected in properties set in the corresponding characters events. In this case adjacent text nodes will not be combined.

Author:
  Michael H. Kay

Constructor Summary
`ReceivingContentHandler()` Create a ReceivingContentHandler and initialise variables

Method Summary
`void` `characters(char[] ch, int start, int length)` Report character data.
`void` `comment(char[] ch, int start, int length)` Notify the existence of a comment.
`void` `endCDATA()`
`void` `endDocument()` Receive notification of the end of a document
`void` `endDTD()` Register the end of the DTD.
`void` `endElement(java.lang.String uri, java.lang.String localname, java.lang.String rawname)` Report the end of an element (the close tag)
`void` `endEntity(java.lang.String name)`
`void` `endPrefixMapping(java.lang.String prefix)` Notify that a namespace binding is going out of scope
`Configuration` `getConfiguration()` Get the Configuration object
`PipelineConfiguration` `getPipelineConfiguration()` Get the pipeline configuration
`void` `ignorableWhitespace(char[] ch, int start, int length)` Report character data classified as "Ignorable whitespace", that is, whitespace text nodes appearing as children of elements with an element-only content model
`boolean` `isIgnoringIgnorableWhitespace()` Determine whether "ignorable whitespace" is ignored.
`void` `notationDecl(java.lang.String name, java.lang.String publicId, java.lang.String systemId)`
`void` `processingInstruction(java.lang.String name, java.lang.String remainder)` Notify the existence of a processing instruction
`void` `reset()` Set the ReceivingContentHandler to its initial state, except for the local name cache, which is retained
`void` `setDocumentLocator(org.xml.sax.Locator locator)` Supply a locator that can be called to give information about location in the source document being parsed.
`void` `setIgnoreIgnorableWhitespace(boolean ignore)` Set whether "ignorable whitespace" should be ignored.
`void` `setPipelineConfiguration(PipelineConfiguration pipe)` Set the pipeline configuration
`void` `setReceiver(Receiver receiver)` Set the receiver to which events are passed.
`void` `skippedEntity(java.lang.String name)` Notify a skipped entity.
`void` `startCDATA()`
`void` `startDocument()` Receive notification of the beginning of a document.
`void` `startDTD(java.lang.String name, java.lang.String publicId, java.lang.String systemId)` Register the start of the DTD.
`void` `startElement(java.lang.String uri, java.lang.String localname, java.lang.String rawname, org.xml.sax.Attributes atts)` Notify an element start event, including all the associated attributes
`void` `startEntity(java.lang.String name)`
`void` `startPrefixMapping(java.lang.String prefix, java.lang.String uri)` Notify a namespace prefix to URI binding
`void` `unparsedEntityDecl(java.lang.String name, java.lang.String publicId, java.lang.String systemId, java.lang.String notationName)`

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

Constructor Detail

### ReceivingContentHandler

    public ReceivingContentHandler()

  Create a ReceivingContentHandler and initialise variables

Method Detail

### reset

    public void reset()

  Set the ReceivingContentHandler to its initial state, except for the local name cache, which is retained

### setReceiver

    public void setReceiver(Receiver receiver)

  Set the receiver to which events are passed. ReceivingContentHandler is essentially a translator that takes SAX events as input and produces Saxon Receiver events as output; these Receiver events are passed to the supplied Receiver

  Parameters:
    `receiver` - the Receiver of events

### setPipelineConfiguration

    public void setPipelineConfiguration(PipelineConfiguration pipe)

  Set the pipeline configuration

  Parameters:
    `pipe` - the pipeline configuration. This holds a reference to the Saxon configuration, as well as information that can vary from one pipeline to another, for example the LocationProvider which resolves the location of events in a source document

### getPipelineConfiguration

    public PipelineConfiguration getPipelineConfiguration()

  Get the pipeline configuration

  Returns:
    the pipeline configuration as supplied to `setPipelineConfiguration(PipelineConfiguration)`

### getConfiguration

    public Configuration getConfiguration()

  Get the Configuration object

  Returns:
    the Saxon configuration

### setIgnoreIgnorableWhitespace

    public void setIgnoreIgnorableWhitespace(boolean ignore)

  Set whether "ignorable whitespace" should be ignored. This method is effective only if called after setPipelineConfiguration, since the default value is taken from the configuration.

  Parameters:
    `ignore` - true if ignorable whitespace (whitespace in element content that is notified via the `ignorableWhitespace(char[], int, int)` method) should be ignored, false if it should be treated as ordinary text.

### isIgnoringIgnorableWhitespace

    public boolean isIgnoringIgnorableWhitespace()

  Determine whether "ignorable whitespace" is ignored. This returns the value that was set using `setIgnoreIgnorableWhitespace(boolean)` if that has been called; otherwise the value from the configuration.

  Returns:
    true if ignorable whitespace is being ignored

### startDocument

    public void startDocument()
                       throws org.xml.sax.SAXException

  Receive notification of the beginning of a document.

  Specified by:
    `startDocument` in interface `org.xml.sax.ContentHandler`
  Throws:
    `org.xml.sax.SAXException`

### endDocument

    public void endDocument()
                     throws org.xml.sax.SAXException

  Receive notification of the end of a document

  Specified by:
    `endDocument` in interface `org.xml.sax.ContentHandler`
  Throws:
    `org.xml.sax.SAXException`

### setDocumentLocator

    public void setDocumentLocator(org.xml.sax.Locator locator)

  Supply a locator that can be called to give information about location in the source document being parsed.

  Specified by:
    `setDocumentLocator` in interface `org.xml.sax.ContentHandler`

### startPrefixMapping

    public void startPrefixMapping(java.lang.String prefix,
                                   java.lang.String uri)
                            throws org.xml.sax.SAXException

  Notify a namespace prefix to URI binding

  Specified by:
    `startPrefixMapping` in interface `org.xml.sax.ContentHandler`
  Throws:
    `org.xml.sax.SAXException`

### endPrefixMapping

    public void endPrefixMapping(java.lang.String prefix)
                          throws org.xml.sax.SAXException

  Notify that a namespace binding is going out of scope

  Specified by:
    `endPrefixMapping` in interface `org.xml.sax.ContentHandler`
  Throws:
    `org.xml.sax.SAXException`

### startElement

    public void startElement(java.lang.String uri,
                             java.lang.String localname,
                             java.lang.String rawname,
                             org.xml.sax.Attributes atts)
                      throws org.xml.sax.SAXException

  Notify an element start event, including all the associated attributes

  Specified by:
    `startElement` in interface `org.xml.sax.ContentHandler`
  Throws:
    `org.xml.sax.SAXException`

### endElement

    public void endElement(java.lang.String uri,
                           java.lang.String localname,
                           java.lang.String rawname)
                    throws org.xml.sax.SAXException

  Report the end of an element (the close tag)

  Specified by:
    `endElement` in interface `org.xml.sax.ContentHandler`
  Throws:
    `org.xml.sax.SAXException`

### characters

    public void characters(char[] ch,
                           int start,
                           int length)
                    throws org.xml.sax.SAXException

  Report character data. Note that contiguous character data may be reported as a sequence of calls on this method, with arbitrary boundaries

  Specified by:
    `characters` in interface `org.xml.sax.ContentHandler`
  Throws:
    `org.xml.sax.SAXException`

### ignorableWhitespace

    public void ignorableWhitespace(char[] ch,
                                    int start,
                                    int length)
                             throws org.xml.sax.SAXException

  Report character data classified as "Ignorable whitespace", that is, whitespace text nodes appearing as children of elements with an element-only content model

  Specified by:
    `ignorableWhitespace` in interface `org.xml.sax.ContentHandler`
  Throws:
    `org.xml.sax.SAXException`

### processingInstruction

    public void processingInstruction(java.lang.String name,
                                      java.lang.String remainder)
                               throws org.xml.sax.SAXException

  Notify the existence of a processing instruction

  Specified by:
    `processingInstruction` in interface `org.xml.sax.ContentHandler`
  Throws:
    `org.xml.sax.SAXException`

### comment

    public void comment(char[] ch,
                        int start,
                        int length)
                 throws org.xml.sax.SAXException

  Notify the existence of a comment. Note that in SAX this is part of LexicalHandler interface rather than the ContentHandler interface.

  Specified by:
    `comment` in interface `org.xml.sax.ext.LexicalHandler`
  Throws:
    `org.xml.sax.SAXException`

### skippedEntity

    public void skippedEntity(java.lang.String name)
                       throws org.xml.sax.SAXException

  Notify a skipped entity. Saxon ignores this event

  Specified by:
    `skippedEntity` in interface `org.xml.sax.ContentHandler`
  Throws:
    `org.xml.sax.SAXException`

### startDTD

    public void startDTD(java.lang.String name,
                         java.lang.String publicId,
                         java.lang.String systemId)
                  throws org.xml.sax.SAXException

  Register the start of the DTD. Saxon ignores the DTD; however, it needs to know when the DTD starts and ends so that it can ignore comments in the DTD, which are reported like any other comment, but which are skipped because they are not part of the XPath data model

  Specified by:
    `startDTD` in interface `org.xml.sax.ext.LexicalHandler`
  Throws:
    `org.xml.sax.SAXException`

### endDTD

    public void endDTD()
                throws org.xml.sax.SAXException

  Register the end of the DTD. Comments in the DTD are skipped because they are not part of the XPath data model

  Specified by:
    `endDTD` in interface `org.xml.sax.ext.LexicalHandler`
  Throws:
    `org.xml.sax.SAXException`

### startEntity

    public void startEntity(java.lang.String name)
                     throws org.xml.sax.SAXException

  Specified by:
    `startEntity` in interface `org.xml.sax.ext.LexicalHandler`
  Throws:
    `org.xml.sax.SAXException`

### endEntity

    public void endEntity(java.lang.String name)
                   throws org.xml.sax.SAXException

  Specified by:
    `endEntity` in interface `org.xml.sax.ext.LexicalHandler`
  Throws:
    `org.xml.sax.SAXException`

### startCDATA

    public void startCDATA()
                    throws org.xml.sax.SAXException

  Specified by:
    `startCDATA` in interface `org.xml.sax.ext.LexicalHandler`
  Throws:
    `org.xml.sax.SAXException`

### endCDATA

    public void endCDATA()
                  throws org.xml.sax.SAXException

  Specified by:
    `endCDATA` in interface `org.xml.sax.ext.LexicalHandler`
  Throws:
    `org.xml.sax.SAXException`

### notationDecl

    public void notationDecl(java.lang.String name,
                             java.lang.String publicId,
                             java.lang.String systemId)
                      throws org.xml.sax.SAXException

  Specified by:
    `notationDecl` in interface `org.xml.sax.DTDHandler`
  Throws:
    `org.xml.sax.SAXException`

### unparsedEntityDecl

    public void unparsedEntityDecl(java.lang.String name,
                                   java.lang.String publicId,
                                   java.lang.String systemId,
                                   java.lang.String notationName)
                            throws org.xml.sax.SAXException

  Specified by:
    `unparsedEntityDecl` in interface `org.xml.sax.DTDHandler`
  Throws:
    `org.xml.sax.SAXException`

Copyright (c) Saxonica Limited. All rights reserved.