public class XOPEncodingStreamReader extends XOPEncodingStreamWrapper implements javax.xml.stream.XMLStreamReader
XMLStreamReader wrapper that encodes XOP. It assumes that the underlying reader
implements the extension defined by DataHandlerReader so that it can identify the
information items to optimize (by looking for
XMLStreamConstants.CHARACTERS events for which
DataHandlerReader.isBinary() returns true). The DataHandler
objects for the parts referenced by xop:Include element information items produced by
an instance of this class can be retrieved using the XOPEncodingStreamWrapper.getDataHandler(String) method.
Note that the primary purpose of this class is not to serialize an XML infoset to an XOP package
(this is better done using XOPEncodingStreamWriter), but rather to optimize interaction
(by exchanging DataHandler objects instead of base64 encoded representations) with
databinding frameworks that understand XOP, but that are not aware of the
DataHandlerReader extension.
This class defers loading of DataHandler objects until XOPEncodingStreamWrapper.getDataHandler(String) is
called, except if this is not supported by the underlying stream.
ATTRIBUTE, CDATA, CHARACTERS, COMMENT, DTD, END_DOCUMENT, END_ELEMENT, ENTITY_DECLARATION, ENTITY_REFERENCE, NAMESPACE, NOTATION_DECLARATION, PROCESSING_INSTRUCTION, SPACE, START_DOCUMENT, START_ELEMENT| Constructor and Description |
|---|
XOPEncodingStreamReader(javax.xml.stream.XMLStreamReader parent,
ContentIDGenerator contentIDGenerator,
OptimizationPolicy optimizationPolicy)
Constructor.
|
getContentIDs, getDataHandler, isLoaded, processDataHandler, processDataHandlerpublic XOPEncodingStreamReader(javax.xml.stream.XMLStreamReader parent, ContentIDGenerator contentIDGenerator, OptimizationPolicy optimizationPolicy)
parent - The XML stream to encode. The reader must implement the extension defined by
DataHandlerReader.contentIDGenerator - used to generate content IDs for the binary content exposed as
xop:Include element information itemsoptimizationPolicy - the policy to apply to decide which binary content to optimizeIllegalArgumentException - if the provided XMLStreamReader doesn't implement the extension defined
by DataHandlerReaderpublic int next()
throws javax.xml.stream.XMLStreamException
next in interface javax.xml.stream.XMLStreamReaderjavax.xml.stream.XMLStreamExceptionpublic boolean hasNext()
throws javax.xml.stream.XMLStreamException
hasNext in interface javax.xml.stream.XMLStreamReaderjavax.xml.stream.XMLStreamExceptionpublic int nextTag()
throws javax.xml.stream.XMLStreamException
nextTag in interface javax.xml.stream.XMLStreamReaderjavax.xml.stream.XMLStreamExceptionpublic void require(int type,
String namespaceURI,
String localName)
throws javax.xml.stream.XMLStreamException
require in interface javax.xml.stream.XMLStreamReaderjavax.xml.stream.XMLStreamExceptionpublic javax.xml.stream.Location getLocation()
getLocation in interface javax.xml.stream.XMLStreamReaderpublic void close()
throws javax.xml.stream.XMLStreamException
close in interface javax.xml.stream.XMLStreamReaderjavax.xml.stream.XMLStreamExceptionpublic Object getProperty(String name) throws IllegalArgumentException
getProperty in interface javax.xml.stream.XMLStreamReaderIllegalArgumentExceptionpublic String getEncoding()
getEncoding in interface javax.xml.stream.XMLStreamReaderpublic String getCharacterEncodingScheme()
getCharacterEncodingScheme in interface javax.xml.stream.XMLStreamReaderpublic String getVersion()
getVersion in interface javax.xml.stream.XMLStreamReaderpublic boolean isStandalone()
isStandalone in interface javax.xml.stream.XMLStreamReaderpublic boolean standaloneSet()
standaloneSet in interface javax.xml.stream.XMLStreamReaderpublic String getPIData()
getPIData in interface javax.xml.stream.XMLStreamReaderpublic String getPITarget()
getPITarget in interface javax.xml.stream.XMLStreamReaderpublic int getAttributeCount()
getAttributeCount in interface javax.xml.stream.XMLStreamReaderpublic String getAttributeLocalName(int index)
getAttributeLocalName in interface javax.xml.stream.XMLStreamReaderpublic QName getAttributeName(int index)
getAttributeName in interface javax.xml.stream.XMLStreamReaderpublic String getAttributeNamespace(int index)
getAttributeNamespace in interface javax.xml.stream.XMLStreamReaderpublic String getAttributePrefix(int index)
getAttributePrefix in interface javax.xml.stream.XMLStreamReaderpublic String getAttributeType(int index)
getAttributeType in interface javax.xml.stream.XMLStreamReaderpublic String getAttributeValue(int index)
getAttributeValue in interface javax.xml.stream.XMLStreamReaderpublic boolean isAttributeSpecified(int index)
isAttributeSpecified in interface javax.xml.stream.XMLStreamReaderpublic String getAttributeValue(String namespaceURI, String localName)
getAttributeValue in interface javax.xml.stream.XMLStreamReaderpublic String getElementText() throws javax.xml.stream.XMLStreamException
getElementText in interface javax.xml.stream.XMLStreamReaderjavax.xml.stream.XMLStreamExceptionpublic int getEventType()
getEventType in interface javax.xml.stream.XMLStreamReaderpublic String getNamespaceURI()
getNamespaceURI in interface javax.xml.stream.XMLStreamReaderpublic String getLocalName()
getLocalName in interface javax.xml.stream.XMLStreamReaderpublic String getPrefix()
getPrefix in interface javax.xml.stream.XMLStreamReaderpublic QName getName()
getName in interface javax.xml.stream.XMLStreamReaderpublic NamespaceContext getNamespaceContext()
getNamespaceContext in interface javax.xml.stream.XMLStreamReaderpublic String getNamespaceURI(String prefix)
getNamespaceURI in interface javax.xml.stream.XMLStreamReaderpublic int getNamespaceCount()
getNamespaceCount in interface javax.xml.stream.XMLStreamReaderpublic String getNamespacePrefix(int index)
getNamespacePrefix in interface javax.xml.stream.XMLStreamReaderpublic String getNamespaceURI(int index)
getNamespaceURI in interface javax.xml.stream.XMLStreamReaderpublic String getText()
getText in interface javax.xml.stream.XMLStreamReaderpublic int getTextStart()
getTextStart in interface javax.xml.stream.XMLStreamReaderpublic int getTextLength()
getTextLength in interface javax.xml.stream.XMLStreamReaderpublic char[] getTextCharacters()
getTextCharacters in interface javax.xml.stream.XMLStreamReaderpublic int getTextCharacters(int sourceStart,
char[] target,
int targetStart,
int length)
throws javax.xml.stream.XMLStreamException
getTextCharacters in interface javax.xml.stream.XMLStreamReaderjavax.xml.stream.XMLStreamExceptionpublic boolean hasName()
hasName in interface javax.xml.stream.XMLStreamReaderpublic boolean hasText()
hasText in interface javax.xml.stream.XMLStreamReaderpublic boolean isCharacters()
isCharacters in interface javax.xml.stream.XMLStreamReaderpublic boolean isWhiteSpace()
isWhiteSpace in interface javax.xml.stream.XMLStreamReaderpublic boolean isStartElement()
isStartElement in interface javax.xml.stream.XMLStreamReaderpublic boolean isEndElement()
isEndElement in interface javax.xml.stream.XMLStreamReaderCopyright © The Apache Software Foundation. All Rights Reserved.