|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.xml.serializer.SerializerBase org.apache.xml.serializer.ToStream org.apache.xml.serializer.ToHTMLStream
public class ToHTMLStream
This serializer takes a series of SAX or SAX-like events and writes its output to the given stream. This class is not a public API, it is public because it is used from another package.
Nested Class Summary | |
---|---|
(package private) static class |
ToHTMLStream.Trie
|
Nested classes/interfaces inherited from class org.apache.xml.serializer.ToStream |
---|
ToStream.BoolStack |
Field Summary | |
---|---|
private static ElemDesc |
m_dummy
Dummy element for elements not found. |
(package private) static ToHTMLStream.Trie |
m_elementFlags
A digital search trie for fast, case insensitive lookup of ElemDesc objects. |
private CharInfo |
m_htmlcharInfo
Map that tells which XML characters should have special treatment, and it provides character to entity name lookup. |
private ToHTMLStream.Trie |
m_htmlInfo
A Trie that is just a copy of the "static" one. |
private boolean |
m_inBlockElem
True if the current element is a block element. |
protected boolean |
m_inDTD
This flag is set while receiving events from the DTD |
private boolean |
m_omitMetaTag
True if the META tag should be omitted. |
private boolean |
m_specialEscapeURLs
True if URLs should be specially escaped with the %xx form. |
Fields inherited from class org.apache.xml.serializer.ToStream |
---|
m_cdataStartCalled, m_charInfo, m_disableOutputEscapingStates, m_encodingInfo, m_escaping, m_inDoctype, m_ispreserve, m_isprevtext, m_isUTF8, m_lineSep, m_lineSepLen, m_lineSepUse, m_outputStream, m_preserves, m_shouldFlush, m_spaceBeforeClose, m_startNewLine |
Fields inherited from class org.apache.xml.serializer.SerializerBase |
---|
m_attrBuff, m_attributes, m_CdataElems, m_cdataTagOpen, m_charsBuff, m_docIsEmpty, m_doctypePublic, m_doctypeSystem, m_doIndent, m_elemContext, m_indentAmount, m_inEntityRef, m_inExternalDTD, m_mediatype, m_needToCallStartDocument, m_needToOutputDocTypeDecl, m_prefixMap, m_shouldNotWriteXMLHeader, m_sourceLocator, m_standaloneWasSpecified, m_StringOfCDATASections, m_tracer, m_version, m_writer, PKG_NAME, PKG_PATH |
Fields inherited from interface org.apache.xml.serializer.ExtendedContentHandler |
---|
HTML_ATTREMPTY, HTML_ATTRURL, NO_BAD_CHARS |
Fields inherited from interface org.apache.xml.serializer.SerializerConstants |
---|
CDATA_CONTINUE, CDATA_DELIMITER_CLOSE, CDATA_DELIMITER_OPEN, DEFAULT_SAX_SERIALIZER, EMPTYSTRING, ENTITY_AMP, ENTITY_CRLF, ENTITY_GT, ENTITY_LT, ENTITY_QUOT, XML_PREFIX, XMLNS_PREFIX, XMLNS_URI, XMLVERSION10, XMLVERSION11 |
Constructor Summary | |
---|---|
ToHTMLStream()
Default constructor. |
Method Summary | |
---|---|
void |
addUniqueAttribute(java.lang.String name,
java.lang.String value,
int flags)
This method is used to add an attribute to the currently open element. |
void |
attributeDecl(java.lang.String eName,
java.lang.String aName,
java.lang.String type,
java.lang.String valueDefault,
java.lang.String value)
This method does nothing. |
void |
cdata(char[] ch,
int start,
int length)
Receive notification of cdata. |
void |
characters(char[] chars,
int start,
int length)
Receive notification of character data. |
protected void |
closeStartTag()
For the enclosing elements starting tag write out out any attributes followed by ">". |
void |
comment(char[] ch,
int start,
int length)
Receive notification of an XML comment anywhere in the document. |
void |
elementDecl(java.lang.String name,
java.lang.String model)
This method does nothing. |
void |
endDocument()
Receive notification of the end of a document. |
void |
endDTD()
Report the end of DTD declarations. |
void |
endElement(java.lang.String elemName)
Receive notification of the end of an element. |
void |
endElement(java.lang.String namespaceURI,
java.lang.String localName,
java.lang.String name)
Receive notification of the end of an element. |
void |
entityReference(java.lang.String name)
Receive notivication of a entityReference. |
void |
externalEntityDecl(java.lang.String name,
java.lang.String publicId,
java.lang.String systemId)
This method does nothing. |
static ElemDesc |
getElemDesc(java.lang.String name)
Get a description of the given element. |
private ElemDesc |
getElemDesc2(java.lang.String name)
Calls to this method could be replaced with calls to getElemDesc(name), but this one should be faster. |
private boolean |
getOmitMetaTag()
Tells if the formatter should omit the META tag. |
private boolean |
getSpecialEscapeURLs()
Tells if the formatter should use special URL escaping. |
(package private) static void |
initTagReference(ToHTMLStream.Trie m_elementFlags)
|
void |
internalEntityDecl(java.lang.String name,
java.lang.String value)
This method does nothing. |
private boolean |
isASCIIDigit(char c)
Tell if a character is an ASCII digit. |
private boolean |
isHHSign(java.lang.String str)
Dmitri Ilyin: Makes sure if the String is HH encoded sign. |
private static java.lang.String |
makeHHString(int i)
Make an integer into an HH hex value. |
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(). |
private void |
outputDocTypeDecl(java.lang.String name)
This method should only get called once. |
protected void |
processAttribute(java.io.Writer writer,
java.lang.String name,
java.lang.String value,
ElemDesc elemDesc)
Process an attribute. |
void |
processAttributes(java.io.Writer writer,
int nAttrs)
Process the attributes, which means to write out the currently collected attributes to the writer. |
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). |
private void |
resetToHTMLStream()
|
void |
setOmitMetaTag(boolean bool)
Tells if the formatter should omit the META tag. |
void |
setOutputFormat(java.util.Properties format)
Specifies an output format for this serializer. |
void |
setSpecialEscapeURLs(boolean bool)
Tells if the formatter should use special URL escaping. |
protected void |
startDocumentInternal()
Receive notification of the beginning of a document. |
void |
startDTD(java.lang.String name,
java.lang.String publicId,
java.lang.String systemId)
Report the start of DTD declarations, if any. |
void |
startElement(java.lang.String namespaceURI,
java.lang.String localName,
java.lang.String name,
org.xml.sax.Attributes atts)
Receive notification of the beginning of an element. |
void |
writeAttrString(java.io.Writer writer,
java.lang.String string,
java.lang.String encoding)
Writes the specified string after substituting specials, and UTF-16 surrogates for character references &#xnn . |
void |
writeAttrURI(java.io.Writer writer,
java.lang.String string,
boolean doURLEscaping)
Write the specified string after substituting non ASCII characters, with %HH , where HH is the hex of the byte value. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected boolean m_inDTD
private boolean m_inBlockElem
private final CharInfo m_htmlcharInfo
static final ToHTMLStream.Trie m_elementFlags
private static final ElemDesc m_dummy
private boolean m_specialEscapeURLs
private boolean m_omitMetaTag
private ToHTMLStream.Trie m_htmlInfo
Constructor Detail |
---|
public ToHTMLStream()
Method Detail |
---|
static void initTagReference(ToHTMLStream.Trie m_elementFlags)
public void setSpecialEscapeURLs(boolean bool)
bool
- True if URLs should be specially escaped with the %xx form.public void setOmitMetaTag(boolean bool)
bool
- True if the META tag should be omitted.public void setOutputFormat(java.util.Properties format)
setOutputFormat
in interface Serializer
setOutputFormat
in class ToStream
format
- The output format or serialzation parameters
to use.private final boolean getSpecialEscapeURLs()
private final boolean getOmitMetaTag()
public static final ElemDesc getElemDesc(java.lang.String name)
name
- non-null name of element, case insensitive.
private ElemDesc getElemDesc2(java.lang.String name)
protected void startDocumentInternal() throws org.xml.sax.SAXException
startDocumentInternal
in class SerializerBase
org.xml.sax.SAXException
- Any SAX exception, possibly
wrapping another exception.
org.xml.sax.SAXException
private void outputDocTypeDecl(java.lang.String name) throws org.xml.sax.SAXException
org.xml.sax.SAXException
public final void endDocument() throws org.xml.sax.SAXException
org.xml.sax.SAXException
- Any SAX exception, possibly
wrapping another exception.
org.xml.sax.SAXException
public void startElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String name, org.xml.sax.Attributes atts) throws org.xml.sax.SAXException
startElement
in interface org.xml.sax.ContentHandler
startElement
in class ToStream
namespaceURI
- localName
- name
- The element type name.atts
- The attributes attached to the element, if any.
org.xml.sax.SAXException
- Any SAX exception, possibly
wrapping another exception.endElement(java.lang.String, java.lang.String, java.lang.String)
,
AttributeList
public final void endElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String name) throws org.xml.sax.SAXException
endElement
in interface org.xml.sax.ContentHandler
endElement
in class ToStream
namespaceURI
- localName
- name
- The element type name
org.xml.sax.SAXException
- Any SAX exception, possibly
wrapping another exception.protected void processAttribute(java.io.Writer writer, java.lang.String name, java.lang.String value, ElemDesc elemDesc) throws java.io.IOException
writer
- The writer to write the processed output to.name
- The name of the attribute.value
- The value of the attribute.elemDesc
- The description of the HTML element
that has this attribute.
org.xml.sax.SAXException
java.io.IOException
private boolean isASCIIDigit(char c)
private static java.lang.String makeHHString(int i)
i
- must be a value less than 255.
private boolean isHHSign(java.lang.String str)
str
- must be 2 characters long
public void writeAttrURI(java.io.Writer writer, java.lang.String string, boolean doURLEscaping) throws java.io.IOException
%HH
, where HH is the hex of the byte value.
string
- String to convert to XML format.doURLEscaping
- True if we should try to encode as
per http://www.ietf.org/rfc/rfc2396.txt.
org.xml.sax.SAXException
- if a bad surrogate pair is detected.
java.io.IOException
public void writeAttrString(java.io.Writer writer, java.lang.String string, java.lang.String encoding) throws java.io.IOException
&#xnn
.
writeAttrString
in class ToStream
string
- String to convert to XML format.encoding
- CURRENTLY NOT IMPLEMENTED.
org.xml.sax.SAXException
java.io.IOException
public final void characters(char[] chars, int start, int length) throws org.xml.sax.SAXException
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).
characters
in interface org.xml.sax.ContentHandler
characters
in class ToStream
chars
- The characters from the XML document.start
- The start position in the array.length
- The number of characters to read from the array.
org.xml.sax.SAXException
- Any SAX exception, possibly
wrapping another exception.
org.xml.sax.SAXException
ToStream.ignorableWhitespace(char[], int, int)
,
Locator
public final void cdata(char[] ch, int start, int length) throws org.xml.sax.SAXException
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).
cdata
in class ToStream
ch
- The characters from the XML document.start
- The start position in the array.length
- The number of characters to read from the array.
org.xml.sax.SAXException
- Any SAX exception, possibly
wrapping another exception.
org.xml.sax.SAXException
ToStream.ignorableWhitespace(char[], int, int)
,
Locator
public void processingInstruction(java.lang.String target, java.lang.String data) throws org.xml.sax.SAXException
target
- The processing instruction target.data
- The processing instruction data, or null if
none was supplied.
org.xml.sax.SAXException
- Any SAX exception, possibly
wrapping another exception.
org.xml.sax.SAXException
public final void entityReference(java.lang.String name) throws org.xml.sax.SAXException
entityReference
in interface ExtendedContentHandler
entityReference
in class SerializerBase
name
- non-null reference to entity name string.
org.xml.sax.SAXException
public final void endElement(java.lang.String elemName) throws org.xml.sax.SAXException
ToStream
endElement
in interface ExtendedContentHandler
endElement
in class ToStream
elemName
- The element type name
org.xml.sax.SAXException
ExtendedContentHandler.endElement(String)
public void processAttributes(java.io.Writer writer, int nAttrs) throws java.io.IOException, org.xml.sax.SAXException
processAttributes
in class ToStream
writer
- the writer to write processed attributes to.nAttrs
- the number of attributes in m_attributes
to be processed
org.xml.sax.SAXException
java.io.IOException
protected void closeStartTag() throws org.xml.sax.SAXException
closeStartTag
in class ToStream
org.xml.sax.SAXException
public void namespaceAfterStartElement(java.lang.String prefix, java.lang.String uri) throws org.xml.sax.SAXException
namespaceAfterStartElement
in interface ExtendedContentHandler
namespaceAfterStartElement
in class SerializerBase
uri
- the URI of the namespaceprefix
- the prefix associated with the given URI.
org.xml.sax.SAXException
ExtendedContentHandler.namespaceAfterStartElement(String, String)
public void startDTD(java.lang.String name, java.lang.String publicId, java.lang.String systemId) throws org.xml.sax.SAXException
ToStream
startDTD
in interface org.xml.sax.ext.LexicalHandler
startDTD
in class ToStream
name
- The document type name.publicId
- The declared public identifier for the
external DTD subset, or null if none was declared.systemId
- The declared system identifier for the
external DTD subset, or null if none was declared.
org.xml.sax.SAXException
- The application may raise an
exception.ToStream.endDTD()
,
ToStream.startEntity(java.lang.String)
public void endDTD() throws org.xml.sax.SAXException
endDTD
in interface org.xml.sax.ext.LexicalHandler
endDTD
in class ToStream
org.xml.sax.SAXException
- The application may raise an exception.startDTD(java.lang.String, java.lang.String, java.lang.String)
public void attributeDecl(java.lang.String eName, java.lang.String aName, java.lang.String type, java.lang.String valueDefault, java.lang.String value) throws org.xml.sax.SAXException
attributeDecl
in interface org.xml.sax.ext.DeclHandler
attributeDecl
in class ToStream
eName
- The name of the associated element.aName
- The name of the attribute.type
- A string representing the attribute type.valueDefault
- A string representing the attribute default
("#IMPLIED", "#REQUIRED", or "#FIXED") or null if
none of these applies.value
- A string representing the attribute's default value,
or null if there is none.
org.xml.sax.SAXException
- The application may raise an exception.public void elementDecl(java.lang.String name, java.lang.String model) throws org.xml.sax.SAXException
elementDecl
in interface org.xml.sax.ext.DeclHandler
elementDecl
in class ToStream
name
- The element type name.model
- The content model as a normalized string.
org.xml.sax.SAXException
- The application may raise an exception.public void internalEntityDecl(java.lang.String name, java.lang.String value) throws org.xml.sax.SAXException
internalEntityDecl
in interface org.xml.sax.ext.DeclHandler
internalEntityDecl
in class ToStream
name
- The name of the entity. If it is a parameter
entity, the name will begin with '%'.value
- The replacement text of the entity.
org.xml.sax.SAXException
- The application may raise an exception.ToStream.externalEntityDecl(java.lang.String, java.lang.String, java.lang.String)
,
DTDHandler.unparsedEntityDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
public void externalEntityDecl(java.lang.String name, java.lang.String publicId, java.lang.String systemId) throws org.xml.sax.SAXException
externalEntityDecl
in interface org.xml.sax.ext.DeclHandler
externalEntityDecl
in class ToStream
name
- The name of the entity. If it is a parameter
entity, the name will begin with '%'.publicId
- The declared public identifier of the entity, or
null if none was declared.systemId
- The declared system identifier of the entity.
org.xml.sax.SAXException
- The application may raise an exception.ToStream.internalEntityDecl(java.lang.String, java.lang.String)
,
DTDHandler.unparsedEntityDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
public void addUniqueAttribute(java.lang.String name, java.lang.String value, int flags) throws org.xml.sax.SAXException
name
- the qualified name of the attributevalue
- the value of the attribute which can contain only
ASCII printable characters characters in the range 32 to 127 inclusive.flags
- the bit values of this integer give optimization information.
org.xml.sax.SAXException
public void comment(char[] ch, int start, int length) throws org.xml.sax.SAXException
ToStream
comment
in interface org.xml.sax.ext.LexicalHandler
comment
in class ToStream
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.
org.xml.sax.SAXException
- The application may raise an exception.public boolean reset()
ToStream
reset
in interface Serializer
reset
in class ToStream
private void resetToHTMLStream()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |