|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.topologi.diffx.xml.XMLStringWriter
public final class XMLStringWriter
An XML which writes on to a string.
This XML writer is backed by a StringWriter
and will defer the XML writer's method to
either a XMLWriterImpl
or XMLWriterNSImpl
depending on whether namespace support is
required.
The write methods do not throw any IOException
.
If the write is not set to support namespaces, the method which require a namespace URI will
throw an UnsupportedOperationException
.
Constructor Summary | |
---|---|
XMLStringWriter(boolean namespaces)
Creates a new XML string writer. |
|
XMLStringWriter(boolean namespaces,
boolean indent)
Create a new XML string writer. |
Method Summary | |
---|---|
void |
attribute(String name,
int value)
Writes an attribute. |
void |
attribute(String name,
String value)
Writes an attribute. |
void |
attribute(String uri,
String name,
int value)
Writes an attribute. |
void |
attribute(String uri,
String name,
String value)
Writes an attribute. |
void |
close()
Close the writer. |
void |
closeElement()
Close the element automatically. |
void |
element(String name,
String text)
Opens element, inserts text node and closes. |
void |
emptyElement(String element)
Writes an empty element. |
void |
emptyElement(String uri,
String element)
Writes an empty element. |
void |
flush()
Flush the writer. |
void |
openElement(String name)
Writes a start element tag correctly indented. |
void |
openElement(String name,
boolean hasChildren)
Writes a start element tag correctly indented. |
void |
openElement(String uri,
String name,
boolean hasChildren)
Writes a start element tag correctly indented. |
void |
setIndentChars(String spaces)
Sets the string to use for indentation. |
void |
setPrefixMapping(String uri,
String prefix)
Sets a prefix mapping. |
String |
toString()
Returns the XML content as a String . |
void |
writeCDATA(String cdata)
Writes the given text as a CDATA section. |
void |
writeComment(String comment)
Writes an XML comment. |
void |
writePI(String target,
String data)
Writes an XML processing instruction. |
void |
writeText(char c)
Writes the given character correctly for the encoding of this document. |
void |
writeText(char[] text,
int off,
int len)
Write the given text correctly for the encoding of this document. |
void |
writeText(String text)
Writes the given text correctly for the encoding of this document. |
void |
writeXML(char[] text,
int off,
int len)
Write the given XML data. |
void |
writeXML(String text)
Writes the given XML data. |
void |
xmlDecl()
Writes the XML declaration. |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public XMLStringWriter(boolean namespaces)
Creates a new XML string writer.
namespaces
- Whether this XML writer should use namespaces.public XMLStringWriter(boolean namespaces, boolean indent)
Create a new XML string writer.
namespaces
- Whether this XML writer should use namespaces.indent
- Set the indentation flag.Method Detail |
---|
public void xmlDecl()
XMLWriter
Always:
<?xml version="1.0" encoding="encoding"?>
It is followed by a new line character if the indentation is turned on.
xmlDecl
in interface XMLWriter
public void setIndentChars(String spaces)
XMLWriter
The string must be only composed of valid spaces characters.
If the string is null
then the indentation is turned off.
setIndentChars
in interface XMLWriter
spaces
- The indentation string to use.Character.isSpaceChar(char)
public void writeText(char c)
XMLWriter
writeText
in interface XMLWriter
c
- The character to write.public void writeText(String text)
XMLWriter
Does nothing if the text is null
.
writeText
in interface XMLWriter
text
- The text to writepublic void writeText(char[] text, int off, int len)
XMLWriter
writeText
in interface XMLWriter
text
- The text to write.off
- The offset where we should start writing the string.len
- The length of the character subarray to write.public void writeCDATA(String cdata)
XMLWriter
Does nothing if the text is null
.
writeCDATA
in interface XMLWriter
cdata
- The data to write inside the CDATA section.public void writeXML(String text)
XMLWriter
The text is appended as is, therefore it should be escaped properly for the encoding used by the underlying stream writer.
Does nothing if the text is null
.
writeXML
in interface XMLWriter
text
- The text to write.public void writeXML(char[] text, int off, int len)
XMLWriter
The text is appended as is, therefore it should be escaped properly for the encoding used by the underlying stream writer.
writeXML
in interface XMLWriter
text
- The text to write.off
- The offset where we should start writing the string.len
- The length of the character subarray to write.public void writeComment(String comment)
XMLWriter
An XML comment is:
<!-- comment -->
Comments are not indented.
Does not write anything if the comment if null
.
writeComment
in interface XMLWriter
comment
- The comment to be writtenpublic void writePI(String target, String data)
XMLWriter
An XML processing intruction is:
<?target data?>
writePI
in interface XMLWriter
target
- The PI's target.data
- The PI's data.public void openElement(String name)
XMLWriter
It is the same as openElement(name, false)
openElement
in interface XMLWriter
name
- the name of the elementXMLWriter.openElement(java.lang.String, boolean)
public void openElement(String name, boolean hasChildren)
XMLWriter
Use the hasChildren
parameter to specify whether this element is terminal
node or not, note: this affects the indenting. To produce correctly indented XML, you
should use the same value for this flag when closing the element.
The name can contain attributes and should be a valid xml name.
openElement
in interface XMLWriter
name
- The name of the elementhasChildren
- true if this element has childrenpublic void openElement(String uri, String name, boolean hasChildren)
XMLWriter
Use the hasChildren
parameter to specify whether this element is terminal
node or not, note: this affects the indenting. To produce correctly indented XML, you
should use the same value for this flag when closing the element.
The name can contain attributes and should be a valid xml name.
openElement
in interface XMLWriter
uri
- The namespace URI of the element.name
- The name of the element.hasChildren
- true if this element has children.public void closeElement()
XMLWriter
The element is closed symmetrically to the
XMLWriter.openElement(String, String, boolean)
method if the XML writer is namespace
aware or the XMLWriter.openElement(String, boolean)
method.
closeElement
in interface XMLWriter
public void element(String name, String text)
XMLWriter
This method should behave like:
this.openElement(name, false); this.writeText(text); this.closeElement();
element
in interface XMLWriter
name
- The name of the element.text
- The text of the element.public void emptyElement(String element)
XMLWriter
It is possible for the element to contain attributes, however, since there is no character escaping, great care must be taken not to introduce invalid characters. For example:
<example test="yes"/>
emptyElement
in interface XMLWriter
element
- the name of the elementpublic void emptyElement(String uri, String element)
XMLWriter
It is possible for the element to contain attributes, however, since there is no character escaping, great care must be taken not to introduce invalid characters. For example:
<example test="yes"/>
emptyElement
in interface XMLWriter
uri
- The namespace URI of the element.element
- The name of the element.public void attribute(String name, String value)
XMLWriter
attribute
in interface XMLWriter
name
- The name of the attribute.value
- The value of the attribute.public void attribute(String name, int value)
XMLWriter
This method for number does not require escaping.
attribute
in interface XMLWriter
name
- The name of the attribute.value
- The value of the attribute.public void attribute(String uri, String name, String value)
XMLWriter
attribute
in interface XMLWriter
uri
- The uri of the attribute.name
- The name of the attribute.value
- The value of the attribute.public void attribute(String uri, String name, int value)
XMLWriter
This method for number does not require escaping.
attribute
in interface XMLWriter
uri
- The uri of the attribute.name
- The name of the attribute.value
- The value of the attribute.public void setPrefixMapping(String uri, String prefix)
XMLWriter
setPrefixMapping
in interface XMLWriter
uri
- The namespace URI.prefix
- The new prefix for the namespace URI.public void flush()
XMLWriter
flush
in interface XMLWriter
public void close() throws UnclosedElementException
XMLWriter
close
in interface XMLWriter
UnclosedElementException
- If there is still an open element.public String toString()
String
.
toString
in class Object
String
.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |