com.jclark.xsl.sax2
Class NXMLOutputHandler

java.lang.Object
  extended by com.jclark.xsl.sax2.NXMLOutputHandler
All Implemented Interfaces:
OutputContentHandler, org.xml.sax.ContentHandler

public class NXMLOutputHandler
extends java.lang.Object
implements OutputContentHandler

an output handler that recognizes our special technique for signalling non XML characters


Nested Class Summary
(package private)  class NXMLOutputHandler.CharacterHandler
           
(package private)  class NXMLOutputHandler.ControlCharacterHandler
           
(package private)  class NXMLOutputHandler.DataCharacterHandler
           
(package private)  class NXMLOutputHandler.EscapeCharacterHandler
           
(package private)  class NXMLOutputHandler.LineControlCharacterHandler
           
 
Constructor Summary
NXMLOutputHandler()
           
 
Method Summary
 void characters(char[] ch, int off, int len)
          SAX characters event -- send the characters to our current handler
 void endDocument()
          flush the output
 void endElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName)
           
 void endPrefixMapping(java.lang.String prefix)
           
 void ignorableWhitespace(char[] ch, int off, int len)
           
 org.xml.sax.ContentHandler init(Destination dest, java.util.Properties props)
          Initialize the handler with the targetDestination and output method Properties (from xsl:output + calling environment)
 void pop()
          pops a character handler off the stack, reverting to previous (does this need to be public?)
 void processingInstruction(java.lang.String target, java.lang.String data)
          SAX Processing Instruction event handler -- strips PI's from output
 void push(NXMLOutputHandler.CharacterHandler handler)
           
 void setDocumentLocator(org.xml.sax.Locator loc)
           
 void skippedEntity(java.lang.String entityName)
           
 void startDocument()
          SAX startDocument parse event
 void startElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes atts)
          captures "control", "data", "char" and "escape" character indicators and interposes the appropriate character handler
 void startPrefixMapping(java.lang.String prefix, java.lang.String namespaceURI)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NXMLOutputHandler

public NXMLOutputHandler()
Method Detail

init

public org.xml.sax.ContentHandler init(Destination dest,
                                       java.util.Properties props)
                                throws java.io.IOException
Description copied from interface: OutputContentHandler
Initialize the handler with the targetDestination and output method Properties (from xsl:output + calling environment)

Specified by:
init in interface OutputContentHandler
Returns:
an initialized instance of this, ready to write to the Destination with the output options specified in props
Throws:
java.io.IOException

startDocument

public void startDocument()
SAX startDocument parse event

Specified by:
startDocument in interface org.xml.sax.ContentHandler

characters

public void characters(char[] ch,
                       int off,
                       int len)
                throws org.xml.sax.SAXException
SAX characters event -- send the characters to our current handler

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

ignorableWhitespace

public void ignorableWhitespace(char[] ch,
                                int off,
                                int len)
                         throws org.xml.sax.SAXException
Specified by:
ignorableWhitespace in interface org.xml.sax.ContentHandler
Throws:
org.xml.sax.SAXException

startElement

public void startElement(java.lang.String namespaceURI,
                         java.lang.String localName,
                         java.lang.String qName,
                         org.xml.sax.Attributes atts)
                  throws org.xml.sax.SAXException
captures "control", "data", "char" and "escape" character indicators and interposes the appropriate character handler

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

endElement

public void endElement(java.lang.String namespaceURI,
                       java.lang.String localName,
                       java.lang.String qName)
                throws org.xml.sax.SAXException
Specified by:
endElement in interface org.xml.sax.ContentHandler
Throws:
org.xml.sax.SAXException

pop

public void pop()
pops a character handler off the stack, reverting to previous (does this need to be public?)


push

public void push(NXMLOutputHandler.CharacterHandler handler)

processingInstruction

public void processingInstruction(java.lang.String target,
                                  java.lang.String data)
SAX Processing Instruction event handler -- strips PI's from output

Specified by:
processingInstruction in interface org.xml.sax.ContentHandler

endDocument

public void endDocument()
                 throws org.xml.sax.SAXException
flush the output

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

startPrefixMapping

public void startPrefixMapping(java.lang.String prefix,
                               java.lang.String namespaceURI)
Specified by:
startPrefixMapping in interface org.xml.sax.ContentHandler

endPrefixMapping

public void endPrefixMapping(java.lang.String prefix)
Specified by:
endPrefixMapping in interface org.xml.sax.ContentHandler

skippedEntity

public void skippedEntity(java.lang.String entityName)
Specified by:
skippedEntity in interface org.xml.sax.ContentHandler

setDocumentLocator

public void setDocumentLocator(org.xml.sax.Locator loc)
Specified by:
setDocumentLocator in interface org.xml.sax.ContentHandler