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 StringDeprecated.The system identifier of the document type, if known.protected StringDeprecated.The system identifier of the document type, if known.protected EncodingInfoDeprecated.protected OutputFormatDeprecated.The output format associated with this serializer.protected booleanDeprecated.True if indenting printer.protected HashtableDeprecated.Association between namespace URIs (keys) and prefixes (values).protected PrinterDeprecated.The printer used for printing text parts.protected booleanDeprecated.If the document has been started (header serialized), this flag is set to true so it's not started twice.protected NodeDeprecated.Current node that is being processedprotected final org.apache.xerces.dom.DOMErrorImplDeprecated.protected DOMErrorHandlerDeprecated.protected LSSerializerFilterDeprecated.protected shortDeprecated.protected final StringBufferDeprecated.Temporary buffer to store character data -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedBaseMarkupSerializer(OutputFormat format) Deprecated.Protected constructor can only be used by derived class. -
Method Summary
Modifier and TypeMethodDescriptionDeprecated.Return aContentHandlerinterface into this serializer.Deprecated.Return aDocumentHandlerinterface into this serializer.Deprecated.Return aDOMSerializerinterface into this serializer.voidDeprecated.voidcharacters(char[] chars, int start, int length) Deprecated.protected voidcharacters(String text) Deprecated.Called to print the text contents in the prevailing element format.protected voidDeprecated.DOM level 3: Check a node to determine if it contains unbound namespace prefixes.protected voidcleanup()Deprecated.voidcomment(char[] chars, int start, int length) Deprecated.voidDeprecated.protected ElementStatecontent()Deprecated.Must be called by a method about to print any type of content.voidelementDecl(String name, String model) Deprecated.voidendCDATA()Deprecated.voidDeprecated.Called at the end of the document to wrap it up.voidendDTD()Deprecated.voidDeprecated.voidDeprecated.voidendPrefixMapping(String prefix) Deprecated.voidDeprecated.protected ElementStateenterElementState(String namespaceURI, String localName, String rawName, boolean preserveSpace) Deprecated.Enter a new element state for the specified element.voidexternalEntityDecl(String name, String publicId, String systemId) Deprecated.protected voidfatalError(String message) Deprecated.protected ElementStateDeprecated.Return the state of the current element.protected abstract StringgetEntityRef(int ch) Deprecated.Returns the suitable entity reference for this character value, or null if no such entity exists.protected StringDeprecated.Returns the namespace prefix for the specified URI.voidignorableWhitespace(char[] chars, int start, int length) Deprecated.voidinternalEntityDecl(String name, String value) Deprecated.protected booleanDeprecated.Returns true if in the state of the document.protected ElementStateDeprecated.Leave the current element state and return to the state of the parent element.protected DOMErrormodifyDOMError(String message, short severity, String type, Node node) Deprecated.The method modifies global DOM error objectvoidnotationDecl(String name, String publicId, String systemId) Deprecated.protected voidprepare()Deprecated.protected voidprintCDATAText(String text) Deprecated.protected voidprintDoctypeURL(String url) Deprecated.Print a document type public or system identifier URL.protected voidprintEscaped(int ch) Deprecated.protected voidprintEscaped(String source) Deprecated.Escapes a string so it may be printed as text content or attribute value.protected voidprintText(char[] chars, int start, int length, boolean preserveSpace, boolean unescaped) Deprecated.Called to print additional text with whitespace handling.protected voidDeprecated.final voidprocessingInstruction(String target, String code) Deprecated.voidprocessingInstructionIO(String target, String code) Deprecated.booleanreset()Deprecated.voidDeprecated.Serializes the DOM document using the previously specified writer and output format.voidserialize(DocumentFragment frag) Deprecated.Serializes the DOM document fragmnt using the previously specified writer and output format.voidDeprecated.Serializes the DOM element using the previously specified writer and output format.protected abstract voidserializeElement(Element elem) Deprecated.Called to serializee the DOM element.protected voidserializeNode(Node node) Deprecated.Serialize the DOM node.protected voidDeprecated.Comments and PIs cannot be serialized before the root element, because the root element serializes the document type, which generally comes first.voidsetDocumentLocator(Locator locator) Deprecated.voidsetOutputByteStream(OutputStream output) Deprecated.Specifies an output stream to which the document should be serialized.voidsetOutputCharStream(Writer writer) Deprecated.Specifies a writer to which the document should be serialized.voidsetOutputFormat(OutputFormat format) Deprecated.Specifies an output format for this serializer.voidskippedEntity(String name) Deprecated.voidDeprecated.voidDeprecated.final voidDeprecated.voidstartEntity(String name) Deprecated.voidDeprecated.voidstartPrefixMapping(String prefix, String uri) Deprecated.voidDeprecated.protected voidsurrogates(int high, int low, boolean inContent) Deprecated.voidunparsedEntityDecl(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, waitMethods inherited from interface org.xml.sax.ContentHandler
declaration, endElement, startElementMethods 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:SerializerReturn aDocumentHandlerinterface into this serializer. If the serializer does not support theDocumentHandlerinterface, it should return null.- Specified by:
asDocumentHandlerin interfaceSerializer- Throws:
IOException
-
asContentHandler
Deprecated.Description copied from interface:SerializerReturn aContentHandlerinterface into this serializer. If the serializer does not support theContentHandlerinterface, it should return null.- Specified by:
asContentHandlerin interfaceSerializer- Throws:
IOException
-
asDOMSerializer
Deprecated.Description copied from interface:SerializerReturn aDOMSerializerinterface into this serializer. If the serializer does not support theDOMSerializerinterface, it should return null.- Specified by:
asDOMSerializerin interfaceSerializer- Throws:
IOException
-
setOutputByteStream
Deprecated.Description copied from interface:SerializerSpecifies 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:
setOutputByteStreamin interfaceSerializer
-
setOutputCharStream
Deprecated.Description copied from interface:SerializerSpecifies 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:
setOutputCharStreamin interfaceSerializer
-
setOutputFormat
Deprecated.Description copied from interface:SerializerSpecifies 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:
setOutputFormatin 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:
serializein 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:
serializein 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:
serializein interfaceDOMSerializer- Parameters:
doc- The document to serialize- Throws:
IOException- An I/O exception occured while serializing
-
startDocument
Deprecated.- Specified by:
startDocumentin interfaceContentHandler- Specified by:
startDocumentin interfaceDocumentHandler- Throws:
SAXException
-
characters
Deprecated.- Specified by:
charactersin interfaceContentHandler- Specified by:
charactersin interfaceDocumentHandler- Throws:
SAXException
-
ignorableWhitespace
Deprecated.- Specified by:
ignorableWhitespacein interfaceContentHandler- Specified by:
ignorableWhitespacein interfaceDocumentHandler- Throws:
SAXException
-
processingInstruction
Deprecated.- Specified by:
processingInstructionin interfaceContentHandler- Specified by:
processingInstructionin interfaceDocumentHandler- Throws:
SAXException
-
processingInstructionIO
Deprecated.- Throws:
IOException
-
comment
Deprecated.- Specified by:
commentin interfaceLexicalHandler- Throws:
SAXException
-
comment
Deprecated.- Throws:
IOException
-
startCDATA
public void startCDATA()Deprecated.- Specified by:
startCDATAin interfaceLexicalHandler
-
endCDATA
public void endCDATA()Deprecated.- Specified by:
endCDATAin 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:
endDocumentin interfaceContentHandler- Specified by:
endDocumentin interfaceDocumentHandler- Throws:
SAXException- An I/O exception occured during serializing
-
startEntity
Deprecated.- Specified by:
startEntityin interfaceLexicalHandler
-
endEntity
Deprecated.- Specified by:
endEntityin interfaceLexicalHandler
-
setDocumentLocator
Deprecated.- Specified by:
setDocumentLocatorin interfaceContentHandler- Specified by:
setDocumentLocatorin interfaceDocumentHandler
-
skippedEntity
Deprecated.- Specified by:
skippedEntityin interfaceContentHandler- Throws:
SAXException
-
startPrefixMapping
Deprecated.- Specified by:
startPrefixMappingin interfaceContentHandler- Throws:
SAXException
-
endPrefixMapping
Deprecated.- Specified by:
endPrefixMappingin interfaceContentHandler- Throws:
SAXException
-
startDTD
Deprecated.- Specified by:
startDTDin interfaceLexicalHandler- Throws:
SAXException
-
endDTD
public void endDTD()Deprecated.- Specified by:
endDTDin interfaceLexicalHandler
-
elementDecl
Deprecated.- Specified by:
elementDeclin interfaceDeclHandler- Throws:
SAXException
-
attributeDecl
public void attributeDecl(String eName, String aName, String type, String valueDefault, String value) throws SAXException Deprecated.- Specified by:
attributeDeclin interfaceDeclHandler- Throws:
SAXException
-
internalEntityDecl
Deprecated.- Specified by:
internalEntityDeclin interfaceDeclHandler- Throws:
SAXException
-
externalEntityDecl
Deprecated.- Specified by:
externalEntityDeclin interfaceDeclHandler- Throws:
SAXException
-
unparsedEntityDecl
public void unparsedEntityDecl(String name, String publicId, String systemId, String notationName) throws SAXException Deprecated.- Specified by:
unparsedEntityDeclin interfaceDTDHandler- Throws:
SAXException
-
notationDecl
Deprecated.- Specified by:
notationDeclin 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
-