Class ReceivingContentHandler

  • All Implemented Interfaces:
    javax.xml.transform.SourceLocator, LocationProvider, SaxonLocator, SourceLocationProvider, org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.ext.LexicalHandler, org.xml.sax.Locator
    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, SaxonLocator, SourceLocationProvider
    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.

    Author:
    Michael H. Kay
    • Constructor Summary

      Constructors 
      Constructor Description
      ReceivingContentHandler()
      create a ReceivingContentHandler and initialise variables
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void characters​(char[] ch, int start, int length)
      Callback interface for SAX: not for application use
      void comment​(char[] ch, int start, int length)
      Callback interface for SAX (part of LexicalHandler interface): not for application use
      void endCDATA()  
      void endDocument()
      Callback interface for SAX: not for application use
      void endDTD()
      Register the end of the DTD.
      void endElement​(java.lang.String uri, java.lang.String localname, java.lang.String rawname)
      Callback interface for SAX: not for application use
      void endEntity​(java.lang.String name)  
      void endPrefixMapping​(java.lang.String prefix)
      Callback interface for SAX: not for application use
      int getColumnNumber()
      Return the character position where the current document event ends.
      Configuration getConfiguration()  
      int getLineNumber()
      Return the line number where the current document event ends.
      int getLineNumber​(int locationId)
      Get the line number within the document or module containing a particular location
      PipelineConfiguration getPipelineConfiguration()  
      java.lang.String getPublicId()
      Return the public identifier for the current document event.
      java.lang.String getSystemId()
      Return the public identifier for the current document event.
      java.lang.String getSystemId​(int locationId)
      Get the URI of the document or module containing a particular location
      void ignorableWhitespace​(char[] ch, int start, int length)
      Callback interface for SAX: not for application use
      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)
      Callback interface for SAX: not for application use
      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)
      Callback interface for SAX: not for application use
      void setIgnoreIgnorableWhitespace​(boolean ignore)
      Set whether "ignorable whitespace" should be ignored.
      void setPipelineConfiguration​(PipelineConfiguration pipe)  
      void setReceiver​(Receiver e)  
      void skippedEntity​(java.lang.String name)  
      void startCDATA()  
      void startDocument()
      Callback interface for SAX: not for application use
      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)
      Callback interface for SAX: not for application use
      void startEntity​(java.lang.String name)  
      void startPrefixMapping​(java.lang.String prefix, java.lang.String uri)
      Callback interface for SAX: not for application use
      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 e)
      • 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.
      • 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.
      • startDocument

        public void startDocument()
                           throws org.xml.sax.SAXException
        Callback interface for SAX: not for application use
        Specified by:
        startDocument in interface org.xml.sax.ContentHandler
        Throws:
        org.xml.sax.SAXException
      • endDocument

        public void endDocument()
                         throws org.xml.sax.SAXException
        Callback interface for SAX: not for application use
        Specified by:
        endDocument in interface org.xml.sax.ContentHandler
        Throws:
        org.xml.sax.SAXException
      • setDocumentLocator

        public void setDocumentLocator​(org.xml.sax.Locator locator)
        Callback interface for SAX: not for application use
        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
        Callback interface for SAX: not for application use
        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
        Callback interface for SAX: not for application use
        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
        Callback interface for SAX: not for application use
        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
        Callback interface for SAX: not for application use
        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
        Callback interface for SAX: not for application use
        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
        Callback interface for SAX: not for application use
        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
        Callback interface for SAX: not for application use
        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
        Callback interface for SAX (part of LexicalHandler interface): not for application use
        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
        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. Comments in the DTD 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
      • getSystemId

        public java.lang.String getSystemId()
        Return the public identifier for the current document event.
        Specified by:
        getSystemId in interface org.xml.sax.Locator
        Specified by:
        getSystemId in interface javax.xml.transform.SourceLocator
        Returns:
        A string containing the system identifier, or null if none is available.
      • getPublicId

        public java.lang.String getPublicId()
        Return the public identifier for the current document event.
        Specified by:
        getPublicId in interface org.xml.sax.Locator
        Specified by:
        getPublicId in interface javax.xml.transform.SourceLocator
        Returns:
        A string containing the public identifier, or null if none is available.
      • getLineNumber

        public int getLineNumber()
        Return the line number where the current document event ends.
        Specified by:
        getLineNumber in interface org.xml.sax.Locator
        Specified by:
        getLineNumber in interface javax.xml.transform.SourceLocator
        Returns:
        The line number, or -1 if none is available.
      • getColumnNumber

        public int getColumnNumber()
        Return the character position where the current document event ends.
        Specified by:
        getColumnNumber in interface org.xml.sax.Locator
        Specified by:
        getColumnNumber in interface javax.xml.transform.SourceLocator
        Returns:
        The column number, or -1 if none is available.
      • getSystemId

        public java.lang.String getSystemId​(int locationId)
        Description copied from interface: LocationProvider
        Get the URI of the document or module containing a particular location
        Specified by:
        getSystemId in interface LocationProvider
        Parameters:
        locationId - identifier of the location in question (as passed down the Receiver pipeline)
        Returns:
        the URI of the document or module.
      • getLineNumber

        public int getLineNumber​(int locationId)
        Description copied from interface: LocationProvider
        Get the line number within the document or module containing a particular location
        Specified by:
        getLineNumber in interface LocationProvider
        Parameters:
        locationId - identifier of the location in question (as passed down the Receiver pipeline)
        Returns:
        the line number within the document or module.