FileDocCategorySizeDatePackage
XMLStreamWriter.javaAPI DocJava SE 6 API19079Tue Jun 10 00:27:10 BST 2008javax.xml.stream

XMLStreamWriter

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:
  • [1] if namespaceURI == default Namespace URI, then no prefix is written
  • [2] if prefix == "" || null && namespaceURI == "", then no prefix or Namespace declaration is generated or written
  • [3] if prefix == "" || null, then a prefix is randomly generated
  • [4] if prefix == "" || null, then it is treated as the default Namespace and no prefix is generated or written, an xmlns declaration is generated and written if the namespaceURI is unbound
  • [5] if prefix == "" || null, then it is treated as an invalid attempt to define the default Namespace and an XMLStreamException is thrown
version
1.0
author
Copyright (c) 2003 by BEA Systems. All Rights Reserved.
see
XMLOutputFactory
see
XMLStreamReader
since
1.6

Fields Summary
Constructors Summary
Methods Summary
public voidclose()
Close this writer and free any resources associated with the writer. This must not close the underlying output stream.

throws
XMLStreamException

public voidflush()
Write any cached data to the underlying output mechanism.

throws
XMLStreamException

public javax.xml.namespace.NamespaceContextgetNamespaceContext()
Returns the current namespace context.

return
the current NamespaceContext

public java.lang.StringgetPrefix(java.lang.String uri)
Gets the prefix the uri is bound to

return
the prefix or null
throws
XMLStreamException

public java.lang.ObjectgetProperty(java.lang.String name)
Get the value of a feature/property from the underlying implementation

param
name The name of the property, may not be null
return
The value of the property
throws
IllegalArgumentException if the property is not supported
throws
NullPointerException if the name is null

public voidsetDefaultNamespace(java.lang.String uri)
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.

param
uri the uri to bind to the default namespace, may be null
throws
XMLStreamException

public voidsetNamespaceContext(javax.xml.namespace.NamespaceContext context)
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.

param
context the namespace context to use for this writer, may not be null
throws
XMLStreamException

public voidsetPrefix(java.lang.String prefix, java.lang.String uri)
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.

param
prefix the prefix to bind to the uri, may not be null
param
uri the uri to bind to the prefix, may be null
throws
XMLStreamException

public voidwriteAttribute(java.lang.String localName, java.lang.String value)
Writes an attribute to the output stream without a prefix.

param
localName the local name of the attribute
param
value the value of the attribute
throws
IllegalStateException if the current state does not allow Attribute writing
throws
XMLStreamException

public voidwriteAttribute(java.lang.String prefix, java.lang.String namespaceURI, java.lang.String localName, java.lang.String value)
Writes an attribute to the output stream

param
prefix the prefix for this attribute
param
namespaceURI the uri of the prefix for this attribute
param
localName the local name of the attribute
param
value the value of the attribute
throws
IllegalStateException if the current state does not allow Attribute writing
throws
XMLStreamException if the namespace URI has not been bound to a prefix and javax.xml.stream.isRepairingNamespaces has not been set to true

public voidwriteAttribute(java.lang.String namespaceURI, java.lang.String localName, java.lang.String value)
Writes an attribute to the output stream

param
namespaceURI the uri of the prefix for this attribute
param
localName the local name of the attribute
param
value the value of the attribute
throws
IllegalStateException if the current state does not allow Attribute writing
throws
XMLStreamException if the namespace URI has not been bound to a prefix and javax.xml.stream.isRepairingNamespaces has not been set to true

public voidwriteCData(java.lang.String data)
Writes a CData section

param
data the data contained in the CData Section, may not be null
throws
XMLStreamException

public voidwriteCharacters(java.lang.String text)
Write text to the output

param
text the value to write
throws
XMLStreamException

public voidwriteCharacters(char[] text, int start, int len)
Write text to the output

param
text the value to write
param
start the starting position in the array
param
len the number of characters to write
throws
XMLStreamException

public voidwriteComment(java.lang.String data)
Writes an xml comment with the data enclosed

param
data the data contained in the comment, may be null
throws
XMLStreamException

public voidwriteDTD(java.lang.String dtd)
Write a DTD section. This string represents the entire doctypedecl production from the XML 1.0 specification.

param
dtd the DTD to be written
throws
XMLStreamException

public voidwriteDefaultNamespace(java.lang.String namespaceURI)
Writes the default namespace to the stream

param
namespaceURI the uri to bind the default namespace to
throws
IllegalStateException if the current state does not allow Namespace writing
throws
XMLStreamException

public voidwriteEmptyElement(java.lang.String namespaceURI, java.lang.String localName)
Writes an empty element tag to the output

param
namespaceURI the uri to bind the tag to, may not be null
param
localName local name of the tag, may not be null
throws
XMLStreamException if the namespace URI has not been bound to a prefix and javax.xml.stream.isRepairingNamespaces has not been set to true

public voidwriteEmptyElement(java.lang.String prefix, java.lang.String localName, java.lang.String namespaceURI)
Writes an empty element tag to the output

param
prefix the prefix of the tag, may not be null
param
localName local name of the tag, may not be null
param
namespaceURI the uri to bind the tag to, may not be null
throws
XMLStreamException

public voidwriteEmptyElement(java.lang.String localName)
Writes an empty element tag to the output

param
localName local name of the tag, may not be null
throws
XMLStreamException

public voidwriteEndDocument()
Closes any start tags and writes corresponding end tags.

throws
XMLStreamException

public voidwriteEndElement()
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.

throws
XMLStreamException

public voidwriteEntityRef(java.lang.String name)
Writes an entity reference

param
name the name of the entity
throws
XMLStreamException

public voidwriteNamespace(java.lang.String prefix, java.lang.String namespaceURI)
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

param
prefix the prefix to bind this namespace to
param
namespaceURI the uri to bind the prefix to
throws
IllegalStateException if the current state does not allow Namespace writing
throws
XMLStreamException

public voidwriteProcessingInstruction(java.lang.String target)
Writes a processing instruction

param
target the target of the processing instruction, may not be null
throws
XMLStreamException

public voidwriteProcessingInstruction(java.lang.String target, java.lang.String data)
Writes a processing instruction

param
target the target of the processing instruction, may not be null
param
data the data contained in the processing instruction, may not be null
throws
XMLStreamException

public voidwriteStartDocument()
Write the XML Declaration. Defaults the XML version to 1.0, and the encoding to utf-8

throws
XMLStreamException

public voidwriteStartDocument(java.lang.String version)
Write the XML Declaration. Defaults the XML version to 1.0

param
version version of the xml document
throws
XMLStreamException

public voidwriteStartDocument(java.lang.String encoding, java.lang.String version)
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

param
encoding encoding of the xml declaration
param
version version of the xml document
throws
XMLStreamException If given encoding does not match encoding of the underlying stream

public voidwriteStartElement(java.lang.String localName)
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.

param
localName local name of the tag, may not be null
throws
XMLStreamException

public voidwriteStartElement(java.lang.String namespaceURI, java.lang.String localName)
Writes a start tag to the output

param
namespaceURI the namespaceURI of the prefix to use, may not be null
param
localName local name of the tag, may not be null
throws
XMLStreamException if the namespace URI has not been bound to a prefix and javax.xml.stream.isRepairingNamespaces has not been set to true

public voidwriteStartElement(java.lang.String prefix, java.lang.String localName, java.lang.String namespaceURI)
Writes a start tag to the output

param
localName local name of the tag, may not be null
param
prefix the prefix of the tag, may not be null
param
namespaceURI the uri to bind the prefix to, may not be null
throws
XMLStreamException