|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
Defines a writer for XML data.
This interface provides simple methods to write XML data onto a writer.
Most implementation should wrap a writer or an output stream. Implementations can be focused on performance, reliability, error reporting, etc...
For improved performance, the most efficient solution will generally to have an implementation write on a buffered writer since the memory usage will generally be restricted little more than the size of the buffer, and this will keep the I/O operation to a minimum.
Other implementations might want to wrap a SAX content handler.
| 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)
Write an empty element. |
void |
emptyElement(String uri,
String element)
Write 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 |
setPrefixMapping(String uri,
String prefix)
Sets a prefix mapping. |
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 text 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. |
| Method Detail |
public void writeText(char c)
throws IOException
Does nothing if the text is null.
c - The character to write.
IOException - If an I/O exception occurs.
public void writeText(String text)
throws IOException
This method turns the string into an array of chars.
Does nothing if the text is null.
text - The text to write.
IOException - If an I/O exception occurs.
public void writeText(char[] text,
int off,
int len)
throws IOException
text - The text to write.off - The offset where we should start writing the string.len - The length of the character subarray to write.
IOException - If an I/O exception occurs.
public void writeXML(String text)
throws IOException
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.
text - The text to write.
IOException - If an I/O exception occurs.
public void writeXML(char[] text,
int off,
int len)
throws IOException
The text is appended as is, therefore it should be escaped properly for the encoding used by the underlying stream writer.
text - The text to write.off - The offset where we should start writing the string.len - The length of the character subarray to write.
IOException - If an I/O exception occurs.
public void xmlDecl()
throws IOException,
IllegalStateException
Always:
<?xml version="1.0" encoding="encoding"?>followed by a new line character.
IOException - If an I/O exception occurs.
IllegalStateException - If this method is called after the writer has started
writing elements nodes.
public void writeComment(String comment)
throws IOException
An XML comment is:
<!-- comment -->
comment - The comment to be written.
IOException - If an I/O exception occurs.
public void writePI(String target,
String data)
throws IOException
An XML processing intruction is:
<?target data?>
target - The PI's target.data - The PI's data.
IOException - If an I/O exception occurs.
public void openElement(String name)
throws IOException
It is the same as openElement(name, false)
name - the name of the element
IOException - If an I/O exception occurs.openElement(java.lang.String, boolean)
public void openElement(String name,
boolean hasChildren)
throws IOException
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.
name - The name of the elementhasChildren - true if this element has children
IOException - If an I/O exception occurs.
public void openElement(String uri,
String name,
boolean hasChildren)
throws IOException,
UnsupportedOperationException
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.
uri - The namespace URI of the element.name - The name of the element.hasChildren - true if this element has children.
IOException - If an I/O exception occurs.
UnsupportedOperationException - If the implementing class does not handle namespace.
public void closeElement()
throws IOException
The element is closed symmetrically to the
openElement(String, String, boolean) method if the XML writer is namespace
aware or the openElement(String, boolean)method.
IOException - If an I/O exception occurs.
public void element(String name,
String text)
throws IOException
name - The name of the element.text - The text of the element.
IOException - If thrown by the wrapped writer.
public void emptyElement(String element)
throws IOException,
UnsupportedOperationException
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"/>
element - the name of the element
IOException - If an I/O exception occurs.
UnsupportedOperationException - If the implementing class does not handle namespace.
public void emptyElement(String uri,
String element)
throws IOException,
UnsupportedOperationException
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"/>
uri - The namespace URI of the element.element - The name of the element.
IOException - If an I/O exception occurs.
UnsupportedOperationException - If the implementing class does not handle namespace.
public void attribute(String name,
String value)
throws IOException,
IllegalStateException
name - The name of the attribute.value - The value of the attribute.
IOException - If thrown by the wrapped writer.
IllegalStateException - If there is no open element or text has been written.
public void attribute(String name,
int value)
throws IOException,
IllegalStateException
This method for number does not require escaping.
name - The name of the attribute.value - The value of the attribute.
IOException - If thrown by the wrapped writer.
IllegalStateException - If there is no open element or text has been written.
public void attribute(String uri,
String name,
String value)
throws IOException,
IllegalStateException,
UnsupportedOperationException
uri - The uri of the attribute.name - The name of the attribute.value - The value of the attribute.
IOException - If thrown by the wrapped writer.
IllegalStateException - If there is no open element or text has been written.
UnsupportedOperationException - If the implementing class does not handle namespace.
public void attribute(String uri,
String name,
int value)
throws IOException,
IllegalStateException,
UnsupportedOperationException
This method for number does not require escaping.
uri - The uri of the attribute.name - The name of the attribute.value - The value of the attribute.
IOException - If thrown by the wrapped writer.
IllegalStateException - If there is no open element or text has been written.
UnsupportedOperationException - If the implementing class does not handle namespace.
public void setPrefixMapping(String uri,
String prefix)
throws UnsupportedOperationException
uri - The namespace URI.prefix - The new prefix for the namespace URI.
UnsupportedOperationException - If the implementing class does not handle namespace.
public void flush()
throws IOException
IOException - If thrown by the wrapped writer.
public void close()
throws IOException
IOException - If thrown by the wrapped writer.
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||