org.apache.xml.serializer
Class ToHTMLSAXHandler

java.lang.Object
  |
  +--org.apache.xml.serializer.SerializerBase
        |
        +--org.apache.xml.serializer.ToSAXHandler
              |
              +--org.apache.xml.serializer.ToHTMLSAXHandler

public final class ToHTMLSAXHandler
extends ToSAXHandler

This class accepts SAX-like calls, then sends true SAX calls to a wrapped SAX handler. There is optimization done knowing that the ultimate output is HTML. This class is not a public API.

Usage:
**For internal use only**

Constructor Summary
ToHTMLSAXHandler(ContentHandler handler, LexicalHandler lex, java.lang.String encoding)
          A constructor.
ToHTMLSAXHandler(ContentHandler handler, java.lang.String encoding)
          A constructor
 
Method Summary
 void attributeDecl(java.lang.String eName, java.lang.String aName, java.lang.String type, java.lang.String valueDefault, java.lang.String value)
          Does nothing.
 void characters(char[] ch, int off, int len)
          Receive notification of character data.
 void characters(java.lang.String chars)
          Receive notification of character data.
 void close()
          Do nothing.
 void comment(char[] ch, int start, int length)
          Receive notification of a comment anywhere in the document.
 void elementDecl(java.lang.String name, java.lang.String model)
          Does nothing.
 void endCDATA()
          Does nothing.
 void endDocument()
          Receive notification of the end of a document.
 void endDTD()
          Does nothing.
 void endElement(java.lang.String elementName)
          Receive notification of the end of an element.
 void endElement(java.lang.String uri, java.lang.String localName, java.lang.String qName)
          Receive notification of the end of an element.
 void endPrefixMapping(java.lang.String prefix)
          Does nothing.
 void externalEntityDecl(java.lang.String arg0, java.lang.String arg1, java.lang.String arg2)
           
 void flushPending()
          This method flushes any pending events, which can be startDocument() closing the opening tag of an element, or closing an open CDATA section.
 java.util.Properties getOutputFormat()
          Returns null.
 java.io.OutputStream getOutputStream()
          Reurns null
 java.io.Writer getWriter()
          Returns null
 void ignorableWhitespace(char[] ch, int start, int length)
          Does nothing.
 void indent(int n)
          Does nothing.
 void internalEntityDecl(java.lang.String name, java.lang.String value)
          Does nothing.
 void namespaceAfterStartElement(java.lang.String prefix, java.lang.String uri)
          This method is used when a prefix/uri namespace mapping is indicated after the element was started with a startElement() and before and endElement().
 void processingInstruction(java.lang.String target, java.lang.String data)
          Receive notification of a processing instruction.
 boolean reset()
          Try's to reset the super class and reset this class for re-use, so that you don't need to create a new serializer (mostly for performance reasons).
 void serialize(Node node)
          Does nothing.
 void setDocumentLocator(Locator arg0)
          Does nothing.
 boolean setEscaping(boolean escape)
          Turns special character escaping on/off.
 void setIndent(boolean indent)
          Does nothing
 void setOutputFormat(java.util.Properties format)
          Does nothing.
 void setOutputStream(java.io.OutputStream output)
          Does nothing.
 void setWriter(java.io.Writer writer)
          Does nothing.
 void skippedEntity(java.lang.String arg0)
          Does nothing.
 void startCDATA()
          Does nothing.
 void startElement(java.lang.String elementName)
          An element starts, but attributes are not fully known yet.
 void startElement(java.lang.String elementNamespaceURI, java.lang.String elementLocalName, java.lang.String elementName)
          An element starts, but attributes are not fully known yet.
 void startElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName, Attributes atts)
          Receive notification of the beginning of an element, although this is a SAX method additional namespace or attribute information can occur before or after this call, that is associated with this element.
 void startEntity(java.lang.String arg0)
          Does nothing.
 void startPrefixMapping(java.lang.String prefix, java.lang.String uri)
          Begin the scope of a prefix-URI Namespace mapping just before another element is about to start.
 boolean startPrefixMapping(java.lang.String prefix, java.lang.String uri, boolean shouldFlush)
          Handle a prefix/uri mapping, which is associated with a startElement() that is soon to follow.
 
Methods inherited from class org.apache.xml.serializer.ToSAXHandler
addUniqueAttribute, characters, comment, error, fatalError, setCdataSectionElements, setContentHandler, setLexHandler, setShouldOutputNSAttr, setTransformState, startDTD, warning
 
