net.sf.saxon.event
Class ReceivingContentHandler

java.lang.Object
  extended by net.sf.saxon.event.ReceivingContentHandler
All Implemented Interfaces:
ContentHandler, DTDHandler, LexicalHandler
Direct Known Subclasses:
IdentityTransformerHandler, TemplatesHandlerImpl, TransformerHandlerImpl

public class ReceivingContentHandler
extends Object
implements ContentHandler, LexicalHandler, 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(String uri, String localname, String rawname)
          Report the end of an element (the close tag)
 void endEntity(String name)
           
 void endPrefixMapping(String prefix)
          Notify that a namespace binding is going out of scope
 Configuration getConfiguration()
          Get the Configuration object
 PipelineConfiguration getPipelineConfiguration()
          Get the pipeline configuration
 Receiver getReceiver()
          Get the receiver to which events are passed.
 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(String name, String publicId, String systemId)
           
 void processingInstruction(String name, 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(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(String name)
          Notify a skipped entity.
 void startCDATA()
           
 void startDocument()
          Receive notification of the beginning of a document.
 void startDTD(String name, String publicId, String systemId)
          Register the start of the DTD.
 void startElement(String uri, String localname, String rawname, Attributes atts)
          Notify an element start event, including all the associated attributes
 void startEntity(String name)
           
 void startPrefixMapping(String prefix, String uri)
          Notify a namespace prefix to URI binding
 void unparsedEntityDecl(String name, String publicId, String systemId, 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

getReceiver

public Receiver getReceiver()
Get the receiver to which events are passed.

Returns:
the underlying Receiver

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 SAXException
Receive notification of the beginning of a document.

Specified by:
startDocument in interface ContentHandler
Throws:
SAXException

endDocument

public void endDocument()
                 throws SAXException
Receive notification of the end of a document

Specified by:
endDocument in interface ContentHandler
Throws:
SAXException

setDocumentLocator

public void setDocumentLocator(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 ContentHandler

startPrefixMapping

public void startPrefixMapping(String prefix,
                               String uri)
                        throws SAXException
Notify a namespace prefix to URI binding

Specified by:
startPrefixMapping in interface ContentHandler
Throws:
SAXException

endPrefixMapping

public void endPrefixMapping(String prefix)
                      throws SAXException
Notify that a namespace binding is going out of scope

Specified by:
endPrefixMapping in interface ContentHandler
Throws:
SAXException

startElement

public void startElement(String uri,
                         String localname,
                         String rawname,
                         Attributes atts)
                  throws SAXException
Notify an element start event, including all the associated attributes

Specified by:
startElement in interface ContentHandler
Throws:
SAXException

endElement

public void endElement(String uri,
                       String localname,
                       String rawname)
                throws SAXException
Report the end of an element (the close tag)

Specified by:
endElement in interface ContentHandler
Throws:
SAXException

characters

public void characters(char[] ch,
                       int start,
                       int length)
                throws 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 ContentHandler
Throws:
SAXException

ignorableWhitespace

public void ignorableWhitespace(char[] ch,
                                int start,
                                int length)
                         throws 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 ContentHandler
Throws:
SAXException

processingInstruction

public void processingInstruction(String name,
                                  String remainder)
                           throws SAXException
Notify the existence of a processing instruction

Specified by:
processingInstruction in interface ContentHandler
Throws:
SAXException

comment

public void comment(char[] ch,
                    int start,
                    int length)
             throws 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 LexicalHandler
Throws:
SAXException

skippedEntity

public void skippedEntity(String name)
                   throws SAXException
Notify a skipped entity. Saxon ignores this event

Specified by:
skippedEntity in interface ContentHandler
Throws:
SAXException

startDTD

public void startDTD(String name,
                     String publicId,
                     String systemId)
              throws 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 LexicalHandler
Throws:
SAXException

endDTD

public void endDTD()
            throws 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 LexicalHandler
Throws:
SAXException

startEntity

public void startEntity(String name)
                 throws SAXException
Specified by:
startEntity in interface LexicalHandler
Throws:
SAXException

endEntity

public void endEntity(String name)
               throws SAXException
Specified by:
endEntity in interface LexicalHandler
Throws:
SAXException

startCDATA

public void startCDATA()
                throws SAXException
Specified by:
startCDATA in interface LexicalHandler
Throws:
SAXException

endCDATA

public void endCDATA()
              throws SAXException
Specified by:
endCDATA in interface LexicalHandler
Throws:
SAXException

notationDecl

public void notationDecl(String name,
                         String publicId,
                         String systemId)
                  throws SAXException
Specified by:
notationDecl in interface DTDHandler
Throws:
SAXException

unparsedEntityDecl

public void unparsedEntityDecl(String name,
                               String publicId,
                               String systemId,
                               String notationName)
                        throws SAXException
Specified by:
unparsedEntityDecl in interface DTDHandler
Throws:
SAXException


Copyright (c) 2004-2011 Saxonica Limited. All rights reserved.