org.codehaus.stax2.ri.dom
Class DOMWrappingWriter

java.lang.Object
  extended by org.codehaus.stax2.ri.dom.DOMWrappingWriter
All Implemented Interfaces:
XMLStreamWriter, TypedXMLStreamWriter, Validatable, XMLStreamWriter2
Direct Known Subclasses:
WstxDOMWrappingWriter

public abstract class DOMWrappingWriter
extends Object
implements XMLStreamWriter2

This is an adapter class that partially implements XMLStreamWriter as a facade on top of a DOM document or Node, allowing one to basically construct DOM trees via Stax API. It is meant to serve as basis for a full implementation.

Note that the implementation is only to be used with javax.xml.transform.dom.DOMResult. It can however be used for both full documents, and single element root fragments, depending on what node is passed as the argument. >p> One more implementation note: much code is identical to one used by Stax2WriterAdapter. Alas it is hard to reuse it without cut'n pasting.

Since:
3.0
Author:
Tatu Saloranta

Field Summary
protected  Document mDocument
          We need a reference to the document hosting nodes to be able to create new nodes
protected  String mEncoding
          This member variable is to keep information about encoding that seems to be used for the document (or fragment) to output, if known.
protected  boolean mNsAware
           
protected  NamespaceContext mNsContext
          If we are being given info about existing bindings, it'll come as a NamespaceContext.
protected  boolean mNsRepairing
           
protected  SimpleValueEncoder mValueEncoder
          Encoding of typed values is used the standard encoder included in RI.
 
Constructor Summary
protected DOMWrappingWriter(Node treeRoot, boolean nsAware, boolean nsRepairing)
           
 
Method Summary
protected abstract  void appendLeaf(Node n)
           
 void close()
           
 void closeCompletely()
          Method similar to XMLStreamWriter.close(), except that this method also does close the underlying output destination (stream) if it has not yet been closed.
 void copyEventFromReader(XMLStreamReader2 r, boolean preserveEventData)
          Method that essentially copies event that the specified reader has just read.
 void flush()
           
 String getEncoding()
          Method that can be called to get information about encoding that this writer is using (or at least claims is using).
 XMLStreamLocation2 getLocation()
          Method that should return current output location, if the writer keeps track of it; null if it does not.
abstract  NamespaceContext getNamespaceContext()
           
abstract  String getPrefix(String uri)
           
abstract  Object getProperty(String name)
           
protected  SimpleValueEncoder getValueEncoder()
           
abstract  boolean isPropertySupported(String name)
          Method similar to XMLOutputFactory.isPropertySupported(java.lang.String), used to determine whether a property is supported by the Writer instance.
protected  void reportUnsupported(String operName)
           
protected  String serializeQNameValue(QName name)
          Method called to serialize given qualified name into valid String serialization, taking into account existing namespace bindings.
abstract  void setDefaultNamespace(String uri)
           
 void setNamespaceContext(NamespaceContext context)
           
abstract  void setPrefix(String prefix, String uri)
           
abstract  boolean setProperty(String name, Object value)
          Method that can be used to set per-writer properties; a subset of properties one can set via matching XMLOutputFactory2 instance.
 ValidationProblemHandler setValidationProblemHandler(ValidationProblemHandler h)
          Method that application can call to define a custom handler for validation problems encountered during validation process.
 XMLValidator stopValidatingAgainst(XMLValidationSchema schema)
          Method that can be called by application to stop validating output against a schema, for which Validatable.validateAgainst(org.codehaus.stax2.validation.XMLValidationSchema) was called earlier.
 XMLValidator stopValidatingAgainst(XMLValidator validator)
          Method that can be called by application to stop validating output using specified validator.
protected static void throwOutputError(String msg)
           