Methods inherited from class org.apache.xml.serializer.SerializerBase
addAttribute, addAttribute, addAttribute, addAttributeAlways, addAttributes, addXSLAttribute, asContentHandler, asDOMSerializer, endEntity, entityReference, fireEndEntity, getDoctypePublic, getDoctypeSystem, getEncoding, getIndent, getIndentAmount, getMediaType, getNamespaceMappings, getNamespaceURI, getNamespaceURIFromPrefix, getOmitXMLDeclaration, getPrefix, getStandalone, getTransformer, getVersion, notationDecl, setDoctype, setDoctypePublic, setDoctypeSystem, setDTDEntityExpansion, setEncoding, setIndentAmount, setMediaType, setNamespaceMappings, setOmitXMLDeclaration, setSourceLocator, setStandalone, setTransformer, setVersion, startDocument, unparsedEntityDecl
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ToHTMLSAXHandler

public ToHTMLSAXHandler(ContentHandler handler,
                        java.lang.String encoding)
A constructor
Parameters:
handler - the wrapped SAX content handler
encoding - the encoding of the output HTML document

ToHTMLSAXHandler

public ToHTMLSAXHandler(ContentHandler handler,
                        LexicalHandler lex,
                        java.lang.String encoding)
A constructor.
Parameters:
handler - the wrapped SAX content handler
lex - the wrapped lexical handler
encoding - the encoding of the output HTML document
Method Detail

getOutputFormat

public java.util.Properties getOutputFormat()
Returns null.
Returns:
null
See Also:
Serializer.getOutputFormat()

getOutputStream

public java.io.OutputStream getOutputStream()
Reurns null
Returns:
null
See Also:
Serializer.getOutputStream()

getWriter

public java.io.Writer getWriter()
Returns null
Returns:
null
See Also:
Serializer.getWriter()

indent

public void indent(int n)
            throws SAXException
Does nothing.

serialize

public void serialize(Node node)
               throws java.io.IOException
Does nothing.
See Also:
DOMSerializer.serialize(Node)

setEscaping

public boolean setEscaping(boolean escape)
                    throws SAXException
Turns special character escaping on/off.
Parameters:
escape - true if escaping is to be set on.
See Also:
SerializationHandler.setEscaping(boolean)

setIndent

public void setIndent(boolean indent)
Does nothing
Parameters:
indent - the number of spaces to indent per indentation level (ignored)
Overrides:
setIndent in class SerializerBase
See Also:
XSLOutputAttributes.setIndent(boolean)

setOutputFormat

public void setOutputFormat(java.util.Properties format)
Does nothing.
Parameters:
format - this parameter is not used
See Also:
Serializer.setOutputFormat(Properties)

setOutputStream

public void setOutputStream(java.io.OutputStream output)
Does nothing.
Parameters:
output - this parameter is ignored
See Also:
Serializer.setOutputStream(OutputStream)

setWriter

public void setWriter(java.io.Writer writer)
Does nothing.
Parameters:
writer - this parameter is ignored.
See Also:
Serializer.setWriter(Writer)

attributeDecl

public void attributeDecl(java.lang.String eName,
                          java.lang.String aName,
                          java.lang.String type,
                          java.lang.String valueDefault,
                          java.lang.String value)
                   throws SAXException
Does nothing.
Parameters:
eName - this parameter is ignored
aName - this parameter is ignored
type - this parameter is ignored
valueDefault - this parameter is ignored
value - this parameter is ignored
See Also:
DeclHandler.attributeDecl(String, String, String,String,String)

elementDecl

public void elementDecl(java.lang.String name,
                        java.lang.String model)
                 throws SAXException
Does nothing.
See Also:
DeclHandler.elementDecl(String, String)

externalEntityDecl

public void externalEntityDecl(java.lang.String arg0,
                               java.lang.String arg1,
                               java.lang.String arg2)
                        throws SAXException
See Also:
DeclHandler.externalEntityDecl(String, String, String)

internalEntityDecl

public void internalEntityDecl(java.lang.String name,
                               java.lang.String value)
                        throws SAXException
Does nothing.
See Also:
DTDHandler.unparsedEntityDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String)

endElement

public void endElement(java.lang.String uri,
                       java.lang.String localName,
                       java.lang.String qName)
                throws SAXException
Receive notification of the end of an element.

The SAX parser will invoke this method at the end of every element in the XML document; there will be a corresponding startElement() event for every endElement() event (even when the element is empty).

