Package org.apache.axiom.util.stax
Class XMLStreamWriterUtils
- java.lang.Object
-
- org.apache.axiom.util.stax.XMLStreamWriterUtils
-
public class XMLStreamWriterUtils extends Object
Contains utility methods to work withXMLStreamWriter
objects.
-
-
Constructor Summary
Constructors Constructor Description XMLStreamWriterUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static DataHandlerWriter
getDataHandlerWriter(XMLStreamWriter writer)
Get theDataHandlerWriter
extension for a givenXMLStreamWriter
.static void
writeBase64(XMLStreamWriter writer, DataHandler dh)
Write base64 encoded data to a stream writer.static void
writeDataHandler(XMLStreamWriter writer, DataHandler dataHandler, String contentID, boolean optimize)
Write binary content to the stream.static void
writeDataHandler(XMLStreamWriter writer, DataHandlerProvider dataHandlerProvider, String contentID, boolean optimize)
Write binary content to the stream.static void
writeDTD(XMLStreamWriter writer, String rootName, String publicId, String systemId, String internalSubset)
Prepare theDOCTYPE
declaration using the provided information and output it usingXMLStreamWriter.writeDTD(String)
.
-
-
-
Method Detail
-
writeBase64
public static void writeBase64(XMLStreamWriter writer, DataHandler dh) throws IOException, XMLStreamException
Write base64 encoded data to a stream writer. This will result in one or moreXMLStreamConstants.CHARACTERS
events to be written to the stream (or zero events if the data handler produces an empty byte sequence), i.e. the data is streamed from the data handler directly to the stream writer. Since no in-memory base64 representation of the entire binary data is built, this method is suitable for very large amounts of data.Note that this method will always serialize the data as base64 encoded character data. Serialization code should prefer using
writeDataHandler(XMLStreamWriter, DataHandler, String, boolean)
orwriteDataHandler(XMLStreamWriter, DataHandlerProvider, String, boolean)
to enable optimization (if supported by theXMLStreamWriter
).- Parameters:
writer
- the stream writer to write the data todh
- the data handler containing the data to encode- Throws:
IOException
- if an error occurs when reading the data from the data handlerXMLStreamException
- if an error occurs when writing the base64 encoded data to the stream
-
getDataHandlerWriter
public static DataHandlerWriter getDataHandlerWriter(XMLStreamWriter writer)
Get theDataHandlerWriter
extension for a givenXMLStreamWriter
. If the writer exposes the extension, a reference to the extension interface implementation is returned. If the writer doesn't expose the extension, this method returns an instance of the extension interface that emulates the extension (by writing the binary data as base64 character data to the stream).- Parameters:
writer
- the stream for which the method should return theDataHandlerWriter
extension- Returns:
- a reference to the extension interface exposed by the writer or an implementation the
emulates the extension; the return value is never
null
-
writeDataHandler
public static void writeDataHandler(XMLStreamWriter writer, DataHandler dataHandler, String contentID, boolean optimize) throws IOException, XMLStreamException
Write binary content to the stream. Depending on the suppliedXMLStreamWriter
, the content will be written as base64 encoded character data or using an optimization scheme such as XOP/MTOM. The method attempts to submit the binary content using theDataHandlerWriter
extension. If the writer doesn't expose this extension, the method will fall back towriteBase64(XMLStreamWriter, DataHandler)
.Please refer to the documentation of
DataHandlerWriter
for a more detailed description of the semantics of the different arguments.- Parameters:
writer
- the stream writer to write the data todataHandler
- the binary content to writecontentID
- an existing content ID for the binary dataoptimize
- indicates whether the content is eligible for optimization- Throws:
IOException
- if an error occurs while reading from the data handlerXMLStreamException
- if an error occurs while writing to the underlying stream
-
writeDataHandler
public static void writeDataHandler(XMLStreamWriter writer, DataHandlerProvider dataHandlerProvider, String contentID, boolean optimize) throws IOException, XMLStreamException
Write binary content to the stream. This method is similar towriteDataHandler(XMLStreamWriter, DataHandler, String, boolean)
, but supports deferred loading of the data handler.- Parameters:
writer
- the stream writer to write the data todataHandlerProvider
- the binary content to writecontentID
- an existing content ID for the binary dataoptimize
- indicates whether the content is eligible for optimization- Throws:
IOException
- if an error occurs while reading from the data handlerXMLStreamException
- if an error occurs while writing to the underlying stream
-
writeDTD
public static void writeDTD(XMLStreamWriter writer, String rootName, String publicId, String systemId, String internalSubset) throws XMLStreamException
Prepare theDOCTYPE
declaration using the provided information and output it usingXMLStreamWriter.writeDTD(String)
.- Parameters:
writer
- the stream writer to write theDOCTYPE
declaration torootName
- the root name, i.e. the name immediately following theDOCTYPE
keywordpublicId
- the public ID of the external subset, ornull
if there is no external subset or no public ID has been specified for the external subsetsystemId
- the system ID of the external subset, ornull
if there is no external subsetinternalSubset
- the internal subset, ornull
if there is none- Throws:
XMLStreamException
- if an error occurs while writing to the stream
-
-