protected static void throwOutputError(String format, Object arg)
           
 XMLValidator validateAgainst(XMLValidationSchema schema)
          Method that will construct a XMLValidator instance from the given schema (unless a validator for that schema has already been added), initialize it if necessary, and make validatable object (reader, writer) call appropriate validation methods from this point on until the end of the document (that is, it's not scoped with sub-trees), or until validator is removed by an explicit call to Validatable.stopValidatingAgainst(org.codehaus.stax2.validation.XMLValidationSchema).
abstract  void writeAttribute(String localName, String value)
           
abstract  void writeAttribute(String nsURI, String localName, String value)
           
abstract  void writeAttribute(String prefix, String nsURI, String localName, String value)
           
 void writeBinary(Base64Variant v, byte[] value, int from, int length)
           
 void writeBinary(byte[] value, int from, int length)
           Write binary content as base64 encoded characters to the output.
 void writeBinaryAttribute(Base64Variant v, String prefix, String nsURI, String localName, byte[] value)
           
 void writeBinaryAttribute(String prefix, String nsURI, String localName, byte[] value)
          Write a byte array attribute.
 void writeBoolean(boolean value)
          Write a boolean value to the output as textual element content.
 void writeBooleanAttribute(String prefix, String nsURI, String localName, boolean value)
          Write a boolean value to the output as attribute value.
 void writeCData(char[] text, int start, int len)
           
 void writeCData(String data)
           
 void writeCharacters(char[] text, int start, int len)
           
 void writeCharacters(String text)
           
 void writeComment(String data)
           
 void writeDecimal(BigDecimal value)
          Write a decimal value to the output as textual element content.
 void writeDecimalAttribute(String prefix, String nsURI, String localName, BigDecimal value)
           
abstract  void writeDefaultNamespace(String nsURI)
           
 void writeDouble(double value)
          Write a double value to the output as textual element content.
 void writeDoubleArray(double[] value, int from, int length)
           
 void writeDoubleArrayAttribute(String prefix, String nsURI, String localName, double[] value)
           
 void writeDoubleAttribute(String prefix, String nsURI, String localName, double value)
           
 void writeDTD(String dtd)
           
abstract  void writeDTD(String rootName, String systemId, String publicId, String internalSubset)
           
abstract  void writeEmptyElement(String localName)
           
abstract  void writeEmptyElement(String nsURI, String localName)
           
abstract  void writeEmptyElement(String prefix, String localName, String nsURI)
           
abstract  void writeEndDocument()
           
 void writeEntityRef(String name)
           
 void writeFloat(float value)
          Write a float value to the output as textual element content.
 void writeFloatArray(float[] value, int from, int length)
           
 void writeFloatArrayAttribute(String prefix, String nsURI, String localName, float[] value)
           
 void writeFloatAttribute(String prefix, String nsURI, String localName, float value)
           
 void writeFullEndElement()
          Method similar to XMLStreamWriter.writeEndElement(), but that will always write the full end element, instead of empty element.
 void writeInt(int value)
          Write an int value to the output as textual element content.
 void writeIntArray(int[] value, int from, int length)
          Write int array to the output.
 void writeIntArrayAttribute(String prefix, String nsURI, String localName, int[] value)
          Write int array attribute.
 void writeIntAttribute(String prefix, String nsURI, String localName, int value)
          Write an integer value to the output as attribute value.
 void writeInteger(BigInteger value)
           
 void writeIntegerAttribute(String prefix, String nsURI, String localName, BigInteger value)
           
 void writeLong(long value)
          Write a long value to the output as textual element content.
 void writeLongArray(long[] value, int from, int length)
           
 void writeLongArrayAttribute(String prefix, String nsURI, String localName, long[] value)
           
 void writeLongAttribute(String prefix, String nsURI, String localName, long value)
          Write an long value to the output as attribute value.
 void writeProcessingInstruction(String target)
           
 void writeProcessingInstruction(String target, String data)
           
 void writeQName(QName name)
           
 void writeQNameAttribute(String prefix, String nsURI, String localName, QName name)
           
 void writeRaw(char[] text, int offset, int length)
          Method that writes specified content as is, without encoding or deciphering it in any way.
 void writeRaw(String text)
          Method that writes specified content as is, without encoding or deciphering it in any way.
 void writeRaw(String text, int start, int offset)
          Method that writes specified content as is, without encoding or deciphering it in any way.
 void writeSpace(char[] text, int start, int len)
          Method that can be called to write whitespace-only content.
 void writeSpace(String text)
          Method that can be called to write whitespace-only content.
 void writeStartDocument()
           
 void writeStartDocument(String version)
           
 void writeStartDocument(String encoding, String version)
           
 void writeStartDocument(String version, String encoding, boolean standAlone)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface javax.xml.stream.XMLStreamWriter
writeEndElement, writeNamespace, writeStartElement, writeStartElement, writeStartElement
 

Field Detail

mNsAware

protected final boolean mNsAware

mNsRepairing

protected final boolean mNsRepairing

mEncoding

protected String mEncoding
This member variable is to keep information about encoding that seems to be used for the document (or fragment) to output, if known.


mNsContext

protected NamespaceContext mNsContext
If we are being given info about existing bindings, it'll come as a NamespaceContext.


mDocument

protected final Document mDocument
We need a reference to the document hosting nodes to be able to create new nodes


mValueEncoder

protected SimpleValueEncoder mValueEncoder
Encoding of typed values is used the standard encoder included in RI.

Constructor Detail

DOMWrappingWriter

protected DOMWrappingWriter(Node treeRoot,
                            boolean nsAware,
                            boolean nsRepairing)
                     throws XMLStreamException
Throws:
XMLStreamException
Method Detail

close

public void close()
Specified by:
close in interface XMLStreamWriter

flush

public void flush()
Specified by:
flush in interface XMLStreamWriter

getNamespaceContext

public abstract NamespaceContext getNamespaceContext()
Specified by:
getNamespaceContext in interface XMLStreamWriter

getPrefix

public abstract String getPrefix(String uri)
Specified by:
getPrefix in interface XMLStreamWriter

getProperty

public abstract Object getProperty(String name)
Specified by:
getProperty in interface XMLStreamWriter

setDefaultNamespace

public abstract void setDefaultNamespace(String uri)
Specified by:
setDefaultNamespace in interface XMLStreamWriter

setNamespaceContext

public void setNamespaceContext(NamespaceContext context)
Specified by:
setNamespaceContext in interface XMLStreamWriter

setPrefix

public abstract void setPrefix(String prefix,
                               String uri)
                        throws XMLStreamException
Specified by:
setPrefix in interface XMLStreamWriter
Throws:
XMLStreamException

writeAttribute

public abstract void writeAttribute(String localName,
                                    String value)
                             throws XMLStreamException
Specified by:
writeAttribute in interface XMLStreamWriter
Throws:
XMLStreamException

writeAttribute

public abstract void writeAttribute(String nsURI,
                                    String localName,
                                    String value)
                             throws XMLStreamException
Specified by:
writeAttribute in interface XMLStreamWriter
Throws:
XMLStreamException

writeAttribute

public abstract void writeAttribute(String prefix,
                                    String nsURI,
                                    String localName,
                                    String value)
                             throws XMLStreamException
Specified by:
writeAttribute in interface XMLStreamWriter
Throws:
XMLStreamException

writeCData

public void writeCData(String data)
                throws XMLStreamException
Specified by:
writeCData in interface XMLStreamWriter
Throws:
XMLStreamException

writeCharacters

public void writeCharacters(char[] text,
                            int start,
                            int len)
                     throws XMLStreamException
Specified by:
writeCharacters in interface XMLStreamWriter
Throws:
XMLStreamException

writeCharacters

public void writeCharacters(String text)
                     throws XMLStreamException
Specified by:
writeCharacters in interface XMLStreamWriter
Throws:
XMLStreamException

writeComment

public void writeComment(String data)
                  throws XMLStreamException
Specified by:
writeComment in interface XMLStreamWriter
Throws:
XMLStreamException

writeDefaultNamespace

public abstract void writeDefaultNamespace(String nsURI)
                                    throws XMLStreamException
Specified by:
writeDefaultNamespace in interface XMLStreamWriter
Throws:
XMLStreamException

writeDTD

public void writeDTD(String dtd)
              throws XMLStreamException
Specified by:
writeDTD in interface XMLStreamWriter
Throws:
XMLStreamException

writeEmptyElement

public abstract void writeEmptyElement(String localName)
                                throws XMLStreamException
Specified by:
writeEmptyElement in interface XMLStreamWriter
Throws:
XMLStreamException

writeEmptyElement

public abstract void writeEmptyElement(String nsURI,
                                       String localName)
                                throws XMLStreamException
Specified by:
writeEmptyElement in interface XMLStreamWriter
Throws:
XMLStreamException

writeEmptyElement

public abstract void writeEmptyElement(String prefix,
                                       String localName,
                                       String nsURI)
                                throws XMLStreamException
Specified by:
writeEmptyElement in interface XMLStreamWriter
Throws:
XMLStreamException

writeEndDocument

public abstract void writeEndDocument()
                               throws XMLStreamException
Specified by:
writeEndDocument in interface XMLStreamWriter
Throws:
XMLStreamException

writeEntityRef

public void writeEntityRef(String name)
                    throws XMLStreamException
Specified by:
writeEntityRef in interface XMLStreamWriter
Throws:
XMLStreamException

writeProcessingInstruction

public void writeProcessingInstruction(String target)
                                throws XMLStreamException
Specified by:
writeProcessingInstruction in interface XMLStreamWriter
Throws:
XMLStreamException

writeProcessingInstruction

public void writeProcessingInstruction(String target,
                                       String data)
                                throws XMLStreamException
Specified by:
writeProcessingInstruction in interface XMLStreamWriter
Throws:
XMLStreamException

writeStartDocument

public void writeStartDocument()
                        throws XMLStreamException
Specified by:
writeStartDocument in interface XMLStreamWriter
Throws:
XMLStreamException

writeStartDocument

public void writeStartDocument(String version)
                        throws XMLStreamException
Specified by:
writeStartDocument in interface XMLStreamWriter
Throws:
XMLStreamException

writeStartDocument

public void writeStartDocument(String encoding,
                               String version)
                        throws XMLStreamException
Specified by:
writeStartDocument in interface XMLStreamWriter
Throws:
XMLStreamException

getLocation

public XMLStreamLocation2 getLocation()
Description copied from interface: XMLStreamWriter2
Method that should return current output location, if the writer keeps track of it; null if it does not.

Specified by:
getLocation in interface XMLStreamWriter2

getEncoding

public String getEncoding()
Description copied from interface: XMLStreamWriter2
Method that can be called to get information about encoding that this writer is using (or at least claims is using). That is, it returns name of encoding specified when (in order of priority):

Specified by:
getEncoding in interface XMLStreamWriter2

isPropertySupported

public abstract boolean isPropertySupported(String name)
Description copied from interface: XMLStreamWriter2
Method similar to XMLOutputFactory.isPropertySupported(java.lang.String), used to determine whether a property is supported by the Writer instance. This means that this method may return false for some properties that the output factory does support: specifically, it should only return true if the value is mutable on per-instance basis. False means that either the property is not recognized, or is not mutable via writer instance.

Specified by:
isPropertySupported in interface XMLStreamWriter2

setProperty

public abstract boolean setProperty(String name,
                                    Object value)
Description copied from interface: XMLStreamWriter2
Method that can be used to set per-writer properties; a subset of properties one can set via matching XMLOutputFactory2 instance. Exactly which methods are mutable is implementation specific.

Specified by:
setProperty in interface XMLStreamWriter2
Parameters:
name - Name of the property to set
value - Value to set property to.
Returns:
True, if the specified property was succesfully set to specified value; false if its value was not changed

writeCData

public void writeCData(char[] text,
                       int start,
                       int len)
                throws XMLStreamException
Specified by:
writeCData in interface XMLStreamWriter2
Throws:
XMLStreamException

writeDTD

public abstract void writeDTD(String rootName,
                              String systemId,
                              String publicId,
                              String internalSubset)
                       throws XMLStreamException
Specified by:
writeDTD in interface XMLStreamWriter2
Throws:
XMLStreamException

writeFullEndElement

public void writeFullEndElement()
                         throws XMLStreamException
Description copied from interface: XMLStreamWriter2
Method similar to XMLStreamWriter.writeEndElement(), but that will always write the full end element, instead of empty element. This only matters for cases where the element itself has no content, and if writer is allowed to write empty elements when it encounters such start/end element write pairs.

Specified by:
writeFullEndElement in interface XMLStreamWriter2
Throws:
XMLStreamException

writeSpace

public void writeSpace(char[] text,
                       int start,
                       int len)
                throws XMLStreamException
Description copied from interface: XMLStreamWriter2
Method that can be called to write whitespace-only content. If so, it is to be written as is (with no escaping), and does not contain non-whitespace characters (writer may validate this, and throw an exception if it does).

This method is useful for things like outputting indentation.

Specified by:
writeSpace in interface XMLStreamWriter2
Throws:
XMLStreamException

writeSpace

public void writeSpace(String text)
                throws XMLStreamException
Description copied from interface: XMLStreamWriter2
Method that can be called to write whitespace-only content. If so, it is to be written as is (with no escaping), and does not contain non-whitespace characters (writer may validate this, and throw an exception if it does).

This method is useful for things like outputting indentation.

Specified by:
writeSpace in interface XMLStreamWriter2
Throws:
XMLStreamException

writeStartDocument

public void writeStartDocument(String version,
                               String encoding,
                               boolean standAlone)
                        throws XMLStreamException
Specified by:
writeStartDocument in interface XMLStreamWriter2
Throws:
XMLStreamException

validateAgainst

public XMLValidator validateAgainst(XMLValidationSchema schema)
                             throws XMLStreamException
Description copied from interface: Validatable
Method that will construct a XMLValidator instance from the given schema (unless a validator for that schema has already been added), initialize it if necessary, and make validatable object (reader, writer) call appropriate validation methods from this point on until the end of the document (that is, it's not scoped with sub-trees), or until validator is removed by an explicit call to Validatable.stopValidatingAgainst(org.codehaus.stax2.validation.XMLValidationSchema).

Note that while this method can be called at any point in output processing, validator instances are not required to be able to handle addition at other points than right before outputting the root element.

Specified by:
validateAgainst in interface Validatable
Returns:
Validator instance constructed, if validator was added, or null if a validator for the schema has already been constructed.
Throws:
XMLStreamException

stopValidatingAgainst

public XMLValidator stopValidatingAgainst(XMLValidationSchema schema)
                                   throws XMLStreamException
Description copied from interface: Validatable
Method that can be called by application to stop validating output against a schema, for which Validatable.validateAgainst(org.codehaus.stax2.validation.XMLValidationSchema) was called earlier.

Specified by:
stopValidatingAgainst in interface Validatable
Returns:
Validator instance created from the schema that was removed, if one was in use; null if no such schema in use.
Throws:
XMLStreamException

stopValidatingAgainst

public XMLValidator stopValidatingAgainst(XMLValidator validator)
                                   throws XMLStreamException
Description copied from interface: Validatable
Method that can be called by application to stop validating output using specified validator. The validator passed should be an earlier return value for a call to Validatable.validateAgainst(org.codehaus.stax2.validation.XMLValidationSchema).

Note: the specified validator is compared for identity with validators in use, not for equality.

Specified by:
stopValidatingAgainst in interface Validatable
Returns:
Validator instance found (ie. argument validator) if it was being used for validating current document; null if not.
Throws:
XMLStreamException

setValidationProblemHandler

public ValidationProblemHandler setValidationProblemHandler(ValidationProblemHandler h)
Description copied from interface: Validatable
Method that application can call to define a custom handler for validation problems encountered during validation process.

Specified by:
setValidationProblemHandler in interface Validatable
Parameters:
h - Handler to install, if non null; if null, indicates that the default (implementation-specific) handling should be used
Returns:
Previously set validation problem handler, if any; null if none was set

writeRaw

public void writeRaw(String text)
              throws XMLStreamException
Description copied from interface: XMLStreamWriter2
Method that writes specified content as is, without encoding or deciphering it in any way. It will not update state of the writer (except by possibly flushing output of previous writes, like finishing a start element), nor be validated in any way. As such, care must be taken, if this method is used.

Method is usually used when encapsulating output from another writer as a sub-tree, or when passing through XML fragments.

NOTE: since text to be written may be anything, including markup, it can not be reliably validated. Because of this, validator(s) attached to the writer will NOT be informed about writes.

Specified by:
writeRaw in interface XMLStreamWriter2
Throws:
XMLStreamException

writeRaw

public void writeRaw(String text,
                     int start,
                     int offset)
              throws XMLStreamException
Description copied from interface: XMLStreamWriter2
Method that writes specified content as is, without encoding or deciphering it in any way. It will not update state of the writer (except by possibly flushing output of previous writes, like finishing a start element), nor be validated in any way. As such, care must be taken, if this method is used.

Method is usually used when encapsulating output from another writer as a sub-tree, or when passing through XML fragments.

NOTE: since text to be written may be anything, including markup, it can not be reliably validated. Because of this, validator(s) attached to the writer will NOT be informed about writes.

Specified by:
writeRaw in interface XMLStreamWriter2
Throws:
XMLStreamException

writeRaw

public void writeRaw(char[] text,
                     int offset,
                     int length)
              throws XMLStreamException
Description copied from interface: XMLStreamWriter2
Method that writes specified content as is, without encoding or deciphering it in any way. It will not update state of the writer (except by possibly flushing output of previous writes, like finishing a start element), nor be validated in any way. As such, care must be taken, if this method is used.

Method is usually used when encapsulating output from another writer as a sub-tree, or when passing through XML fragments.

NOTE: since text to be written may be anything, including markup, it can not be reliably validated. Because of this, validator(s) attached to the writer will NOT be informed about writes.

Specified by:
writeRaw in interface XMLStreamWriter2
Throws:
XMLStreamException

copyEventFromReader

public void copyEventFromReader(XMLStreamReader2 r,
                                boolean preserveEventData)
                         throws XMLStreamException
Description copied from interface: XMLStreamWriter2
Method that essentially copies event that the specified reader has just read. This can be both more convenient (no need to worry about details) and more efficient than separately calling access methods of the reader and write methods of the writer, since writer may know more about reader than the application (and may be able to use non-public methods)

Specified by:
copyEventFromReader in interface XMLStreamWriter2
Parameters:
r - Reader to use for accessing event to copy
preserveEventData - If true, writer is not allowed to change the state of the reader (so that all the data associated with the current event has to be preserved); if false, writer is allowed to use methods that may cause some data to be discarded. Setting this to false may improve the performance, since it may allow full no-copy streaming of data, especially textual contents.
Throws:
XMLStreamException

closeCompletely

public void closeCompletely()
Description copied from interface: XMLStreamWriter2
Method similar to XMLStreamWriter.close(), except that this method also does close the underlying output destination (stream) if it has not yet been closed. It is specifically necessary to call this method if the parsing ends in an exception to ensure that the output destination does get properly closed, even if the stream writer would otherwise close it (as is the case for destinations it manages where calling application has no access)

Specified by:
closeCompletely in interface XMLStreamWriter2

writeBoolean

public void writeBoolean(boolean value)
                  throws XMLStreamException
Description copied from interface: TypedXMLStreamWriter
Write a boolean value to the output as textual element content. The lexical representation of content is defined by the XML Schema boolean data type.

Specified by:
writeBoolean in interface TypedXMLStreamWriter
Parameters:
value - The boolean value to write.
Throws:
XMLStreamException

writeInt

public void writeInt(int value)
              throws XMLStreamException
Description copied from interface: TypedXMLStreamWriter
Write an int value to the output as textual element content. The lexical representation of content is defined by the XML Schema integer data type.

Specified by:
writeInt in interface TypedXMLStreamWriter
Throws:
XMLStreamException

writeLong

public void writeLong(long value)
               throws XMLStreamException
Description copied from interface: TypedXMLStreamWriter
Write a long value to the output as textual element content. The lexical representation of content is defined by the XML Schema long data type.

Specified by:
writeLong in interface TypedXMLStreamWriter
Throws:
XMLStreamException

writeFloat

public void writeFloat(float value)
                throws XMLStreamException
Description copied from interface: TypedXMLStreamWriter
Write a float value to the output as textual element content. The lexical representation of content is defined by the XML Schema float data type.

Specified by:
writeFloat in interface TypedXMLStreamWriter
Throws:
XMLStreamException

writeDouble

public void writeDouble(double value)
                 throws XMLStreamException
Description copied from interface: TypedXMLStreamWriter
Write a double value to the output as textual element content. The lexical representation of content is defined by the XML Schema double data type.

Specified by:
writeDouble in interface TypedXMLStreamWriter
Throws:
XMLStreamException

writeInteger

public void writeInteger(BigInteger value)
                  throws XMLStreamException
Specified by:
writeInteger in interface TypedXMLStreamWriter
Throws:
XMLStreamException

writeDecimal

public void writeDecimal(BigDecimal value)
                  throws XMLStreamException
Description copied from interface: TypedXMLStreamWriter
Write a decimal value to the output as textual element content. The lexical representation of content is defined by the XML Schema decimal data type.

Specified by:
writeDecimal in interface TypedXMLStreamWriter
Throws:
XMLStreamException

writeQName

public void writeQName(QName name)
                throws XMLStreamException
Specified by:
writeQName in interface TypedXMLStreamWriter
Throws:
XMLStreamException

writeIntArray

public void writeIntArray(int[] value,
                          int from,
                          int length)
                   throws XMLStreamException
Description copied from interface: TypedXMLStreamWriter

Write int array to the output. The lexical representation of a int array is defined by the following XML schema type:

    <xs:simpleType name="intArray">
       <xs:list itemType="xs:int"/>
    </xs:simpleType>
whose lexical space is a list of space-separated ints. This method can be called multiple times to write the array in chunks.

Specified by:
writeIntArray in interface TypedXMLStreamWriter
Parameters:
value - The array from which to write the ints.
from - The index in the array from which writing starts.
length - The number of ints to write.
Throws:
XMLStreamException

writeLongArray

public void writeLongArray(long[] value,
                           int from,
                           int length)
                    throws XMLStreamException
Specified by:
writeLongArray in interface TypedXMLStreamWriter
Throws:
XMLStreamException

writeFloatArray

public void writeFloatArray(float[] value,
                            int from,
                            int length)
                     throws XMLStreamException
Specified by:
writeFloatArray in interface TypedXMLStreamWriter
Throws:
XMLStreamException

writeDoubleArray

public void writeDoubleArray(double[] value,
                             int from,
                             int length)
                      throws XMLStreamException
Specified by:
writeDoubleArray in interface TypedXMLStreamWriter
Throws:
XMLStreamException

writeBinary

public void writeBinary(byte[] value,
                        int from,
                        int length)
                 throws XMLStreamException
Description copied from interface: TypedXMLStreamWriter

Write binary content as base64 encoded characters to the output. The lexical representation of a byte array is defined by the XML Schema base64Binary data type. This method can be called multiple times to write the array in chunks; but if so, callers should write output in chunks divisible by 3 (natural atomic unit of base64 output, which avoids padding) to maximize interoperability.

Note: base64 variant defaults to Base64Variants.MIME.

Specified by:
writeBinary in interface TypedXMLStreamWriter
Parameters:
value - The array from which to write the bytes.
from - The index in the array from which writing starts.
length - The number of bytes to write.
Throws:
XMLStreamException

writeBinary

public void writeBinary(Base64Variant v,
                        byte[] value,
                        int from,
                        int length)
                 throws XMLStreamException
Specified by:
writeBinary in interface TypedXMLStreamWriter
Throws:
XMLStreamException

writeBooleanAttribute

public void writeBooleanAttribute(String prefix,
                                  String nsURI,
                                  String localName,
                                  boolean value)
                           throws XMLStreamException
Description copied from interface: TypedXMLStreamWriter
Write a boolean value to the output as attribute value. The lexical representation of content is defined by the XML Schema boolean data type.

Specified by:
writeBooleanAttribute in interface TypedXMLStreamWriter
Parameters:
prefix - The attribute's prefix. Null or "" if no prefix is to be used
nsURI - The attribute's URI (can be either null or empty String for "no namespace")
localName - The attribute's local name
value - The boolean value to write.
Throws:
XMLStreamException

writeIntAttribute

public void writeIntAttribute(String prefix,
                              String nsURI,
                              String localName,
                              int value)
                       throws XMLStreamException
Description copied from interface: TypedXMLStreamWriter
Write an integer value to the output as attribute value. The lexical representation of content is defined by the XML Schema integer data type.

Specified by:
writeIntAttribute in interface TypedXMLStreamWriter
Parameters:
prefix - The attribute's prefix. Null or "" if no prefix is to be used
nsURI - The attribute's URI (can be either null or empty String for "no namespace")
localName - The attribute's local name
value - The integer value to write.
Throws:
XMLStreamException

writeLongAttribute

public void writeLongAttribute(String prefix,
                               String nsURI,
                               String localName,
                               long value)
                        throws XMLStreamException
Description copied from interface: TypedXMLStreamWriter
Write an long value to the output as attribute value. The lexical representation of content is defined by the XML Schema long data type.

Specified by:
writeLongAttribute in interface TypedXMLStreamWriter
Parameters:
prefix - The attribute's prefix. Null or "" if no prefix is to be used
nsURI - The attribute's URI (can be either null or empty String for "no namespace")
localName - The attribute's local name
value - The long value to write.
Throws:
XMLStreamException

writeFloatAttribute

public void writeFloatAttribute(String prefix,
                                String nsURI,
                                String localName,
                                float value)
                         throws XMLStreamException
Specified by:
writeFloatAttribute in interface TypedXMLStreamWriter
Throws:
XMLStreamException

writeDoubleAttribute

public void writeDoubleAttribute(String prefix,
                                 String nsURI,
                                 String localName,
                                 double value)
                          throws XMLStreamException
Specified by:
writeDoubleAttribute in interface TypedXMLStreamWriter
Throws:
XMLStreamException

writeIntegerAttribute

public void writeIntegerAttribute(String prefix,
                                  String nsURI,
                                  String localName,
                                  BigInteger value)
                           throws XMLStreamException
Specified by:
writeIntegerAttribute in interface TypedXMLStreamWriter
Throws:
XMLStreamException

writeDecimalAttribute

public void writeDecimalAttribute(String prefix,
                                  String nsURI,
                                  String localName,
                                  BigDecimal value)
                           throws XMLStreamException
Specified by:
writeDecimalAttribute in interface TypedXMLStreamWriter
Throws:
XMLStreamException

writeQNameAttribute

public void writeQNameAttribute(String prefix,
                                String nsURI,
                                String localName,
                                QName name)
                         throws XMLStreamException
Specified by:
writeQNameAttribute in interface TypedXMLStreamWriter
Throws:
XMLStreamException

writeIntArrayAttribute

public void writeIntArrayAttribute(String prefix,
                                   String nsURI,
                                   String localName,
                                   int[] value)
                            throws XMLStreamException
Description copied from interface: TypedXMLStreamWriter

Write int array attribute. The lexical representation of a int array is defined by the following XML schema type:

    <xs:simpleType name="intArray">
       <xs:list itemType="xs:int"/>
    </xs:simpleType>
whose lexical space is a list of space-separated ints.

Specified by:
writeIntArrayAttribute in interface TypedXMLStreamWriter
Parameters:
prefix - The attribute's prefix.
nsURI - The attribute's URI.
localName - The attribute's local name.
value - The array from which to write the ints.
Throws:
XMLStreamException

writeLongArrayAttribute

public void writeLongArrayAttribute(String prefix,
                                    String nsURI,
                                    String localName,
                                    long[] value)
                             throws XMLStreamException
Specified by:
writeLongArrayAttribute in interface TypedXMLStreamWriter
Throws:
XMLStreamException

writeFloatArrayAttribute

public void writeFloatArrayAttribute(String prefix,
                                     String nsURI,
                                     String localName,
                                     float[] value)
                              throws XMLStreamException
Specified by:
writeFloatArrayAttribute in interface TypedXMLStreamWriter
Throws:
XMLStreamException

writeDoubleArrayAttribute

public void writeDoubleArrayAttribute(String prefix,
                                      String nsURI,
                                      String localName,
                                      double[] value)
                               throws XMLStreamException
Specified by:
writeDoubleArrayAttribute in interface TypedXMLStreamWriter
Throws:
XMLStreamException

writeBinaryAttribute

public void writeBinaryAttribute(String prefix,
                                 String nsURI,
                                 String localName,
                                 byte[] value)
                          throws XMLStreamException
Description copied from interface: TypedXMLStreamWriter

Write a byte array attribute. The lexical representation of a byte array is defined by the XML Schema base64Binary data type.

Note: base64 variant defaults to Base64Variants.MIME.

Specified by:
writeBinaryAttribute in interface TypedXMLStreamWriter
Parameters:
prefix - The attribute's prefix.
nsURI - The attribute's URI.
localName - The attribute's local name.
value - The array from which to write the bytes.
Throws:
XMLStreamException

writeBinaryAttribute

public void writeBinaryAttribute(Base64Variant v,
                                 String prefix,
                                 String nsURI,
                                 String localName,
                                 byte[] value)
                          throws XMLStreamException
Specified by:
writeBinaryAttribute in interface TypedXMLStreamWriter
Throws:
XMLStreamException

appendLeaf

protected abstract void appendLeaf(Node n)
                            throws IllegalStateException
Throws:
IllegalStateException

serializeQNameValue

protected String serializeQNameValue(QName name)
                              throws XMLStreamException
Method called to serialize given qualified name into valid String serialization, taking into account existing namespace bindings.

Throws:
XMLStreamException

getValueEncoder

protected SimpleValueEncoder getValueEncoder()

throwOutputError

protected static void throwOutputError(String msg)
                                throws XMLStreamException
Throws:
XMLStreamException

throwOutputError

protected static void throwOutputError(String format,
                                       Object arg)
                                throws XMLStreamException
Throws:
XMLStreamException

reportUnsupported

protected void reportUnsupported(String operName)