Package com.sun.xml.rpc.util.xml
Class XmlWriter
- java.lang.Object
-
- com.sun.xml.rpc.util.xml.XmlWriter
-
public class XmlWriter extends Object
A writer of XML output streams.An XML writer knows hardly anything about XML document well-formedness, to say nothing of validity. It relies upon the invoker to ensure that the generated document is well-formed and, if required, valid.
Note: This class is incomplete. In the next draft it will be extended to more closely mimic the Xerces XMLScanner, and to support output to both SAX streams and DOM documents.
- Author:
- JAX-RPC Development Team
-
-
Constructor Summary
Constructors Constructor Description XmlWriter(OutputStream out)
Creates a new writer that will write to the given byte-output stream using the UTF-8 encoding.XmlWriter(OutputStream out, String enc)
Creates a new writer that will write to the given byte-output stream using the given encoding.XmlWriter(OutputStream out, String enc, boolean declare)
Creates a new writer that will write to the given byte-output stream using the given encoding.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
attribute(String name, String value)
Writes an attribute for the current element.void
attribute(String prefix, String name, String value)
Writes an attribute for the current element.void
attributeName(String name)
Writes an attribute name for the current element.void
attributeName(String prefix, String name)
Writes an attribute name for the current element.void
attributeUnquoted(String name, String value)
Writes an attribute (unquoted) for the current element.void
attributeUnquoted(String prefix, String name, String value)
Writes an attribute (unquoted) for the current element.void
attributeValue(String value)
Writes a value for the current attribute.void
attributeValueToken(String token)
Writes one token of the current attribute's value.void
attributeValueUnquoted(String value)
Writes a value (unquoted) for the current attribute.void
chars(CDATA chars)
void
chars(String chars)
Writes some character data.void
charsUnquoted(char[] buf, int off, int len)
Writes some character data, skipping quoting.void
charsUnquoted(String chars)
Writes some character data, skipping quoting.void
close()
Flushes the writer and closes the underlying byte-output stream.void
doctype(String root, String dtd)
Writes a DOCTYPE declaration.void
end(String name)
Writes an end tag for the named element.void
flush()
Flushes the writer.void
inlineLeaf(String name)
void
inlineLeaf(String name, String chars)
void
leaf(String name)
Writes an empty leaf element.void
leaf(String name, String chars)
Writes a leaf element with the given character content.void
setQuote(char quote)
Sets the quote character to be used by this writer when writing attribute values.void
start(String name)
Writes a start tag for the named element.
-
-
-
Constructor Detail
-
XmlWriter
public XmlWriter(OutputStream out, String enc, boolean declare) throws UnsupportedEncodingException, IOException
Creates a new writer that will write to the given byte-output stream using the given encoding. An initial XML declaration will optionally be written to the stream.- Parameters:
out
- The target byte-output streamenc
- The character encoding to be useddeclare
- If true, write the XML declaration to the output stream- Throws:
IOException
- If an I/O error occursUnsupportedEncodingException
- If the named encoding is not supported
-
XmlWriter
public XmlWriter(OutputStream out, String enc) throws UnsupportedEncodingException, IOException
Creates a new writer that will write to the given byte-output stream using the given encoding. An initial XML declaration will be written to the stream.- Parameters:
out
- The target byte-output streamenc
- The character encoding to be used- Throws:
IOException
- If an I/O error occursUnsupportedEncodingException
- If the named encoding is not supported
-
XmlWriter
public XmlWriter(OutputStream out) throws IOException
Creates a new writer that will write to the given byte-output stream using the UTF-8 encoding. An initial XML declaration will be written to the stream.- Parameters:
out
- The target byte-output stream- Throws:
IOException
- If an I/O error occurs
-
-
Method Detail
-
setQuote
public void setQuote(char quote)
Sets the quote character to be used by this writer when writing attribute values.- Parameters:
quote
- The new quote character, either a QUOTATION MARK ('\u0022'), or an APOSTROPHE-QUOTE ('\u0027')- Throws:
IllegalArgumentException
- If the argument is neither of the above characters
-
doctype
public void doctype(String root, String dtd) throws IOException
Writes a DOCTYPE declaration.- Parameters:
root
- The name of the root elementdtd
- The URI of the document-type definition- Throws:
IOException
- If an I/O error occurs
-
start
public void start(String name) throws IOException
Writes a start tag for the named element.- Parameters:
name
- The name to be used in the start tag- Throws:
IOException
- If an I/O error occurs
-
attribute
public void attribute(String name, String value) throws IOException
Writes an attribute for the current element.- Parameters:
name
- The attribute's namevalue
- The attribute's value- Throws:
IllegalStateException
- If the previous method invoked upon this object was neitherstart
norattribute
IOException
- If an I/O error occurs
-
attributeUnquoted
public void attributeUnquoted(String name, String value) throws IOException
Writes an attribute (unquoted) for the current element.- Parameters:
name
- The attribute's namevalue
- The attribute's value- Throws:
IllegalStateException
- If the previous method invoked upon this object was neitherstart
norattribute
IOException
- If an I/O error occurs
-
attribute
public void attribute(String prefix, String name, String value) throws IOException
Writes an attribute for the current element.- Parameters:
prefix
- The attribute's prefixname
- The attribute's namevalue
- The attribute's value- Throws:
IllegalStateException
- If the previous method invoked upon this object was neitherstart
norattribute
IOException
- If an I/O error occurs
-
attributeUnquoted
public void attributeUnquoted(String prefix, String name, String value) throws IOException
Writes an attribute (unquoted) for the current element.- Parameters:
prefix
- The attribute's prefixname
- The attribute's namevalue
- The attribute's value- Throws:
IllegalStateException
- If the previous method invoked upon this object was neitherstart
norattribute
IOException
- If an I/O error occurs
-
attributeName
public void attributeName(String name) throws IOException
Writes an attribute name for the current element. After invoking this method, invoke theattributeValue
method to write the attribute value, or invoke theattributeValueToken
method to write one or more space-separated value tokens.- Parameters:
name
- The attribute's name- Throws:
IllegalStateException
- If the previous method invoked upon this object was neitherstart
norattribute
IOException
-
attributeName
public void attributeName(String prefix, String name) throws IOException
Writes an attribute name for the current element. After invoking this method, invoke theattributeValue
method to write the attribute value, or invoke theattributeValueToken
method to write one or more space-separated value tokens.- Parameters:
prefix
- The attribute's prefixname
- The attribute's name- Throws:
IllegalStateException
- If the previous method invoked upon this object was neitherstart
norattribute
IOException
-
attributeValue
public void attributeValue(String value) throws IOException
Writes a value for the current attribute.- Parameters:
value
- The attribute's value- Throws:
IllegalStateException
- If the previous method invoked upon this object was notattributeName
IOException
-
attributeValueUnquoted
public void attributeValueUnquoted(String value) throws IOException
Writes a value (unquoted) for the current attribute.- Parameters:
value
- The attribute's value- Throws:
IllegalStateException
- If the previous method invoked upon this object was notattributeName
IOException
-
attributeValueToken
public void attributeValueToken(String token) throws IOException
Writes one token of the current attribute's value. Adjacent tokens will be separated by single space characters.- Parameters:
token
- The token to be written- Throws:
IllegalStateException
- If the previous method invoked upon this object was neitherattributeName
norattributeValueToken
IOException
-
end
public void end(String name) throws IOException
Writes an end tag for the named element.- Parameters:
name
- The name to be used in the end tag- Throws:
IOException
- If an I/O error occurs
-
chars
public void chars(String chars) throws IOException
Writes some character data.- Parameters:
chars
- The character data to be written- Throws:
IOException
- If an I/O error occurs
-
chars
public void chars(CDATA chars) throws IOException
- Throws:
IOException
-
charsUnquoted
public void charsUnquoted(String chars) throws IOException
Writes some character data, skipping quoting.- Parameters:
chars
- The character data to be written- Throws:
IOException
- If an I/O error occurs
-
charsUnquoted
public void charsUnquoted(char[] buf, int off, int len) throws IOException
Writes some character data, skipping quoting.- Parameters:
buf
- Buffer containing the character data to be writtenoff
- The offset of the data to be writtenlen
- The length of the data to be written- Throws:
IOException
- If an I/O error occurs
-
leaf
public void leaf(String name, String chars) throws IOException
Writes a leaf element with the given character content.- Parameters:
name
- The name to be used in the start and end tagschars
- The character data to be writtenThis method writes a start tag with the given name, followed by the given character data, followed by an end tag. If the chars parameter is null or the empty string then an empty tag is written.
- Throws:
IOException
- If an I/O error occurs
-
inlineLeaf
public void inlineLeaf(String name, String chars) throws IOException
- Throws:
IOException
-
leaf
public void leaf(String name) throws IOException
Writes an empty leaf element.- Parameters:
name
- The name to be used in the empty-element tag- Throws:
IOException
-
inlineLeaf
public void inlineLeaf(String name) throws IOException
- Throws:
IOException
-
flush
public void flush() throws IOException
Flushes the writer.- Throws:
IOException
- If an I/O error occurs
-
close
public void close() throws IOException
Flushes the writer and closes the underlying byte-output stream.- Throws:
IOException
- If an I/O error occurs
-
-