public interface XMLStreamWriter
The XMLStreamWriter interface specifies how to write XML. The XMLStreamWriter does not perform well formedness checking on its input. However the writeCharacters method is required to escape & , < and > For attribute values the writeAttribute method will escape the above characters plus " to ensure that all character content and attribute values are well formed. Each NAMESPACE and ATTRIBUTE must be individually written.
XML Namespaces, javax.xml.stream.isRepairingNamespaces and write method behaviour | ||||
---|---|---|---|---|
Method |
isRepairingNamespaces == true |
isRepairingNamespaces == false | ||
namespaceURI bound | namespaceURI unbound | namespaceURI bound | namespaceURI unbound | |
writeAttribute(namespaceURI, localName, value) | prefix:localName="value" [1] | xmlns:{generated}="namespaceURI" {generated}:localName="value" | prefix:localName="value" [1] | XMLStreamException |
writeAttribute(prefix, namespaceURI, localName, value) | bound to same prefix: prefix:localName="value" [1] bound to different prefix: xmlns:{generated}="namespaceURI" {generated}:localName="value" | xmlns:prefix="namespaceURI" prefix:localName="value" [3] | bound to same prefix: prefix:localName="value" [1][2] bound to different prefix: XMLStreamException [2] | xmlns:prefix="namespaceURI" prefix:localName="value" [2][5] |
writeStartElement(namespaceURI, localName) writeEmptyElement(namespaceURI, localName)
| <prefix:localName> [1] | <{generated}:localName xmlns:{generated}="namespaceURI"> | <prefix:localName> [1] | XMLStreamException |
writeStartElement(prefix, localName, namespaceURI) writeEmptyElement(prefix, localName, namespaceURI)
| bound to same prefix: <prefix:localName> [1] bound to different prefix: <{generated}:localName xmlns:{generated}="namespaceURI"> | <prefix:localName xmlns:prefix="namespaceURI"> [4] | bound to same prefix: <prefix:localName> [1] bound to different prefix: XMLStreamException | <prefix:localName> |
Notes:
|
XMLOutputFactory
, XMLStreamReader
void writeStartElement(String localName) throws XMLStreamException
Writes a start tag to the output. All writeStartElement methods open a new scope in the internal namespace context. Writing the corresponding EndElement causes the scope to be closed.
localName
- local name of the tag, may not be nullXMLStreamException
void writeStartElement(String namespaceURI, String localName) throws XMLStreamException
Writes a start tag to the output
namespaceURI
- the namespaceURI of the prefix to use, may not be nulllocalName
- local name of the tag, may not be nullXMLStreamException
- if the namespace URI has not been bound to a prefix and javax.xml.stream.isRepairingNamespaces has not been set to truevoid writeStartElement(String prefix, String localName, String namespaceURI) throws XMLStreamException
Writes a start tag to the output
localName
- local name of the tag, may not be nullprefix
- the prefix of the tag, may not be nullnamespaceURI
- the uri to bind the prefix to, may not be nullXMLStreamException
void writeEmptyElement(String namespaceURI, String localName) throws XMLStreamException
Writes an empty element tag to the output
namespaceURI
- the uri to bind the tag to, may not be nulllocalName
- local name of the tag, may not be nullXMLStreamException
- if the namespace URI has not been bound to a prefix and javax.xml.stream.isRepairingNamespaces has not been set to truevoid writeEmptyElement(String prefix, String localName, String namespaceURI) throws XMLStreamException
Writes an empty element tag to the output
prefix
- the prefix of the tag, may not be nulllocalName
- local name of the tag, may not be nullnamespaceURI
- the uri to bind the tag to, may not be nullXMLStreamException
void writeEmptyElement(String localName) throws XMLStreamException
Writes an empty element tag to the output
localName
- local name of the tag, may not be nullXMLStreamException
void writeEndElement() throws XMLStreamException
Writes an end tag to the output relying on the internal state of the writer to determine the prefix and local name of the event.
XMLStreamException
void writeEndDocument() throws XMLStreamException
Closes any start tags and writes corresponding end tags.
XMLStreamException
void close() throws XMLStreamException
Close this writer and free any resources associated with the writer. This must not close the underlying output stream.
XMLStreamException
void flush() throws XMLStreamException
Write any cached data to the underlying output mechanism.
XMLStreamException
void writeAttribute(String localName, String value) throws XMLStreamException
Writes an attribute to the output stream without a prefix.
localName
- the local name of the attributevalue
- the value of the attributeIllegalStateException
- if the current state does not allow Attribute writingXMLStreamException
void writeAttribute(String prefix, String namespaceURI, String localName, String value) throws XMLStreamException
Writes an attribute to the output stream
prefix
- the prefix for this attributenamespaceURI
- the uri of the prefix for this attributelocalName
- the local name of the attributevalue
- the value of the attributeIllegalStateException
- if the current state does not allow Attribute writingXMLStreamException
- if the namespace URI has not been bound to a prefix and javax.xml.stream.isRepairingNamespaces has not been set to truevoid writeAttribute(String namespaceURI, String localName, String value) throws XMLStreamException
Writes an attribute to the output stream
namespaceURI
- the uri of the prefix for this attributelocalName
- the local name of the attributevalue
- the value of the attributeIllegalStateException
- if the current state does not allow Attribute writingXMLStreamException
- if the namespace URI has not been bound to a prefix and javax.xml.stream.isRepairingNamespaces has not been set to truevoid writeNamespace(String prefix, String namespaceURI) throws XMLStreamException
Writes a namespace to the output stream If the prefix argument to this method is the empty string, "xmlns", or null this method will delegate to writeDefaultNamespace
prefix
- the prefix to bind this namespace tonamespaceURI
- the uri to bind the prefix toIllegalStateException
- if the current state does not allow Namespace writingXMLStreamException
void writeDefaultNamespace(String namespaceURI) throws XMLStreamException
Writes the default namespace to the stream
namespaceURI
- the uri to bind the default namespace toIllegalStateException
- if the current state does not allow Namespace writingXMLStreamException
void writeComment(String data) throws XMLStreamException
Writes an xml comment with the data enclosed
data
- the data contained in the comment, may be nullXMLStreamException
void writeProcessingInstruction(String target) throws XMLStreamException
Writes a processing instruction
target
- the target of the processing instruction, may not be nullXMLStreamException
void writeProcessingInstruction(String target, String data) throws XMLStreamException
Writes a processing instruction
target
- the target of the processing instruction, may not be nulldata
- the data contained in the processing instruction, may not be nullXMLStreamException
void writeCData(String data) throws XMLStreamException
Writes a CData section
data
- the data contained in the CData Section, may not be nullXMLStreamException
void writeDTD(String dtd) throws XMLStreamException
Write a DTD section. This string represents the entire doctypedecl production from the XML 1.0 specification.
dtd
- the DTD to be writtenXMLStreamException
void writeEntityRef(String name) throws XMLStreamException
Writes an entity reference
name
- the name of the entityXMLStreamException
void writeStartDocument() throws XMLStreamException
Write the XML Declaration. Defaults the XML version to 1.0, and the encoding to utf-8
XMLStreamException
void writeStartDocument(String version) throws XMLStreamException
Write the XML Declaration. Defaults the XML version to 1.0
version
- version of the xml documentXMLStreamException
void writeStartDocument(String encoding, String version) throws XMLStreamException
Write the XML Declaration. Note that the encoding parameter does not set the actual encoding of the underlying output. That must be set when the instance of the XMLStreamWriter is created using the XMLOutputFactory
encoding
- encoding of the xml declarationversion
- version of the xml documentXMLStreamException
- If given encoding does not match encoding of the underlying streamvoid writeCharacters(String text) throws XMLStreamException
Write text to the output
text
- the value to writeXMLStreamException
void writeCharacters(char[] text, int start, int len) throws XMLStreamException
Write text to the output
text
- the value to writestart
- the starting position in the arraylen
- the number of characters to writeXMLStreamException
String getPrefix(String uri) throws XMLStreamException
Gets the prefix the uri is bound to
XMLStreamException
void setPrefix(String prefix, String uri) throws XMLStreamException
Sets the prefix the uri is bound to. This prefix is bound in the scope of the current START_ELEMENT / END_ELEMENT pair. If this method is called before a START_ELEMENT has been written the prefix is bound in the root scope.
prefix
- the prefix to bind to the uri, may not be nulluri
- the uri to bind to the prefix, may be nullXMLStreamException
void setDefaultNamespace(String uri) throws XMLStreamException
Binds a URI to the default namespace This URI is bound in the scope of the current START_ELEMENT / END_ELEMENT pair. If this method is called before a START_ELEMENT has been written the uri is bound in the root scope.
uri
- the uri to bind to the default namespace, may be nullXMLStreamException
void setNamespaceContext(NamespaceContext context) throws XMLStreamException
Sets the current namespace context for prefix and uri bindings. This context becomes the root namespace context for writing and will replace the current root namespace context. Subsequent calls to setPrefix and setDefaultNamespace will bind namespaces using the context passed to the method as the root context for resolving namespaces. This method may only be called once at the start of the document. It does not cause the namespaces to be declared. If a namespace URI to prefix mapping is found in the namespace context it is treated as declared and the prefix may be used by the StreamWriter.
context
- the namespace context to use for this writer, may not be nullXMLStreamException
NamespaceContext getNamespaceContext()
Returns the current namespace context.
Object getProperty(String name) throws IllegalArgumentException
Get the value of a feature/property from the underlying implementation
name
- The name of the property, may not be nullIllegalArgumentException
- if the property is not supportedNullPointerException
- if the name is null
© 1993–2017, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.