public class MTOMXMLStreamWriter extends Object implements javax.xml.stream.XMLStreamWriter
Constructor and Description |
---|
MTOMXMLStreamWriter(OutputStream outStream,
OMOutputFormat format) |
MTOMXMLStreamWriter(OutputStream outStream,
OMOutputFormat format,
boolean preserveAttachments)
Creates a new MTOMXMLStreamWriter with specified encoding.
|
MTOMXMLStreamWriter(javax.xml.stream.XMLStreamWriter xmlWriter) |
Modifier and Type | Method and Description |
---|---|
void |
close() |
void |
flush()
Flush is overridden to trigger the attachment serialization
|
String |
getCharSetEncoding()
Returns the character set encoding scheme.
|
String |
getContentType() |
String |
getMimeBoundary() |
NamespaceContext |
getNamespaceContext() |
String |
getNextContentId() |
OMOutputFormat |
getOutputFormat()
Get the output format used by this writer.
|
OutputStream |
getOutputStream()
Get the underlying
OutputStream for this writer, if available. |
String |
getPrefix(String string) |
Object |
getProperty(String string) |
String |
getRootContentId() |
javax.xml.stream.XMLStreamWriter |
getXmlStreamWriter() |
String |
getXmlVersion() |
boolean |
isIgnoreXMLDeclaration() |
boolean |
isOptimized()
Check if MTOM is enabled.
|
boolean |
isOptimizedThreshold(OMText node)
Deprecated.
Serialization code should use
XMLStreamWriterUtils.writeDataHandler(XMLStreamWriter, DataHandler, String, boolean)
or XMLStreamWriterUtils.writeDataHandler(XMLStreamWriter, DataHandlerProvider, String, boolean)
to submit any binary content and let this writer decide whether the content should be
written as base64 encoded character data or using xop:Include. If this is not
possible, then prepareDataHandler(DataHandler) should be used.
All the aforementioned methods take into account the settings defined in
OMOutputFormat to determine whether the binary data should be optimized or not.
Therefore, there is not need for this method anymore. |
String |
prepareDataHandler(javax.activation.DataHandler dataHandler)
Prepare a
DataHandler for serialization without using the DataHandlerWriter
API. |
XMLStreamWriterFilter |
removeFilter() |
void |
setCharSetEncoding(String charSetEncoding) |
void |
setDefaultNamespace(String string) |
void |
setDoOptimize(boolean b) |
void |
setFilter(XMLStreamWriterFilter filter) |
void |
setIgnoreXMLDeclaration(boolean ignoreXMLDeclaration) |
void |
setNamespaceContext(NamespaceContext namespaceContext) |
void |
setOutputFormat(OMOutputFormat format) |
void |
setPrefix(String string,
String string1) |
void |
setSoap11(boolean b) |
void |
setXmlStreamWriter(javax.xml.stream.XMLStreamWriter xmlWriter) |
void |
setXmlVersion(String xmlVersion) |
void |
writeAttribute(String string,
String string1) |
void |
writeAttribute(String string,
String string1,
String string2) |
void |
writeAttribute(String string,
String string1,
String string2,
String string3) |
void |
writeCData(String string) |
void |
writeCharacters(char[] chars,
int i,
int i1) |
void |
writeCharacters(String string) |
void |
writeComment(String string) |
void |
writeDefaultNamespace(String string) |
void |
writeDTD(String string) |
void |
writeEmptyElement(String string) |
void |
writeEmptyElement(String string,
String string1) |
void |
writeEmptyElement(String string,
String string1,
String string2) |
void |
writeEndDocument() |
void |
writeEndElement() |
void |
writeEntityRef(String string) |
void |
writeNamespace(String string,
String string1) |
void |
writeOptimized(OMText node)
Deprecated.
Serialization code should use
XMLStreamWriterUtils.writeDataHandler(XMLStreamWriter, DataHandler, String, boolean)
or XMLStreamWriterUtils.writeDataHandler(XMLStreamWriter, DataHandlerProvider, String, boolean)
to submit any binary content and let this writer decide whether the content should be
written as base64 encoded character data or using xop:Include. If this is not
possible, then prepareDataHandler(DataHandler) should be used. |
void |
writeProcessingInstruction(String string) |
void |
writeProcessingInstruction(String string,
String string1) |
void |
writeStartDocument() |
void |
writeStartDocument(String string) |
void |
writeStartDocument(String string,
String string1) |
void |
writeStartElement(String string) |
void |
writeStartElement(String string,
String string1) |
void |
writeStartElement(String string,
String string1,
String string2) |
public MTOMXMLStreamWriter(javax.xml.stream.XMLStreamWriter xmlWriter)
public MTOMXMLStreamWriter(OutputStream outStream, OMOutputFormat format) throws javax.xml.stream.XMLStreamException, javax.xml.stream.FactoryConfigurationError
public MTOMXMLStreamWriter(OutputStream outStream, OMOutputFormat format, boolean preserveAttachments) throws javax.xml.stream.XMLStreamException, javax.xml.stream.FactoryConfigurationError
outStream
- format
- preserveAttachments
- specifies whether attachments must be preserved or can be consumed (i.e. streamed)
during serialization; if set to false
then
DataHandlerExt.readOnce()
or an equivalent method may be used to get the
data for an attachmentjavax.xml.stream.XMLStreamException
javax.xml.stream.FactoryConfigurationError
OMOutputFormat.DEFAULT_CHAR_SET_ENCODING
public void writeStartElement(String string) throws javax.xml.stream.XMLStreamException
writeStartElement
in interface javax.xml.stream.XMLStreamWriter
javax.xml.stream.XMLStreamException
public void writeStartElement(String string, String string1) throws javax.xml.stream.XMLStreamException
writeStartElement
in interface javax.xml.stream.XMLStreamWriter
javax.xml.stream.XMLStreamException
public void writeStartElement(String string, String string1, String string2) throws javax.xml.stream.XMLStreamException
writeStartElement
in interface javax.xml.stream.XMLStreamWriter
javax.xml.stream.XMLStreamException
public void writeEmptyElement(String string, String string1) throws javax.xml.stream.XMLStreamException
writeEmptyElement
in interface javax.xml.stream.XMLStreamWriter
javax.xml.stream.XMLStreamException
public void writeEmptyElement(String string, String string1, String string2) throws javax.xml.stream.XMLStreamException
writeEmptyElement
in interface javax.xml.stream.XMLStreamWriter
javax.xml.stream.XMLStreamException
public void writeEmptyElement(String string) throws javax.xml.stream.XMLStreamException
writeEmptyElement
in interface javax.xml.stream.XMLStreamWriter
javax.xml.stream.XMLStreamException
public void writeEndElement() throws javax.xml.stream.XMLStreamException
writeEndElement
in interface javax.xml.stream.XMLStreamWriter
javax.xml.stream.XMLStreamException
public void writeEndDocument() throws javax.xml.stream.XMLStreamException
writeEndDocument
in interface javax.xml.stream.XMLStreamWriter
javax.xml.stream.XMLStreamException
public void close() throws javax.xml.stream.XMLStreamException
close
in interface javax.xml.stream.XMLStreamWriter
javax.xml.stream.XMLStreamException
public void flush() throws javax.xml.stream.XMLStreamException
flush
in interface javax.xml.stream.XMLStreamWriter
javax.xml.stream.XMLStreamException
public void writeAttribute(String string, String string1) throws javax.xml.stream.XMLStreamException
writeAttribute
in interface javax.xml.stream.XMLStreamWriter
javax.xml.stream.XMLStreamException
public void writeAttribute(String string, String string1, String string2, String string3) throws javax.xml.stream.XMLStreamException
writeAttribute
in interface javax.xml.stream.XMLStreamWriter
javax.xml.stream.XMLStreamException
public void writeAttribute(String string, String string1, String string2) throws javax.xml.stream.XMLStreamException
writeAttribute
in interface javax.xml.stream.XMLStreamWriter
javax.xml.stream.XMLStreamException
public void writeNamespace(String string, String string1) throws javax.xml.stream.XMLStreamException
writeNamespace
in interface javax.xml.stream.XMLStreamWriter
javax.xml.stream.XMLStreamException
public void writeDefaultNamespace(String string) throws javax.xml.stream.XMLStreamException
writeDefaultNamespace
in interface javax.xml.stream.XMLStreamWriter
javax.xml.stream.XMLStreamException
public void writeComment(String string) throws javax.xml.stream.XMLStreamException
writeComment
in interface javax.xml.stream.XMLStreamWriter
javax.xml.stream.XMLStreamException
public void writeProcessingInstruction(String string) throws javax.xml.stream.XMLStreamException
writeProcessingInstruction
in interface javax.xml.stream.XMLStreamWriter
javax.xml.stream.XMLStreamException
public void writeProcessingInstruction(String string, String string1) throws javax.xml.stream.XMLStreamException
writeProcessingInstruction
in interface javax.xml.stream.XMLStreamWriter
javax.xml.stream.XMLStreamException
public void writeCData(String string) throws javax.xml.stream.XMLStreamException
writeCData
in interface javax.xml.stream.XMLStreamWriter
javax.xml.stream.XMLStreamException
public void writeDTD(String string) throws javax.xml.stream.XMLStreamException
writeDTD
in interface javax.xml.stream.XMLStreamWriter
javax.xml.stream.XMLStreamException
public void writeEntityRef(String string) throws javax.xml.stream.XMLStreamException
writeEntityRef
in interface javax.xml.stream.XMLStreamWriter
javax.xml.stream.XMLStreamException
public void writeStartDocument() throws javax.xml.stream.XMLStreamException
writeStartDocument
in interface javax.xml.stream.XMLStreamWriter
javax.xml.stream.XMLStreamException
public void writeStartDocument(String string) throws javax.xml.stream.XMLStreamException
writeStartDocument
in interface javax.xml.stream.XMLStreamWriter
javax.xml.stream.XMLStreamException
public void writeStartDocument(String string, String string1) throws javax.xml.stream.XMLStreamException
writeStartDocument
in interface javax.xml.stream.XMLStreamWriter
javax.xml.stream.XMLStreamException
public void writeCharacters(String string) throws javax.xml.stream.XMLStreamException
writeCharacters
in interface javax.xml.stream.XMLStreamWriter
javax.xml.stream.XMLStreamException
public void writeCharacters(char[] chars, int i, int i1) throws javax.xml.stream.XMLStreamException
writeCharacters
in interface javax.xml.stream.XMLStreamWriter
javax.xml.stream.XMLStreamException
public String getPrefix(String string) throws javax.xml.stream.XMLStreamException
getPrefix
in interface javax.xml.stream.XMLStreamWriter
javax.xml.stream.XMLStreamException
public void setPrefix(String string, String string1) throws javax.xml.stream.XMLStreamException
setPrefix
in interface javax.xml.stream.XMLStreamWriter
javax.xml.stream.XMLStreamException
public void setDefaultNamespace(String string) throws javax.xml.stream.XMLStreamException
setDefaultNamespace
in interface javax.xml.stream.XMLStreamWriter
javax.xml.stream.XMLStreamException
public void setNamespaceContext(NamespaceContext namespaceContext) throws javax.xml.stream.XMLStreamException
setNamespaceContext
in interface javax.xml.stream.XMLStreamWriter
javax.xml.stream.XMLStreamException
public NamespaceContext getNamespaceContext()
getNamespaceContext
in interface javax.xml.stream.XMLStreamWriter
public Object getProperty(String string) throws IllegalArgumentException
getProperty
in interface javax.xml.stream.XMLStreamWriter
IllegalArgumentException
public boolean isOptimized()
Note that serialization code should use
XMLStreamWriterUtils.writeDataHandler(XMLStreamWriter, DataHandler, String, boolean)
or
XMLStreamWriterUtils.writeDataHandler(XMLStreamWriter, DataHandlerProvider, String, boolean)
to submit any binary content and let this writer decide whether the content should be written
as base64 encoded character data or using xop:Include. This makes optimization
entirely transparent for the caller and there should be no need to check if the writer is
producing MTOM. However, in some cases this is not possible, such as when integrating with
3rd party libraries. The serialization code should then use
prepareDataHandler(DataHandler)
so that it can write xop:Include elements
directly to the stream. In that case, the code may use the isOptimized()
method
check if MTOM is enabled at all.
true
if MTOM is enabled, false
otherwisepublic String getContentType()
public void writeOptimized(OMText node)
XMLStreamWriterUtils.writeDataHandler(XMLStreamWriter, DataHandler, String, boolean)
or XMLStreamWriterUtils.writeDataHandler(XMLStreamWriter, DataHandlerProvider, String, boolean)
to submit any binary content and let this writer decide whether the content should be
written as base64 encoded character data or using xop:Include. If this is not
possible, then prepareDataHandler(DataHandler)
should be used.public boolean isOptimizedThreshold(OMText node)
XMLStreamWriterUtils.writeDataHandler(XMLStreamWriter, DataHandler, String, boolean)
or XMLStreamWriterUtils.writeDataHandler(XMLStreamWriter, DataHandlerProvider, String, boolean)
to submit any binary content and let this writer decide whether the content should be
written as base64 encoded character data or using xop:Include. If this is not
possible, then prepareDataHandler(DataHandler)
should be used.
All the aforementioned methods take into account the settings defined in
OMOutputFormat
to determine whether the binary data should be optimized or not.
Therefore, there is not need for this method anymore.public String prepareDataHandler(javax.activation.DataHandler dataHandler)
DataHandler
for serialization without using the DataHandlerWriter
API. The method first determines whether the binary data represented by the
DataHandler
should be optimized or inlined. If the data should not be optimized, then
the method returns null
and the caller is expected to use
writeCharacters(String)
or writeCharacters(char[], int, int)
to write the
base64 encoded data to the stream. If the data should be optimized, then the method returns a
content ID and the caller is expected to generate an xop:Include element referring
to that content ID.
This method should only be used to integrate Axiom with third party libraries that support
XOP. In all other cases,
XMLStreamWriterUtils.writeDataHandler(XMLStreamWriter, DataHandler, String, boolean)
or
XMLStreamWriterUtils.writeDataHandler(XMLStreamWriter, DataHandlerProvider, String, boolean)
should be used to write base64Binary values and the application code should never generate
xop:Include elements itself.
dataHandler
- the DataHandler
that the caller intends to write to the streamnull
if the base64 encoded data should not be optimizedpublic void setXmlStreamWriter(javax.xml.stream.XMLStreamWriter xmlWriter)
public javax.xml.stream.XMLStreamWriter getXmlStreamWriter()
public String getMimeBoundary()
public String getRootContentId()
public String getNextContentId()
public String getCharSetEncoding()
public void setCharSetEncoding(String charSetEncoding)
public String getXmlVersion()
public void setXmlVersion(String xmlVersion)
public void setSoap11(boolean b)
public boolean isIgnoreXMLDeclaration()
public void setIgnoreXMLDeclaration(boolean ignoreXMLDeclaration)
public void setDoOptimize(boolean b)
public OMOutputFormat getOutputFormat()
The caller should use the returned instance in a read-only way, i.e. he should not modify the settings of the output format. Any attempt to do so will lead to unpredictable results.
public void setOutputFormat(OMOutputFormat format)
public OutputStream getOutputStream() throws javax.xml.stream.XMLStreamException
OutputStream
for this writer, if available. This method allows a
node (perhaps an OMSourcedElement
) to write its content directly
to the byte stream.
WARNING: This method should be used with extreme care. The caller must be prepared to handle the following issues:
null
if the stream is not accessiblejavax.xml.stream.XMLStreamException
public void setFilter(XMLStreamWriterFilter filter)
public XMLStreamWriterFilter removeFilter()
Copyright © The Apache Software Foundation. All Rights Reserved.