Class BaseMarkupSerializer
- java.lang.Object
-
- org.smooks.engine.delivery.sax.ng.org.apache.xml.serialize.BaseMarkupSerializer
-
- All Implemented Interfaces:
DOMSerializer
,Serializer
,ContentHandler
,DocumentHandler
,DTDHandler
,DeclHandler
,LexicalHandler
- Direct Known Subclasses:
HTMLSerializer
,TextSerializer
,XMLSerializer
public abstract class BaseMarkupSerializer extends Object implements ContentHandler, DocumentHandler, LexicalHandler, DTDHandler, DeclHandler, DOMSerializer, Serializer
Deprecated.This class was deprecated in Xerces 2.9.0. It is recommended that new applications use the DOM Level 3 LSSerializer or JAXP's Transformation API for XML (TrAX) for serializing XML. See the Xerces documentation for more information.Base class for a serializer supporting both DOM and SAX pretty serializing of XML/HTML/XHTML documents. Derives classes perform the method-specific serializing, this class provides the common serializing mechanisms.The serializer must be initialized with the proper writer and output format before it can be used by calling
setOutputCharStream(java.io.Writer)
orsetOutputByteStream(java.io.OutputStream)
for the writer andsetOutputFormat(org.smooks.engine.delivery.sax.ng.org.apache.xml.serialize.OutputFormat)
for the output format.The serializer can be reused any number of times, but cannot be used concurrently by two threads.
If an output stream is used, the encoding is taken from the output format (defaults to UTF-8). If a writer is used, make sure the writer uses the same encoding (if applies) as specified in the output format.
The serializer supports both DOM and SAX. DOM serializing is done by calling
serialize(Document)
and SAX serializing is done by firing SAX events and using the serializer as a document handler. This also applies to derived class.If an I/O exception occurs while serializing, the serializer will not throw an exception directly, but only throw it at the end of serializing (either DOM or SAX's
DocumentHandler.endDocument()
.For elements that are not specified as whitespace preserving, the serializer will potentially break long text lines at space boundaries, indent lines, and serialize elements on separate lines. Line terminators will be regarded as spaces, and spaces at beginning of line will be stripped.
When indenting, the serializer is capable of detecting seemingly element content, and serializing these elements indented on separate lines. An element is serialized indented when it is the first or last child of an element, or immediate following or preceding another element.
- Version:
- $Revision$ $Date$
- Author:
- Assaf Arkin, Rahul Srivastava, Elena Litani, IBM
- See Also:
Serializer
,LSSerializer
-
-
Field Summary
Fields Modifier and Type Field Description protected String
_docTypePublicId
Deprecated.The system identifier of the document type, if known.protected String
_docTypeSystemId
Deprecated.The system identifier of the document type, if known.protected EncodingInfo
_encodingInfo
Deprecated.protected OutputFormat
_format
Deprecated.The output format associated with this serializer.protected boolean
_indenting
Deprecated.True if indenting printer.protected Hashtable
_prefixes
Deprecated.Association between namespace URIs (keys) and prefixes (values).protected Printer
_printer
Deprecated.The printer used for printing text parts.protected boolean
_started
Deprecated.If the document has been started (header serialized), this flag is set to true so it's not started twice.protected Node
fCurrentNode
Deprecated.Current node that is being processedprotected DOMErrorImpl
fDOMError
Deprecated.protected DOMErrorHandler
fDOMErrorHandler
Deprecated.protected LSSerializerFilter
fDOMFilter
Deprecated.protected short
features
Deprecated.protected StringBuffer
fStrBuffer
Deprecated.Temporary buffer to store character data
-
Constructor Summary
Constructors Modifier Constructor Description protected
BaseMarkupSerializer(OutputFormat format)
Deprecated.Protected constructor can only be used by derived class.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description ContentHandler
asContentHandler()
Deprecated.Return aContentHandler
interface into this serializer.DocumentHandler
asDocumentHandler()
Deprecated.Return aDocumentHandler
interface into this serializer.DOMSerializer
asDOMSerializer()
Deprecated.Return aDOMSerializer
interface into this serializer.void
attributeDecl(String eName, String aName, String type, String valueDefault, String value)
Deprecated.void
characters(char[] chars, int start, int length)
Deprecated.protected void
characters(String text)
Deprecated.Called to print the text contents in the prevailing element format.protected void
checkUnboundNamespacePrefixedNode(Node node)
Deprecated.DOM level 3: Check a node to determine if it contains unbound namespace prefixes.protected void
cleanup()
Deprecated.void
comment(char[] chars, int start, int length)
Deprecated.void
comment(String text)
Deprecated.protected ElementState
content()
Deprecated.Must be called by a method about to print any type of content.void
elementDecl(String name, String model)
Deprecated.void
endCDATA()
Deprecated.void
endDocument()
Deprecated.Called at the end of the document to wrap it up.void
endDTD()
Deprecated.void
endEntity(String name)
Deprecated.void
endNonEscaping()
Deprecated.void
endPrefixMapping(String prefix)
Deprecated.void
endPreserving()
Deprecated.protected ElementState
enterElementState(String namespaceURI, String localName, String rawName, boolean preserveSpace)
Deprecated.Enter a new element state for the specified element.void
externalEntityDecl(String name, String publicId, String systemId)
Deprecated.protected void
fatalError(String message)
Deprecated.protected ElementState
getElementState()
Deprecated.Return the state of the current element.protected abstract String
getEntityRef(int ch)
Deprecated.Returns the suitable entity reference for this character value, or null if no such entity exists.protected String
getPrefix(String namespaceURI)
Deprecated.Returns the namespace prefix for the specified URI.void
ignorableWhitespace(char[] chars, int start, int length)
Deprecated.void
internalEntityDecl(String name, String value)
Deprecated.protected boolean
isDocumentState()
Deprecated.Returns true if in the state of the document.protected ElementState
leaveElementState()
Deprecated.Leave the current element state and return to the state of the parent element.protected DOMError
modifyDOMError(String message, short severity, String type, Node node)
Deprecated.The method modifies global DOM error objectvoid
notationDecl(String name, String publicId, String systemId)
Deprecated.protected void
prepare()
Deprecated.protected void
printCDATAText(String text)
Deprecated.protected void
printDoctypeURL(String url)
Deprecated.Print a document type public or system identifier URL.protected void
printEscaped(int ch)
Deprecated.protected void
printEscaped(String source)
Deprecated.Escapes a string so it may be printed as text content or attribute value.protected void
printText(char[] chars, int start, int length, boolean preserveSpace, boolean unescaped)
Deprecated.Called to print additional text with whitespace handling.protected void
printText(String text, boolean preserveSpace, boolean unescaped)
Deprecated.void
processingInstruction(String target, String code)
Deprecated.void
processingInstructionIO(String target, String code)
Deprecated.boolean
reset()
Deprecated.void
serialize(Document doc)
Deprecated.Serializes the DOM document using the previously specified writer and output format.void
serialize(DocumentFragment frag)
Deprecated.Serializes the DOM document fragmnt using the previously specified writer and output format.void
serialize(Element elem)
Deprecated.Serializes the DOM element using the previously specified writer and output format.protected abstract void
serializeElement(Element elem)
Deprecated.Called to serializee the DOM element.protected void
serializeNode(Node node)
Deprecated.Serialize the DOM node.protected void
serializePreRoot()
Deprecated.Comments and PIs cannot be serialized before the root element, because the root element serializes the document type, which generally comes first.void
setDocumentLocator(Locator locator)
Deprecated.void
setOutputByteStream(OutputStream output)
Deprecated.Specifies an output stream to which the document should be serialized.void
setOutputCharStream(Writer writer)
Deprecated.Specifies a writer to which the document should be serialized.void
setOutputFormat(OutputFormat format)
Deprecated.Specifies an output format for this serializer.void
skippedEntity(String name)
Deprecated.void
startCDATA()
Deprecated.void
startDocument()
Deprecated.void
startDTD(String name, String publicId, String systemId)
Deprecated.void
startEntity(String name)
Deprecated.void
startNonEscaping()
Deprecated.void
startPrefixMapping(String prefix, String uri)
Deprecated.void
startPreserving()
Deprecated.protected void
surrogates(int high, int low, boolean inContent)
Deprecated.void
unparsedEntityDecl(String name, String publicId, String systemId, String notationName)
Deprecated.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.xml.sax.ContentHandler
endElement, startElement
-
Methods inherited from interface org.xml.sax.DocumentHandler
endElement, startElement
-
-
-
-
Field Detail
-
features
protected short features
Deprecated.
-
fDOMErrorHandler
protected DOMErrorHandler fDOMErrorHandler
Deprecated.
-
fDOMError
protected final DOMErrorImpl fDOMError
Deprecated.
-
fDOMFilter
protected LSSerializerFilter fDOMFilter
Deprecated.
-
_encodingInfo
protected EncodingInfo _encodingInfo
Deprecated.
-
_started
protected boolean _started
Deprecated.If the document has been started (header serialized), this flag is set to true so it's not started twice.
-
_prefixes
protected Hashtable _prefixes
Deprecated.Association between namespace URIs (keys) and prefixes (values). Accumulated here prior to starting an element and placing this list in the element state.
-
_docTypePublicId
protected String _docTypePublicId
Deprecated.The system identifier of the document type, if known.
-
_docTypeSystemId
protected String _docTypeSystemId
Deprecated.The system identifier of the document type, if known.
-
_format
protected OutputFormat _format
Deprecated.The output format associated with this serializer. This will never be a null reference. If no format was passed to the constructor, the default one for this document type will be used. The format object is never changed by the serializer.
-
_printer
protected Printer _printer
Deprecated.The printer used for printing text parts.
-
_indenting
protected boolean _indenting
Deprecated.True if indenting printer.
-
fStrBuffer
protected final StringBuffer fStrBuffer
Deprecated.Temporary buffer to store character data
-
fCurrentNode
protected Node fCurrentNode
Deprecated.Current node that is being processed
-
-
Constructor Detail
-
BaseMarkupSerializer
protected BaseMarkupSerializer(OutputFormat format)
Deprecated.Protected constructor can only be used by derived class. Must initialize the serializer before serializing any document, by callingsetOutputCharStream(java.io.Writer)
orsetOutputByteStream(java.io.OutputStream)
first
-
-
Method Detail
-
asDocumentHandler
public DocumentHandler asDocumentHandler() throws IOException
Deprecated.Description copied from interface:Serializer
Return aDocumentHandler
interface into this serializer. If the serializer does not support theDocumentHandler
interface, it should return null.- Specified by:
asDocumentHandler
in interfaceSerializer
- Throws:
IOException
-
asContentHandler
public ContentHandler asContentHandler() throws IOException
Deprecated.Description copied from interface:Serializer
Return aContentHandler
interface into this serializer. If the serializer does not support theContentHandler
interface, it should return null.- Specified by:
asContentHandler
in interfaceSerializer
- Throws:
IOException
-
asDOMSerializer
public DOMSerializer asDOMSerializer() throws IOException
Deprecated.Description copied from interface:Serializer
Return aDOMSerializer
interface into this serializer. If the serializer does not support theDOMSerializer
interface, it should return null.- Specified by:
asDOMSerializer
in interfaceSerializer
- Throws:
IOException
-
setOutputByteStream
public void setOutputByteStream(OutputStream output)
Deprecated.Description copied from interface:Serializer
Specifies an output stream to which the document should be serialized. This method should not be called while the serializer is in the process of serializing a document.- Specified by:
setOutputByteStream
in interfaceSerializer
-
setOutputCharStream
public void setOutputCharStream(Writer writer)
Deprecated.Description copied from interface:Serializer
Specifies a writer to which the document should be serialized. This method should not be called while the serializer is in the process of serializing a document.- Specified by:
setOutputCharStream
in interfaceSerializer
-
setOutputFormat
public void setOutputFormat(OutputFormat format)
Deprecated.Description copied from interface:Serializer
Specifies an output format for this serializer. It the serializer has already been associated with an output format, it will switch to the new format. This method should not be called while the serializer is in the process of serializing a document.- Specified by:
setOutputFormat
in interfaceSerializer
- Parameters:
format
- The output format to use
-
reset
public boolean reset()
Deprecated.
-
cleanup
protected void cleanup()
Deprecated.
-
prepare
protected void prepare() throws IOException
Deprecated.- Throws:
IOException
-
serialize
public void serialize(Element elem) throws IOException
Deprecated.Serializes the DOM element using the previously specified writer and output format. Throws an exception only if an I/O exception occured while serializing.- Specified by:
serialize
in interfaceDOMSerializer
- Parameters:
elem
- The element to serialize- Throws:
IOException
- An I/O exception occured while serializing
-
serialize
public void serialize(DocumentFragment frag) throws IOException
Deprecated.Serializes the DOM document fragmnt using the previously specified writer and output format. Throws an exception only if an I/O exception occured while serializing.- Specified by:
serialize
in interfaceDOMSerializer
- Parameters:
frag
- The document fragment to serialize- Throws:
IOException
- An I/O exception occured while serializing
-
serialize
public void serialize(Document doc) throws IOException
Deprecated.Serializes the DOM document using the previously specified writer and output format. Throws an exception only if an I/O exception occured while serializing.- Specified by:
serialize
in interfaceDOMSerializer
- Parameters:
doc
- The document to serialize- Throws:
IOException
- An I/O exception occured while serializing
-
startDocument
public void startDocument() throws SAXException
Deprecated.- Specified by:
startDocument
in interfaceContentHandler
- Specified by:
startDocument
in interfaceDocumentHandler
- Throws:
SAXException
-
characters
public void characters(char[] chars, int start, int length) throws SAXException
Deprecated.- Specified by:
characters
in interfaceContentHandler
- Specified by:
characters
in interfaceDocumentHandler
- Throws:
SAXException
-
ignorableWhitespace
public void ignorableWhitespace(char[] chars, int start, int length) throws SAXException
Deprecated.- Specified by:
ignorableWhitespace
in interfaceContentHandler
- Specified by:
ignorableWhitespace
in interfaceDocumentHandler
- Throws:
SAXException
-
processingInstruction
public final void processingInstruction(String target, String code) throws SAXException
Deprecated.- Specified by:
processingInstruction
in interfaceContentHandler
- Specified by:
processingInstruction
in interfaceDocumentHandler
- Throws:
SAXException
-
processingInstructionIO
public void processingInstructionIO(String target, String code) throws IOException
Deprecated.- Throws:
IOException
-
comment
public void comment(char[] chars, int start, int length) throws SAXException
Deprecated.- Specified by:
comment
in interfaceLexicalHandler
- Throws:
SAXException
-
comment
public void comment(String text) throws IOException
Deprecated.- Throws:
IOException
-
startCDATA
public void startCDATA()
Deprecated.- Specified by:
startCDATA
in interfaceLexicalHandler
-
endCDATA
public void endCDATA()
Deprecated.- Specified by:
endCDATA
in interfaceLexicalHandler
-
startNonEscaping
public void startNonEscaping()
Deprecated.
-
endNonEscaping
public void endNonEscaping()
Deprecated.
-
startPreserving
public void startPreserving()
Deprecated.
-
endPreserving
public void endPreserving()
Deprecated.
-
endDocument
public void endDocument() throws SAXException
Deprecated.Called at the end of the document to wrap it up. Will flush the output stream and throw an exception if any I/O error occured while serializing.- Specified by:
endDocument
in interfaceContentHandler
- Specified by:
endDocument
in interfaceDocumentHandler
- Throws:
SAXException
- An I/O exception occured during serializing
-
startEntity
public void startEntity(String name)
Deprecated.- Specified by:
startEntity
in interfaceLexicalHandler
-
endEntity
public void endEntity(String name)
Deprecated.- Specified by:
endEntity
in interfaceLexicalHandler
-
setDocumentLocator
public void setDocumentLocator(Locator locator)
Deprecated.- Specified by:
setDocumentLocator
in interfaceContentHandler
- Specified by:
setDocumentLocator
in interfaceDocumentHandler
-
skippedEntity
public void skippedEntity(String name) throws SAXException
Deprecated.- Specified by:
skippedEntity
in interfaceContentHandler
- Throws:
SAXException
-
startPrefixMapping
public void startPrefixMapping(String prefix, String uri) throws SAXException
Deprecated.- Specified by:
startPrefixMapping
in interfaceContentHandler
- Throws:
SAXException
-
endPrefixMapping
public void endPrefixMapping(String prefix) throws SAXException
Deprecated.- Specified by:
endPrefixMapping
in interfaceContentHandler
- Throws:
SAXException
-
startDTD
public final void startDTD(String name, String publicId, String systemId) throws SAXException
Deprecated.- Specified by:
startDTD
in interfaceLexicalHandler
- Throws:
SAXException
-
endDTD
public void endDTD()
Deprecated.- Specified by:
endDTD
in interfaceLexicalHandler
-
elementDecl
public void elementDecl(String name, String model) throws SAXException
Deprecated.- Specified by:
elementDecl
in interfaceDeclHandler
- Throws:
SAXException
-
attributeDecl
public void attributeDecl(String eName, String aName, String type, String valueDefault, String value) throws SAXException
Deprecated.- Specified by:
attributeDecl
in interfaceDeclHandler
- Throws:
SAXException
-
internalEntityDecl
public void internalEntityDecl(String name, String value) throws SAXException
Deprecated.- Specified by:
internalEntityDecl
in interfaceDeclHandler
- Throws:
SAXException
-
externalEntityDecl
public void externalEntityDecl(String name, String publicId, String systemId) throws SAXException
Deprecated.- Specified by:
externalEntityDecl
in interfaceDeclHandler
- Throws:
SAXException
-
unparsedEntityDecl
public void unparsedEntityDecl(String name, String publicId, String systemId, String notationName) throws SAXException
Deprecated.- Specified by:
unparsedEntityDecl
in interfaceDTDHandler
- Throws:
SAXException
-
notationDecl
public void notationDecl(String name, String publicId, String systemId) throws SAXException
Deprecated.- Specified by:
notationDecl
in interfaceDTDHandler
- Throws:
SAXException
-
serializeNode
protected void serializeNode(Node node) throws IOException
Deprecated.Serialize the DOM node. This method is shared across XML, HTML and XHTML serializers and the differences are masked out in a separateserializeElement(org.w3c.dom.Element)
.- Parameters:
node
- The node to serialize- Throws:
IOException
- An I/O exception occured while serializing- See Also:
serializeElement(org.w3c.dom.Element)
-
content
protected ElementState content() throws IOException
Deprecated.Must be called by a method about to print any type of content. If the element was just opened, the opening tag is closed and will be matched to a closing tag. Returns the current element state with empty and afterElement set to false.- Returns:
- The current element state
- Throws:
IOException
- An I/O exception occurred while serializing
-
characters
protected void characters(String text) throws IOException
Deprecated.Called to print the text contents in the prevailing element format. Since this method is capable of printing text as CDATA, it is used for that purpose as well. White space handling is determined by the current element state. In addition, the output format can dictate whether the text is printed as CDATA or unescaped.- Parameters:
text
- The text to print- Throws:
IOException
- An I/O exception occured while serializing
-
getEntityRef
protected abstract String getEntityRef(int ch)
Deprecated.Returns the suitable entity reference for this character value, or null if no such entity exists. Calling this method with '&' will return "&".- Parameters:
ch
- Character value- Returns:
- Character entity name, or null
-
serializeElement
protected abstract void serializeElement(Element elem) throws IOException
Deprecated.Called to serializee the DOM element. The element is serialized based on the serializer's method (XML, HTML, XHTML).- Parameters:
elem
- The element to serialize- Throws:
IOException
- An I/O exception occured while serializing
-
serializePreRoot
protected void serializePreRoot() throws IOException
Deprecated.Comments and PIs cannot be serialized before the root element, because the root element serializes the document type, which generally comes first. Instead such PIs and comments are accumulated inside a vector and serialized by calling this method. Will be called when the root element is serialized and when the document finished serializing.- Throws:
IOException
- An I/O exception occured while serializing
-
printCDATAText
protected void printCDATAText(String text) throws IOException
Deprecated.- Throws:
IOException
-
surrogates
protected void surrogates(int high, int low, boolean inContent) throws IOException
Deprecated.- Throws:
IOException
-
printText
protected void printText(char[] chars, int start, int length, boolean preserveSpace, boolean unescaped) throws IOException
Deprecated.Called to print additional text with whitespace handling. If spaces are preserved, the text is printed as if by callingprintText(String,boolean,boolean)
with a call toPrinter.breakLine()
for each new line. If spaces are not preserved, the text is broken at space boundaries if longer than the line width; Multiple spaces are printed as such, but spaces at beginning of line are removed.- Parameters:
chars
- The text to printstart
- The start offsetlength
- The number of characterspreserveSpace
- Space preserving flagunescaped
- Print unescaped- Throws:
IOException
-
printText
protected void printText(String text, boolean preserveSpace, boolean unescaped) throws IOException
Deprecated.- Throws:
IOException
-
printDoctypeURL
protected void printDoctypeURL(String url) throws IOException
Deprecated.Print a document type public or system identifier URL. Encapsulates the URL in double quotes, escapes non-printing characters and print it equivalent toprintText(char[], int, int, boolean, boolean)
.- Parameters:
url
- The document type url to print- Throws:
IOException
-
printEscaped
protected void printEscaped(int ch) throws IOException
Deprecated.- Throws:
IOException
-
printEscaped
protected void printEscaped(String source) throws IOException
Deprecated.Escapes a string so it may be printed as text content or attribute value. Non printable characters are escaped using character references. Where the format specifies a deault entity reference, that reference is used (e.g. <).- Parameters:
source
- The string to escape- Throws:
IOException
-
getElementState
protected ElementState getElementState()
Deprecated.Return the state of the current element.- Returns:
- Current element state
-
enterElementState
protected ElementState enterElementState(String namespaceURI, String localName, String rawName, boolean preserveSpace)
Deprecated.Enter a new element state for the specified element. Tag name and space preserving is specified, element state is initially empty.- Returns:
- Current element state, or null
-
leaveElementState
protected ElementState leaveElementState()
Deprecated.Leave the current element state and return to the state of the parent element. If this was the root element, return to the state of the document.- Returns:
- Previous element state
-
isDocumentState
protected boolean isDocumentState()
Deprecated.Returns true if in the state of the document. Returns true before entering any element and after leaving the root element.- Returns:
- True if in the state of the document
-
getPrefix
protected String getPrefix(String namespaceURI)
Deprecated.Returns the namespace prefix for the specified URI. If the URI has been mapped to a prefix, returns the prefix, otherwise returns null.- Parameters:
namespaceURI
- The namespace URI- Returns:
- The namespace prefix if known, or null
-
modifyDOMError
protected DOMError modifyDOMError(String message, short severity, String type, Node node)
Deprecated.The method modifies global DOM error object- Parameters:
message
-severity
-type
-- Returns:
- a DOMError
-
fatalError
protected void fatalError(String message) throws IOException
Deprecated.- Throws:
IOException
-
checkUnboundNamespacePrefixedNode
protected void checkUnboundNamespacePrefixedNode(Node node) throws IOException
Deprecated.DOM level 3: Check a node to determine if it contains unbound namespace prefixes.- Parameters:
node
- The node to check for unbound namespace prefices- Throws:
IOException
-
-