If the element name has a namespace prefix, the prefix will still be attached to the name.

Parameters:
uri - The Namespace URI, or the empty string if the element has no Namespace URI or if Namespace processing is not being performed.
localName - The local name (without prefix), or the empty string if Namespace processing is not being performed.
qName - The qualified name (with prefix), or the empty string if qualified names are not available.
Throws:
SAXException - Any SAX exception, possibly wrapping another exception.
See Also:
ContentHandler.endElement(String, String, String)

endPrefixMapping

public void endPrefixMapping(java.lang.String prefix)
                      throws SAXException
Does nothing.

ignorableWhitespace

public void ignorableWhitespace(char[] ch,
                                int start,
                                int length)
                         throws SAXException
Does nothing.
See Also:
ContentHandler.ignorableWhitespace(char[], int, int)

processingInstruction

public void processingInstruction(java.lang.String target,
                                  java.lang.String data)
                           throws SAXException
Receive notification of a processing instruction.

The Parser will invoke this method once for each processing instruction found: note that processing instructions may occur before or after the main document element.

A SAX parser should never report an XML declaration (XML 1.0, section 2.8) or a text declaration (XML 1.0, section 4.3.1) using this method.

Parameters:
target - The processing instruction target.
data - The processing instruction data, or null if none was supplied.
Throws:
SAXException - Any SAX exception, possibly wrapping another exception.
SAXException -  
Overrides:
processingInstruction in class ToSAXHandler
See Also:
ContentHandler.processingInstruction(String, String)

setDocumentLocator

public void setDocumentLocator(Locator arg0)
Does nothing.
Overrides:
setDocumentLocator in class SerializerBase
See Also:
ContentHandler.setDocumentLocator(Locator)

skippedEntity

public void skippedEntity(java.lang.String arg0)
                   throws SAXException
Does nothing.
See Also:
ContentHandler.skippedEntity(String)

startElement

public void startElement(java.lang.String namespaceURI,
                         java.lang.String localName,
                         java.lang.String qName,
                         Attributes atts)
                  throws SAXException
Receive notification of the beginning of an element, although this is a SAX method additional namespace or attribute information can occur before or after this call, that is associated with this element.
Parameters:
namespaceURI - The Namespace URI, or the empty string if the element has no Namespace URI or if Namespace processing is not being performed.
localName - The local name (without prefix), or the empty string if Namespace processing is not being performed.
qName - The elements name.
atts - The attributes attached to the element, if any.
Throws:
SAXException - Any SAX exception, possibly wrapping another exception.
SAXException -  
Overrides:
startElement in class ToSAXHandler
See Also:
ContentHandler.startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes), ContentHandler.endElement(java.lang.String, java.lang.String, java.lang.String), AttributeList, ContentHandler.startElement(String, String, String, Attributes)

comment

public void comment(char[] ch,
                    int start,
                    int length)
             throws SAXException
Receive notification of a comment anywhere in the document. This callback will be used for comments inside or outside the document element.
Parameters:
ch - An array holding the characters in the comment.
start - The starting position in the array.
length - The number of characters to use from the array.
Throws:
SAXException - The application may raise an exception.
See Also:
LexicalHandler.comment(char[], int, int)

endCDATA

public void endCDATA()
              throws SAXException
Does nothing.
See Also:
LexicalHandler.endCDATA()

endDTD

public void endDTD()
            throws SAXException
Does nothing.
See Also:
LexicalHandler.endDTD()

startCDATA

public void startCDATA()
                throws SAXException
Does nothing.
See Also:
LexicalHandler.startCDATA()

startEntity

public void startEntity(java.lang.String arg0)
                 throws SAXException
Does nothing.
See Also:
LexicalHandler.startEntity(String)

endDocument

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

The SAX parser will invoke this method only once, and it will be the last method invoked during the parse. The parser shall not invoke this method until it has either abandoned parsing (because of an unrecoverable error) or reached the end of input.

Throws:
SAXException - Any SAX exception, possibly wrapping another exception.
SAXException -  

close

public void close()
Do nothing.
Overrides:
close in class SerializerBase
See Also:
SerializationHandler.close()

characters

public void characters(java.lang.String chars)
                throws SAXException
Receive notification of character data.
Parameters:
chars - The string of characters to process.
Throws:
SAXException -  
Overrides:
characters in class ToSAXHandler
See Also:
ExtendedContentHandler.characters(String)

