Class BaseMarkupSerializer
- All Implemented Interfaces:
DOMSerializer
,Serializer
,ContentHandler
,DocumentHandler
,DTDHandler
,DeclHandler
,LexicalHandler
- Direct Known Subclasses:
HTMLSerializer
,TextSerializer
,XMLSerializer
The serializer must be initialized with the proper writer and
output format before it can be used by calling setOutputCharStream(java.io.Writer)
or setOutputByteStream(java.io.OutputStream)
for the writer and setOutputFormat(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: 923974 $ $Date: 2010-03-17 02:17:04 +0530 (Wed, 17 Mar 2010) $
- Author:
- Assaf Arkin, Rahul Srivastava, Elena Litani, IBM
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected String
Deprecated.The system identifier of the document type, if known.protected String
Deprecated.The system identifier of the document type, if known.protected EncodingInfo
Deprecated.protected OutputFormat
Deprecated.The output format associated with this serializer.protected boolean
Deprecated.True if indenting printer.protected Hashtable
Deprecated.Association between namespace URIs (keys) and prefixes (values).protected Printer
Deprecated.The printer used for printing text parts.protected boolean
Deprecated.If the document has been started (header serialized), this flag is set to true so it's not started twice.protected Node
Deprecated.Current node that is being processedprotected final org.apache.xerces.dom.DOMErrorImpl
Deprecated.protected DOMErrorHandler
Deprecated.protected LSSerializerFilter
Deprecated.protected short
Deprecated.protected final StringBuffer
Deprecated.Temporary buffer to store character data -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
BaseMarkupSerializer
(OutputFormat format) Deprecated.Protected constructor can only be used by derived class. -
Method Summary
Modifier and TypeMethodDescriptionDeprecated.Return aContentHandler
interface into this serializer.Deprecated.Return aDocumentHandler
interface into this serializer.Deprecated.Return aDOMSerializer
interface into this serializer.void
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
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
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
Deprecated.Called at the end of the document to wrap it up.void
endDTD()
Deprecated.void
Deprecated.void
Deprecated.void
endPrefixMapping
(String prefix) Deprecated.void
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
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
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
Deprecated.Returns true if in the state of the document.protected ElementState
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
Deprecated.final void
processingInstruction
(String target, String code) Deprecated.void
processingInstructionIO
(String target, String code) Deprecated.boolean
reset()
Deprecated.void
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
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
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
Deprecated.void
Deprecated.final void
Deprecated.void
startEntity
(String name) Deprecated.void
Deprecated.void
startPrefixMapping
(String prefix, String uri) Deprecated.void
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
declaration, endElement, startElement
Methods inherited from interface org.xml.sax.DocumentHandler
endElement, startElement
-
Field Details
-
features
protected short featuresDeprecated. -
fDOMErrorHandler
Deprecated. -
fDOMError
protected final org.apache.xerces.dom.DOMErrorImpl fDOMErrorDeprecated. -
fDOMFilter
Deprecated. -
_encodingInfo
Deprecated. -
_started
protected boolean _startedDeprecated.If the document has been started (header serialized), this flag is set to true so it's not started twice. -
_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
Deprecated.The system identifier of the document type, if known. -
_docTypeSystemId
Deprecated.The system identifier of the document type, if known. -
_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
Deprecated.The printer used for printing text parts. -
_indenting
protected boolean _indentingDeprecated.True if indenting printer. -
fStrBuffer
Deprecated.Temporary buffer to store character data -
fCurrentNode
Deprecated.Current node that is being processed
-
-
Constructor Details
-
BaseMarkupSerializer
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 Details
-
asDocumentHandler
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
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
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
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
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
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
Deprecated.- Throws:
IOException
-
serialize
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
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
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
Deprecated.- Specified by:
startDocument
in interfaceContentHandler
- Specified by:
startDocument
in interfaceDocumentHandler
- Throws:
SAXException
-
characters
Deprecated.- Specified by:
characters
in interfaceContentHandler
- Specified by:
characters
in interfaceDocumentHandler
- Throws:
SAXException
-
ignorableWhitespace
Deprecated.- Specified by:
ignorableWhitespace
in interfaceContentHandler
- Specified by:
ignorableWhitespace
in interfaceDocumentHandler
- Throws:
SAXException
-
processingInstruction
Deprecated.- Specified by:
processingInstruction
in interfaceContentHandler
- Specified by:
processingInstruction
in interfaceDocumentHandler
- Throws:
SAXException
-
processingInstructionIO
Deprecated.- Throws:
IOException
-
comment
Deprecated.- Specified by:
comment
in interfaceLexicalHandler
- Throws:
SAXException
-
comment
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
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
Deprecated.- Specified by:
startEntity
in interfaceLexicalHandler
-
endEntity
Deprecated.- Specified by:
endEntity
in interfaceLexicalHandler
-
setDocumentLocator
Deprecated.- Specified by:
setDocumentLocator
in interfaceContentHandler
- Specified by:
setDocumentLocator
in interfaceDocumentHandler
-
skippedEntity
Deprecated.- Specified by:
skippedEntity
in interfaceContentHandler
- Throws:
SAXException
-
startPrefixMapping
Deprecated.- Specified by:
startPrefixMapping
in interfaceContentHandler
- Throws:
SAXException
-
endPrefixMapping
Deprecated.- Specified by:
endPrefixMapping
in interfaceContentHandler
- Throws:
SAXException
-
startDTD
Deprecated.- Specified by:
startDTD
in interfaceLexicalHandler
- Throws:
SAXException
-
endDTD
public void endDTD()Deprecated.- Specified by:
endDTD
in interfaceLexicalHandler
-
elementDecl
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
Deprecated.- Specified by:
internalEntityDecl
in interfaceDeclHandler
- Throws:
SAXException
-
externalEntityDecl
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
Deprecated.- Specified by:
notationDecl
in interfaceDTDHandler
- Throws:
SAXException
-
serializeNode
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:
-
content
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
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
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
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
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
Deprecated.- Throws:
IOException
-
surrogates
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
Deprecated.- Throws:
IOException
-
printDoctypeURL
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
Deprecated.- Throws:
IOException
-
printEscaped
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
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
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
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
Deprecated.The method modifies global DOM error object- Parameters:
message
-severity
-type
-- Returns:
- a DOMError
-
fatalError
Deprecated.- Throws:
IOException
-
checkUnboundNamespacePrefixedNode
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
-