Prev Class | Next Class | Frames | No Frames |
Summary: Nested | Field | Method | Constr | Detail: Nested | Field | Method | Constr |
java.lang.Object
gnu.xml.transform.StreamSerializer
gnu.xml.dom.ls.DomLSSerializer
public class DomLSSerializer
extends StreamSerializer
implements LSSerializer, DOMConfiguration, DOMStringList
Field Summary |
Fields inherited from class gnu.xml.transform.StreamSerializer | |
discardDefaultContent , encoding , eol , xmlDeclaration |
Constructor Summary | |
Method Summary | |
boolean |
|
boolean |
|
DOMConfiguration |
|
LSSerializerFilter |
|
int |
|
String |
|
Object |
|
DOMStringList |
|
String |
|
void | |
void |
|
void |
|
void |
|
boolean | |
String |
|
boolean |
|
Methods inherited from class gnu.xml.transform.StreamSerializer | |
serialize |
public boolean canSetParameter(String name, Object value)
Check if setting a parameter to a specific value is supported.
- Specified by:
- canSetParameter in interface DOMConfiguration
- Parameters:
name
- The name of the parameter to check.value
- An object. ifnull
, the returned value istrue
.
- Returns:
true
if the parameter could be successfully set to the specified value, orfalse
if the parameter is not recognized or the requested value is not supported. This does not change the current value of the parameter itself.
public boolean contains(String str)
Test if a string is part of thisDOMStringList
.
- Specified by:
- contains in interface DOMStringList
- Parameters:
str
- The string to look for.
- Returns:
true
if the string has been found,false
otherwise.
public DOMConfiguration getDomConfig()
TheDOMConfiguration
object used by theLSSerializer
when serializing a DOM node.
In addition to the parameters recognized by the DOMConfiguration interface defined in [DOM Level 3 Core] , theDOMConfiguration
objects forLSSerializer
adds, or modifies, the following parameters:
"canonical-form"
true
- [optional] Writes the document according to the rules specified in [Canonical XML]. In addition to the behavior described in " canonical-form" [DOM Level 3 Core] , setting this parameter to
true
will set the parameters "format-pretty-print", "discard-default-content", and "xml-declaration ", tofalse
. Setting one of those parameters totrue
will set this parameter tofalse
. Serializing an XML 1.1 document when "canonical-form" istrue
will generate a fatal error.false
- [required] (default) Do not canonicalize the output.
"discard-default-content"
true
- [required] (default) Use the
Attr.specified
attribute to decide what attributes should be discarded. Note that some implementations might use whatever information available to the implementation (i.e. XML schema, DTD, theAttr.specified
attribute, and so on) to determine what attributes and content to discard if this parameter is set totrue
.false
- [required]Keep all attributes and all content.
"format-pretty-print"
true
- [optional] Formatting the output by adding whitespace to produce a pretty-printed, indented, human-readable form. The exact form of the transformations is not specified by this specification. Pretty-printing changes the content of the document and may affect the validity of the document, validating implementations should preserve validity.
false
- [required] (default) Don't pretty-print the result.
"ignore-unknown-character-denormalizations"
true
- [required] (default) If, while verifying full normalization when [XML 1.1] is supported, a character is encountered for which the normalization properties cannot be determined, then raise a
"unknown-character-denormalization"
warning (instead of raising an error, if this parameter is not set) and ignore any possible denormalizations caused by these characters.false
- [optional] Report a fatal error if a character is encountered for which the processor cannot determine the normalization properties.
"normalize-characters"
This parameter is equivalent to the one defined by DOMConfiguration
in [DOM Level 3 Core] . Unlike in the Core, the default value for this parameter istrue
. While DOM implementations are not required to support fully normalizing the characters in the document according to appendix E of [XML 1.1], this parameter must be activated by default if supported."xml-declaration"
true
- [required] (default) If a
Document
,Element
, orEntity
node is serialized, the XML declaration, or text declaration, should be included. The version (Document.xmlVersion
if the document is a Level 3 document and the version is non-null, otherwise use the value "1.0"), and the output encoding (seeLSSerializer.write
for details on how to find the output encoding) are specified in the serialized XML declaration.false
- [required] Do not serialize the XML and text declarations. Report a
"xml-declaration-needed"
warning if this will cause problems (i.e. the serialized data is of an XML version other than [XML 1.0], or an encoding would be needed to be able to re-parse the serialized data).
- Specified by:
- getDomConfig in interface LSSerializer
public LSSerializerFilter getFilter()
When the application provides a filter, the serializer will call out to the filter before serializing each Node. The filter implementation can choose to remove the node from the stream or to terminate the serialization early.
The filter is invoked after the operations requested by theDOMConfiguration
parameters have been applied. For example, CDATA sections won't be passed to the filter if " cdata-sections" is set tofalse
.
- Specified by:
- getFilter in interface LSSerializer
public int getLength()
The number ofDOMString
s in the list. The range of valid child node indices is 0 tolength-1
inclusive.
- Specified by:
- getLength in interface DOMStringList
public String getNewLine()
The end-of-line sequence of characters to be used in the XML being written out. Any string is supported, but XML treats only a certain set of characters sequence as end-of-line (See section 2.11, "End-of-Line Handling" in [XML 1.0], if the serialized content is XML 1.0 or section 2.11, "End-of-Line Handling" in [XML 1.1], if the serialized content is XML 1.1). Using other character sequences than the recommended ones can result in a document that is either not serializable or not well-formed).
On retrieval, the default value of this attribute is the implementation specific default end-of-line sequence. DOM implementations should choose the default to match the usual convention for text files in the environment being used. Implementations must choose a default sequence that matches one of those allowed by XML 1.0 or XML 1.1, depending on the serialized content. Setting this attribute tonull
will reset its value to the default value.
- Specified by:
- getNewLine in interface LSSerializer
public Object getParameter(String name) throws DOMException
Return the value of a parameter if known.
- Specified by:
- getParameter in interface DOMConfiguration
- Parameters:
name
- The name of the parameter.
- Returns:
- The current object associated with the specified parameter or
null
if no object has been associated or if the parameter is not supported.
- Throws:
DOMException
- NOT_FOUND_ERR: Raised when the parameter name is not recognized.
public DOMStringList getParameterNames()
The list of the parameters supported by thisDOMConfiguration
object and for which at least one value can be set by the application. Note that this list can also contain parameter names defined outside this specification.
- Specified by:
- getParameterNames in interface DOMConfiguration
public String item(int i)
Returns theindex
th item in the collection. Ifindex
is greater than or equal to the number ofDOMString
s in the list, this returnsnull
.
- Specified by:
- item in interface DOMStringList
- Parameters:
- Returns:
- The
DOMString
at theindex
th position in theDOMStringList
, ornull
if that is not a valid index.
public void serialize(Node node, OutputStream out) throws IOException
- Overrides:
- serialize in interface StreamSerializer
public void setFilter(LSSerializerFilter filter)
When the application provides a filter, the serializer will call out to the filter before serializing each Node. The filter implementation can choose to remove the node from the stream or to terminate the serialization early.
The filter is invoked after the operations requested by theDOMConfiguration
parameters have been applied. For example, CDATA sections won't be passed to the filter if " cdata-sections" is set tofalse
.
- Specified by:
- setFilter in interface LSSerializer
public void setNewLine(String newLine)
The end-of-line sequence of characters to be used in the XML being written out. Any string is supported, but XML treats only a certain set of characters sequence as end-of-line (See section 2.11, "End-of-Line Handling" in [XML 1.0], if the serialized content is XML 1.0 or section 2.11, "End-of-Line Handling" in [XML 1.1], if the serialized content is XML 1.1). Using other character sequences than the recommended ones can result in a document that is either not serializable or not well-formed).
On retrieval, the default value of this attribute is the implementation specific default end-of-line sequence. DOM implementations should choose the default to match the usual convention for text files in the environment being used. Implementations must choose a default sequence that matches one of those allowed by XML 1.0 or XML 1.1, depending on the serialized content. Setting this attribute tonull
will reset its value to the default value.
- Specified by:
- setNewLine in interface LSSerializer
public void setParameter(String name, Object value) throws DOMException
Set the value of a parameter.
- Specified by:
- setParameter in interface DOMConfiguration
- Parameters:
name
- The name of the parameter to set.value
- The new value ornull
if the user wishes to unset the parameter. While the type of the value parameter is defined asDOMUserData
, the object type must match the type defined by the definition of the parameter. For example, if the parameter is "error-handler", the value must be of typeDOMErrorHandler
.
- Throws:
DOMException
- NOT_FOUND_ERR: Raised when the parameter name is not recognized.
NOT_SUPPORTED_ERR: Raised when the parameter name is recognized but the requested value cannot be set.
TYPE_MISMATCH_ERR: Raised if the value type for this parameter name is incompatible with the expected value type.
public boolean write(Node node, LSOutput output) throws LSException
Serialize the specified node as described above in the general description of theLSSerializer
interface. The output is written to the suppliedLSOutput
.
When writing to aLSOutput
, the encoding is found by looking at the encoding information that is reachable through theLSOutput
and the item to be written (or its owner document) in this order:
LSOutput.encoding
,Document.inputEncoding
,Document.xmlEncoding
.
If no encoding is reachable through the above properties, a default encoding of "UTF-8" will be used. If the specified encoding is not supported an "unsupported-encoding" fatal error is raised.
If no output is specified in theLSOutput
, a "no-output-specified" fatal error is raised.
The implementation is responsible of associating the appropriate media type with the serialized data.
When writing to a HTTP URI, a HTTP PUT is performed. When writing to other types of URIs, the mechanism for writing the data to the URI is implementation dependent.
- Specified by:
- write in interface LSSerializer
- Parameters:
- Returns:
- Returns
true
ifnode
was successfully serialized. Returnfalse
in case the normal processing stopped but the implementation kept serializing the document; the result of the serialization being implementation dependent then.
- Throws:
LSException
- SERIALIZE_ERR: Raised if theLSSerializer
was unable to serialize the node. DOM applications should attach aDOMErrorHandler
using the parameter " error-handler" if they wish to get details on the error.
public String writeToString(Node node) throws DOMException, LSException
Serialize the specified node as described above in the general description of theLSSerializer
interface. The output is written to aDOMString
that is returned to the caller. The encoding used is the encoding of theDOMString
type, i.e. UTF-16. Note that no Byte Order Mark is generated in aDOMString
object.
- Specified by:
- writeToString in interface LSSerializer
- Parameters:
- Returns:
- Returns the serialized data.
- Throws:
DOMException
- DOMSTRING_SIZE_ERR: Raised if the resulting string is too long to fit in aDOMString
.LSException
- SERIALIZE_ERR: Raised if theLSSerializer
was unable to serialize the node. DOM applications should attach aDOMErrorHandler
using the parameter " error-handler" if they wish to get details on the error.
public boolean writeToURI(Node node, String uri) throws LSException
A convenience method that acts as ifLSSerializer.write
was called with aLSOutput
with no encoding specified andLSOutput.systemId
set to theuri
argument.
- Specified by:
- writeToURI in interface LSSerializer
- Parameters:
uri
- The URI to write to.
- Returns:
- Returns
true
ifnode
was successfully serialized. Returnfalse
in case the normal processing stopped but the implementation kept serializing the document; the result of the serialization being implementation dependent then.
- Throws:
LSException
- SERIALIZE_ERR: Raised if theLSSerializer
was unable to serialize the node. DOM applications should attach aDOMErrorHandler
using the parameter " error-handler" if they wish to get details on the error.