startElement

public void startElement(java.lang.String elementNamespaceURI,
                         java.lang.String elementLocalName,
                         java.lang.String elementName)
                  throws SAXException
An element starts, but attributes are not fully known yet.
Parameters:
elementNamespaceURI - the URI of the namespace of the element (optional)
elementLocalName - the element name, but without prefix (optional)
elementName - the element name, with prefix, if any (required)
Overrides:
startElement in class ToSAXHandler
See Also:
ExtendedContentHandler.startElement(String)

startElement

public void startElement(java.lang.String elementName)
                  throws SAXException
An element starts, but attributes are not fully known yet.
Parameters:
elementName - the element name, with prefix, if any
Overrides:
startElement in class ToSAXHandler
See Also:
ExtendedContentHandler.startElement(String)

endElement

public void endElement(java.lang.String elementName)
                throws SAXException
Receive notification of the end of an element.
Parameters:
elementName - The element type name
Throws:
SAXException - Any SAX exception, possibly wrapping another exception.
See Also:
ExtendedContentHandler.endElement(String)

characters

public void characters(char[] ch,
                       int off,
                       int len)
                throws SAXException
Receive notification of character data.

The Parser will call this method to report each chunk of character data. SAX parsers may return all contiguous character data in a single chunk, or they may split it into several chunks; however, all of the characters in any single event must come from the same external entity, so that the Locator provides useful information.

The application must not attempt to read from the array outside of the specified range.

Note that some parsers will report whitespace using the ignorableWhitespace() method rather than this one (validating parsers must do so).

Parameters:
ch - The characters from the XML document.
off - The start position in the array.
len - The number of characters to read from the array.
Throws:
SAXException - Any SAX exception, possibly wrapping another exception.
SAXException -  
See Also:
ignorableWhitespace(char[], int, int), Locator, ContentHandler.characters(char[], int, int)

flushPending

public void flushPending()
                  throws SAXException
This method flushes any pending events, which can be startDocument() closing the opening tag of an element, or closing an open CDATA section.
Overrides:
flushPending in class ToSAXHandler

startPrefixMapping

public boolean startPrefixMapping(java.lang.String prefix,
                                  java.lang.String uri,
                                  boolean shouldFlush)
                           throws SAXException
Handle a prefix/uri mapping, which is associated with a startElement() that is soon to follow. Need to close any open start tag to make sure than any name space attributes due to this event are associated wih the up comming element, not the current one.
Parameters:
prefix - The Namespace prefix being declared.
uri - The Namespace URI the prefix is mapped to.
shouldFlush - true if any open tags need to be closed first, this will impact which element the mapping applies to (open parent, or its up comming child)
Returns:
returns true if the call made a change to the current namespace information, false if it did not change anything, e.g. if the prefix/namespace mapping was already in scope from before.
Throws:
SAXException - The client may throw an exception during processing.
See Also:
ExtendedContentHandler.startPrefixMapping(java.lang.String, java.lang.String, boolean)

startPrefixMapping

public void startPrefixMapping(java.lang.String prefix,
                               java.lang.String uri)
                        throws SAXException
Begin the scope of a prefix-URI Namespace mapping just before another element is about to start. This call will close any open tags so that the prefix mapping will not apply to the current element, but the up comming child.
Parameters:
prefix - The Namespace prefix being declared.
uri - The Namespace URI the prefix is mapped to.
Throws:
SAXException - The client may throw an exception during processing.
See Also:
ContentHandler.startPrefixMapping(java.lang.String, java.lang.String)

namespaceAfterStartElement

public void namespaceAfterStartElement(java.lang.String prefix,
                                       java.lang.String uri)
                                throws SAXException
This method is used when a prefix/uri namespace mapping is indicated after the element was started with a startElement() and before and endElement(). startPrefixMapping(prefix,uri) would be used before the startElement() call.
Parameters:
prefix - the prefix associated with the given URI.
uri - the URI of the namespace
Overrides:
namespaceAfterStartElement in class SerializerBase
See Also:
ExtendedContentHandler.namespaceAfterStartElement(String, String)

reset

public boolean reset()
Try's to reset the super class and reset this class for re-use, so that you don't need to create a new serializer (mostly for performance reasons).
Returns:
true if the class was successfuly reset.
Overrides:
reset in class ToSAXHandler
See Also:
Serializer.reset()


Copyright © 2005 Apache XML Project. All Rights Reserved.