com.ctc.wstx.sr
Class BasicStreamReader

java.lang.Object
  extended by com.ctc.wstx.io.WstxInputData
      extended by com.ctc.wstx.sr.StreamScanner
          extended by com.ctc.wstx.sr.BasicStreamReader
All Implemented Interfaces:
InputConfigFlags, ParsingErrorMsgs, InputProblemReporter, StreamReaderImpl, XMLStreamConstants, XMLStreamReader, org.codehaus.stax2.DTDInfo, org.codehaus.stax2.LocationInfo, org.codehaus.stax2.typed.TypedXMLStreamReader, org.codehaus.stax2.validation.Validatable, org.codehaus.stax2.XMLStreamReader2
Direct Known Subclasses:
TypedStreamReader

public abstract class BasicStreamReader
extends StreamScanner
implements StreamReaderImpl, org.codehaus.stax2.DTDInfo, org.codehaus.stax2.LocationInfo

Partial implementation of XMLStreamReader2 consisting of all functionality other than DTD-validation-specific parts, and Typed Access API (Stax2 v3.0), which are implemented at sub-classes.

Author:
Tatu Saloranta

Field Summary
protected static int MASK_GET_ELEMENT_TEXT
           
protected static int MASK_GET_TEXT
          This mask covers all types for which basic getText() method can be called.
protected static int MASK_GET_TEXT_WITH_WRITER
          This mask is used with Stax2 getText() method (one that takes Writer as an argument): accepts even wider range of event types.
protected static int MASK_GET_TEXT_XXX
          This mask covers all types for which extends getTextXxx methods can be called; which is less than those for which getText() can be called.
protected  AttributeCollector mAttrCollector
          Object that stores information about currently accessible attributes.
protected  boolean mCfgCoalesceText
           
protected  boolean mCfgLazyParsing
           
protected  boolean mCfgReportTextAsChars
           
protected  int mCheckIndentation
          Counter used for determining whether we are to try to heuristically "intern" white space that seems to be used for indentation purposes
protected  int mConfigFlags
          Set of locally stored configuration flags
protected  int mCurrToken
          Current state of the stream, ie token value returned by getEventType().
protected  int mDocStandalone
          Status about "stand-aloneness" of document; set to 'yes'/'no'/'unknown' based on whether there was xml declaration, and if so, whether it had standalone attribute.
protected  String mDtdPublicId
          Public id of the DTD, if one exists and has been parsed.
protected  String mDtdSystemId
          System id of the DTD, if one exists and has been parsed.
protected  InputElementStack mElementStack
          Currently open element tree
protected  Map mGeneralEntities
          Entities parsed from internal/external DTD subsets.
protected  ReaderCreator mOwner
          Object to notify about shared stuff, such as symbol tables, as well as to query for additional config settings if necessary.
protected  int mParseState
          Main parsing/tokenization state (STATE_xxx)
protected  XMLStreamException mPendingException
          Due to the way Stax API does not allow throwing stream exceptions from many methods for which Woodstox would need to throw one (especially getText and its variations), we may need to delay throwing an exception until next() is called next time.
protected  boolean mReturnNullForDefaultNamespace
          Configuration from XMLStreamProperties.RETURN_NULL_FOR_DEFAULT_NAMESPACE
protected  int mSecondaryToken
          Additional information sometimes stored (when generating dummy events in multi-doc mode, for example) temporarily when mCurrToken is already populated.
protected  int mShortestTextSegment
          Minimum number of characters parser can return as partial text segment, IF it's not required to coalesce adjacent text segments.
protected  boolean mStDoctypeFound
           
protected  boolean mStEmptyElem
           
protected  int mStTextThreshold
          Threshold value that defines tokenization state that needs to be achieved to "finish" current logical text segment (which may consist of adjacent CDATA and text segments; or be a complete physical segment; or just even a fragment of such a segment)
protected  TextBuffer mTextBuffer
          TextBuffer mostly used to collect non-element textual content (text, CDATA, comment content, pi data)
protected  int mTokenState
          State of the current token; one of M_ - constants from above.
protected  boolean mValidateText
          Flag that indicates that textual content (CDATA, CHARACTERS) is to be validated within current element's scope.
protected  int mVldContent
          Mode information needed at this level; mostly to check what kind of textual content (if any) is allowed in current element context.
protected  int mWsStatus
          Status of current (text) token's "whitespaceness", that is, whether it is or is not all white space.
protected static String sPrefixXml
           
protected static String sPrefixXmlns
           
 
Fields inherited from class com.ctc.wstx.sr.StreamScanner
CHAR_CR_LF_OR_NULL, CHAR_FIRST_PURE_TEXT, CHAR_LOWEST_LEGAL_LOCALNAME_CHAR, INT_CR_LF_OR_NULL, mCachedEntities, mCfgNsEnabled, mCfgReplaceEntities, mCfgTreatCharRefsAsEntities, mConfig, mCurrDepth, mCurrEntity, mCurrName, mDocXmlVersion, mInput, mInputTopDepth, mNameBuffer, mNormalizeLFs, mRootInput, mTokenInputCol, mTokenInputRow, mTokenInputTotal
 
Fields inherited from class com.ctc.wstx.io.WstxInputData
CHAR_NULL, CHAR_SPACE, INT_NULL, INT_SPACE, MAX_UNICODE_CHAR, mCurrInputProcessed, mCurrInputRow, mCurrInputRowStart, mInputBuffer, mInputEnd, mInputPtr, mXml11
 
Fields inherited from interface org.codehaus.stax2.XMLStreamReader2
FEATURE_DTD_OVERRIDE
 
Fields inherited from interface javax.xml.stream.XMLStreamConstants
ATTRIBUTE, CDATA, CHARACTERS, COMMENT, DTD, END_DOCUMENT, END_ELEMENT, ENTITY_DECLARATION, ENTITY_REFERENCE, NAMESPACE, NOTATION_DECLARATION, PROCESSING_INSTRUCTION, SPACE, START_DOCUMENT, START_ELEMENT
 
Fields inherited from interface com.ctc.wstx.cfg.InputConfigFlags
CFG_AUTO_CLOSE_INPUT, CFG_CACHE_DTDS, CFG_CACHE_DTDS_BY_PUBLIC_ID, CFG_COALESCE_TEXT, CFG_INTERN_NAMES, CFG_INTERN_NS_URIS, CFG_LAZY_PARSING, CFG_NAMESPACE_AWARE, CFG_NORMALIZE_LFS, CFG_PRESERVE_LOCATION, CFG_REPLACE_ENTITY_REFS, CFG_REPORT_CDATA, CFG_REPORT_PROLOG_WS, CFG_SUPPORT_DTD, CFG_SUPPORT_DTDPP, CFG_SUPPORT_EXTERNAL_ENTITIES, CFG_TREAT_CHAR_REFS_AS_ENTS, CFG_VALIDATE_AGAINST_DTD, CFG_XMLID_TYPING, CFG_XMLID_UNIQ_CHECKS
 
Fields inherited from interface com.ctc.wstx.cfg.ParsingErrorMsgs
SUFFIX_EOF_EXP_NAME, SUFFIX_IN_ATTR_VALUE, SUFFIX_IN_CDATA, SUFFIX_IN_CLOSE_ELEMENT, SUFFIX_IN_COMMENT, SUFFIX_IN_DEF_ATTR_VALUE, SUFFIX_IN_DOC, SUFFIX_IN_DTD, SUFFIX_IN_DTD_EXTERNAL, SUFFIX_IN_DTD_INTERNAL, SUFFIX_IN_ELEMENT, SUFFIX_IN_ENTITY_REF, SUFFIX_IN_EPILOG, SUFFIX_IN_NAME, SUFFIX_IN_PROC_INSTR, SUFFIX_IN_PROLOG, SUFFIX_IN_TEXT, SUFFIX_IN_XML_DECL
 
Constructor Summary
protected BasicStreamReader(InputBootstrapper bs, BranchingReaderSource input, ReaderCreator owner, ReaderConfig cfg, InputElementStack elemStack, boolean forER)
           
 
Method Summary
protected  org.codehaus.stax2.typed.TypedXMLStreamException _constructTypeException(String msg, String lexicalValue)
           
protected  XMLStreamException _constructUnexpectedInTyped(int nextToken)
          Method called to report a problem with
protected  void checkCData()
           
protected  String checkKeyword(char c, String expected)
           
 void close()
           Note: as per StAX 1.0 specs, this method does NOT close the underlying input reader.
 void closeCompletely()
           
protected static InputElementStack createElementStack(ReaderConfig cfg)
           
protected  void ensureFinishToken()
           
protected  EntityDecl findEntity(String id, Object arg)
          Abstract method for sub-classes to implement, for finding a declared general or parsed entity.
protected  void finishDTD(boolean copyContents)
          This method gets called to handle remainder of DOCTYPE declaration, essentially the optional internal subset.
protected  void finishToken(boolean deferErrors)
          Method called to read in contents of the token completely, if not yet read.
 void fireSaxCharacterEvents(ContentHandler h)
           
 void fireSaxCommentEvent(LexicalHandler h)
           
 void fireSaxEndElement(ContentHandler h)
           
 void fireSaxPIEvent(ContentHandler h)
           
 void fireSaxSpaceEvents(ContentHandler h)
           
 void fireSaxStartElement(ContentHandler h, Attributes attrs)
           
 AttributeCollector getAttributeCollector()
          Method needed by classes (like stream writer implementations) that want to have efficient direct access to attribute collector Object, for optimal attribute name and value access.
 int getAttributeCount()
           
 org.codehaus.stax2.AttributeInfo getAttributeInfo()
           
 String getAttributeLocalName(int index)
           
 QName getAttributeName(int index)
           
 String getAttributeNamespace(int index)
           
 String getAttributePrefix(int index)
           
 String getAttributeType(int index)
           
 String getAttributeValue(int index)
           
 String getAttributeValue(String nsURI, String localName)
           
 String getCharacterEncodingScheme()
          As per Stax (1.0) specs, needs to return whatever xml declaration claimed encoding is, if any; or null if no xml declaration found.
 EntityDecl getCurrentEntityDecl()
           
 int getDepth()
           
 org.codehaus.stax2.DTDInfo getDTDInfo()
          Since this class implements DTDInfo, method can just return this.
 String getDTDInternalSubset()
           
 String getDTDPublicId()
           
 String getDTDRootName()
           
 String getDTDSystemId()
           
 String getElementText()
          From StAX specs: Reads the content of a text-only element, an exception is thrown if this is not a text-only element.
 String getEncoding()
          As per Stax (1.0) specs, needs to return whatever parser determined the encoding was, if it was able to figure it out.
 long getEndingByteOffset()
           
 long getEndingCharOffset()
           
 org.codehaus.stax2.XMLStreamLocation2 getEndLocation()
           
 int getEventType()
          Returns type of the last event returned; or START_DOCUMENT before any events has been explicitly returned.
 Object getFeature(String name)
           
 InputElementStack getInputElementStack()
          Method needed by classes (like stream writer implementations) that want to have efficient direct access to element stack implementation
 String getLocalName()
           
 Location getLocation()
          Returns location of last properly parsed token; as per StAX specs, apparently needs to be the end of current event, which is the same as the start of the following event (or EOF if that's next).
 org.codehaus.stax2.LocationInfo getLocationInfo()
          Location information is always accessible, for this reader.
 QName getName()
           
 NamespaceContext getNamespaceContext()
           
 int getNamespaceCount()
           
 String getNamespacePrefix(int index)
           
 String getNamespaceURI()
           
 String getNamespaceURI(int index)
           
 String getNamespaceURI(String prefix)
           
 NamespaceContext getNonTransientNamespaceContext()
           
 String getPIData()
           
 String getPITarget()
           
 String getPrefix()
           
 String getPrefixedName()
           
 Object getProcessedDTD()
           Note: DTD-handling sub-classes need to override this method.
 org.codehaus.stax2.validation.DTDValidationSchema getProcessedDTDSchema()
          Sub-class will override this method
 Object getProperty(String name)
           
 long getStartingByteOffset()
           
 long getStartingCharOffset()
           
 String getText()
           
 int getText(Writer w, boolean preserveContents)
          Method similar to getText(), except that it just uses provided Writer to write all textual content.
 char[] getTextCharacters()
           
 int getTextCharacters(int sourceStart, char[] target, int targetStart, int len)
           
 int getTextLength()
           
 int getTextStart()
           
 String getVersion()
           
protected  int handleEOF(boolean isProlog)
           
protected  void handleGreedyEntityProblem(WstxInputSource input)
          This problem gets reported if an entity tries to expand to a close tag matching start tag that did not came from the same entity (but from parent).
protected  void handleIncompleteEntityProblem(WstxInputSource closing)
           
protected  int handleMultiDocStart(int nextEvent)
          Method called when an event was encountered that indicates document boundary in multi-doc mode.
protected  void handleMultiDocXmlDecl()
           
protected  void handleRootElem(char c)
           
protected  void handleUndeclaredEntity(String id)
          This method gets called if a declaration for an entity was not found in entity expanding mode (enabled by default for xml reader, always enabled for dtd reader).
protected  boolean hasConfigFlags(int flags)
           
 boolean hasName()
           
 boolean hasNext()
           
 boolean hasText()
           
protected  void initValidation()
          Method called right before the document root element is handled.
 boolean isAttributeSpecified(int index)
           
 boolean isCharacters()
           
 boolean isEmptyElement()
           
 boolean isEndElement()
           
 boolean isNamespaceAware()
           
 boolean isPropertySupported(String name)
           
 boolean isStandalone()
           
 boolean isStartElement()
           
 boolean isWhiteSpace()
           05-Apr-2004, TSa: Could try to determine status when text is actually read.
 int next()
           
 int nextTag()
           
protected  void parseQuoted(String name, char quoteChar, TextBuffer tbuf)
          Method called to parse quoted xml declaration pseudo-attribute values.
protected  boolean readCDataSecondary(int shortestSegment)
           
protected  void readCoalescedText(int currType, boolean deferErrors)
          Method called to read the content of both current CDATA/CHARACTERS events, and all following consequtive events into the text buffer.
protected  void readEndElem()
          Method called to completely read a close tag, and update element stack appropriately (including checking that tag matches etc).
protected  boolean readTextSecondary(int shortestSegment, boolean deferErrors)
           
protected  void reportInvalidContent(int evtType)
          Stub method implemented by validating parsers, to report content that's not valid for current element context.
 void require(int type, String nsUri, String localName)
           
protected  void safeEnsureFinishToken()
           
protected  void safeFinishToken()
           
 void setFeature(String name, Object value)
           
 boolean setProperty(String name, Object value)
           
 org.codehaus.stax2.validation.ValidationProblemHandler setValidationProblemHandler(org.codehaus.stax2.validation.ValidationProblemHandler h)
           
 void skipElement()
           
protected  char skipEquals(String name, String eofMsg)
          Method that checks that input following is of form '[S]* '=' [S]*' (as per XML specs, production #25).
protected  boolean skipWS(char c)
          Method that will skip any white space from input source(s)
 boolean standaloneSet()
           
 org.codehaus.stax2.validation.XMLValidator stopValidatingAgainst(org.codehaus.stax2.validation.XMLValidationSchema schema)
           
 org.codehaus.stax2.validation.XMLValidator stopValidatingAgainst(org.codehaus.stax2.validation.XMLValidator validator)
           
protected  void throwNotTextualOrElem(int type)
           
protected  void throwUnexpectedEOF()
          Method called when we get an EOF within content tree
 org.codehaus.stax2.validation.XMLValidator validateAgainst(org.codehaus.stax2.validation.XMLValidationSchema schema)
           
 Object withStartElement(ElemCallback cb, Location loc)
          Method called by DefaultEventAllocator to get double-indirection necessary for constructing start element events.
 
Methods inherited from class com.ctc.wstx.sr.StreamScanner
_reportProblem, _reportProblem, closeAllInput, constructFromIOE, constructNullCharException, constructWfcException, ensureInput, expandBy50Pct, expandEntity, fullyResolveEntity, getCurrentInput, getCurrentLocation, getIntEntity, getLastCharLocation, getNameBuffer, getNext, getNextAfterWS, getNextChar, getNextCharAfterWS, getNextCharFromCurrent, getNextInCurrAfterWS, getNextInCurrAfterWS, getSource, getStartLocation, getSystemId, initInputSource, inputInBuffer, loadMore, loadMore, loadMoreFromCurrent, loadMoreFromCurrent, markLF, markLF, parseEntityName, parseFNameForError, parseFullName, parseFullName, parseFullName2, parseLocalName, parseLocalName2, parsePublicId, parseSystemId, parseUntil, peekNext, pushback, reportProblem, reportProblem, reportValidationProblem, reportValidationProblem, reportValidationProblem, reportValidationProblem, reportValidationProblem, resolveCharOnlyEntity, resolveNonCharEntity, resolveSimpleEntity, skipCRLF, skipFullName, throwFromIOE, throwFromStrE, throwInvalidSpace, throwInvalidSpace, throwLazyError, throwNullChar, throwNullParent, throwParseError, throwParseError, throwUnexpectedChar, throwUnexpectedEOB, throwUnexpectedEOF, throwWfcException, tokenTypeDesc
 
Methods inherited from class com.ctc.wstx.io.WstxInputData
copyBufferStateFrom, findIllegalNameChar, findIllegalNmtokenChar, getCharDesc, isNameChar, isNameChar, isNameStartChar, isNameStartChar, isSpaceChar
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.codehaus.stax2.typed.TypedXMLStreamReader
getAttributeAs, getAttributeAsArray, getAttributeAsBinary, getAttributeAsBinary, getAttributeAsBoolean, getAttributeAsDecimal, getAttributeAsDouble, getAttributeAsDoubleArray, getAttributeAsFloat, getAttributeAsFloatArray, getAttributeAsInt, getAttributeAsIntArray, getAttributeAsInteger, getAttributeAsLong, getAttributeAsLongArray, getAttributeAsQName, getAttributeIndex, getElementAs, getElementAsBinary, getElementAsBinary, getElementAsBoolean, getElementAsDecimal, getElementAsDouble, getElementAsFloat, getElementAsInt, getElementAsInteger, getElementAsLong, getElementAsQName, readElementAsArray, readElementAsBinary, readElementAsBinary, readElementAsDoubleArray, readElementAsFloatArray, readElementAsIntArray, readElementAsLongArray
 
Methods inherited from interface org.codehaus.stax2.LocationInfo
getCurrentLocation, getStartLocation
 

Field Detail

MASK_GET_TEXT

protected static final int MASK_GET_TEXT
This mask covers all types for which basic getText() method can be called.

See Also:
Constant Field Values

MASK_GET_TEXT_XXX

protected static final int MASK_GET_TEXT_XXX
This mask covers all types for which extends getTextXxx methods can be called; which is less than those for which getText() can be called. Specifically, DTD and ENTITY_REFERENCE types do not support these extended

See Also:
Constant Field Values

MASK_GET_TEXT_WITH_WRITER

protected static final int MASK_GET_TEXT_WITH_WRITER
This mask is used with Stax2 getText() method (one that takes Writer as an argument): accepts even wider range of event types.

See Also:
Constant Field Values

MASK_GET_ELEMENT_TEXT

protected static final int MASK_GET_ELEMENT_TEXT
See Also:
Constant Field Values

sPrefixXml

protected static final String sPrefixXml

sPrefixXmlns

protected static final String sPrefixXmlns

mConfigFlags

protected final int mConfigFlags
Set of locally stored configuration flags


mCfgCoalesceText

protected final boolean mCfgCoalesceText

mCfgReportTextAsChars

protected final boolean mCfgReportTextAsChars

mCfgLazyParsing

protected final boolean mCfgLazyParsing

mShortestTextSegment

protected final int mShortestTextSegment
Minimum number of characters parser can return as partial text segment, IF it's not required to coalesce adjacent text segments.


mOwner

protected final ReaderCreator mOwner
Object to notify about shared stuff, such as symbol tables, as well as to query for additional config settings if necessary.


mDocStandalone

protected int mDocStandalone
Status about "stand-aloneness" of document; set to 'yes'/'no'/'unknown' based on whether there was xml declaration, and if so, whether it had standalone attribute.


mDtdPublicId

protected String mDtdPublicId
Public id of the DTD, if one exists and has been parsed.


mDtdSystemId

protected String mDtdSystemId
System id of the DTD, if one exists and has been parsed.


mTextBuffer

protected final TextBuffer mTextBuffer
TextBuffer mostly used to collect non-element textual content (text, CDATA, comment content, pi data)


mElementStack

protected final InputElementStack mElementStack
Currently open element tree


mAttrCollector

protected final AttributeCollector mAttrCollector
Object that stores information about currently accessible attributes.


mStDoctypeFound

protected boolean mStDoctypeFound

mTokenState

protected int mTokenState
State of the current token; one of M_ - constants from above.

Initially set to fully tokenized, since it's the virtual START_DOCUMENT event that we fully know by now (parsed by bootstrapper)


mStTextThreshold

protected final int mStTextThreshold
Threshold value that defines tokenization state that needs to be achieved to "finish" current logical text segment (which may consist of adjacent CDATA and text segments; or be a complete physical segment; or just even a fragment of such a segment)


mStEmptyElem

protected boolean mStEmptyElem

mParseState

protected int mParseState
Main parsing/tokenization state (STATE_xxx)


mCurrToken

protected int mCurrToken
Current state of the stream, ie token value returned by getEventType(). Needs to be initialized to START_DOCUMENT, since that's the state it starts in.


mSecondaryToken

protected int mSecondaryToken
Additional information sometimes stored (when generating dummy events in multi-doc mode, for example) temporarily when mCurrToken is already populated.


mWsStatus

protected int mWsStatus
Status of current (text) token's "whitespaceness", that is, whether it is or is not all white space.


mValidateText

protected boolean mValidateText
Flag that indicates that textual content (CDATA, CHARACTERS) is to be validated within current element's scope. Enabled if one of validators returns XMLValidator.CONTENT_ALLOW_VALIDATABLE_TEXT, and will prevent lazy parsing of text.


mCheckIndentation

protected int mCheckIndentation
Counter used for determining whether we are to try to heuristically "intern" white space that seems to be used for indentation purposes


mPendingException

protected XMLStreamException mPendingException
Due to the way Stax API does not allow throwing stream exceptions from many methods for which Woodstox would need to throw one (especially getText and its variations), we may need to delay throwing an exception until next() is called next time. If so, this variable holds the pending stream exception.


mGeneralEntities

protected Map mGeneralEntities
Entities parsed from internal/external DTD subsets. Although it will remain null for this class, extended classes make use of it, plus, to be able to share some of entity resolution code, instance is left here even though it semantically belongs to the sub-class.


mVldContent

protected int mVldContent
Mode information needed at this level; mostly to check what kind of textual content (if any) is allowed in current element context. Constants come from XMLValidator, (like XMLValidator.CONTENT_ALLOW_VALIDATABLE_TEXT). Only used inside tree; ignored for prolog/epilog (which have straight-forward static rules).


mReturnNullForDefaultNamespace

protected boolean mReturnNullForDefaultNamespace
Configuration from XMLStreamProperties.RETURN_NULL_FOR_DEFAULT_NAMESPACE

Since:
4.1.2
Constructor Detail

BasicStreamReader

protected BasicStreamReader(InputBootstrapper bs,
                            BranchingReaderSource input,
                            ReaderCreator owner,
                            ReaderConfig cfg,
                            InputElementStack elemStack,
                            boolean forER)
                     throws XMLStreamException
Parameters:
elemStack - Input element stack to use; if null, will create instance locally.
forER - Override indicator; if true, this stream reader will be used by an event reader, and should modify some of the base config settings appropriately. If false, configuration settings are to be used as is.
Throws:
XMLStreamException
Method Detail

createElementStack

protected static InputElementStack createElementStack(ReaderConfig cfg)

getCharacterEncodingScheme

public String getCharacterEncodingScheme()
As per Stax (1.0) specs, needs to return whatever xml declaration claimed encoding is, if any; or null if no xml declaration found.

Note: method name is rather confusing (compare to getEncoding()).

Specified by:
getCharacterEncodingScheme in interface XMLStreamReader

getEncoding

public String getEncoding()
As per Stax (1.0) specs, needs to return whatever parser determined the encoding was, if it was able to figure it out. If not (there are cases where this can not be found; specifically when being passed a Reader), it should return null.

Specified by:
getEncoding in interface XMLStreamReader

getVersion

public String getVersion()
Specified by:
getVersion in interface XMLStreamReader

isStandalone

public boolean isStandalone()
Specified by:
isStandalone in interface XMLStreamReader

standaloneSet

public boolean standaloneSet()
Specified by:
standaloneSet in interface XMLStreamReader

getProperty

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

getAttributeCount

public int getAttributeCount()
Specified by:
getAttributeCount in interface XMLStreamReader

getAttributeLocalName

public String getAttributeLocalName(int index)
Specified by:
getAttributeLocalName in interface XMLStreamReader

getAttributeName

public QName getAttributeName(int index)
Specified by:
getAttributeName in interface XMLStreamReader

getAttributeNamespace

public String getAttributeNamespace(int index)
Specified by:
getAttributeNamespace in interface XMLStreamReader

getAttributePrefix

public String getAttributePrefix(int index)
Specified by:
getAttributePrefix in interface XMLStreamReader

getAttributeType

public String getAttributeType(int index)
Specified by:
getAttributeType in interface XMLStreamReader

getAttributeValue

public String getAttributeValue(int index)
Specified by:
getAttributeValue in interface XMLStreamReader

getAttributeValue

public String getAttributeValue(String nsURI,
                                String localName)
Specified by:
getAttributeValue in interface XMLStreamReader

getElementText

public String getElementText()
                      throws XMLStreamException
From StAX specs:
Reads the content of a text-only element, an exception is thrown if this is not a text-only element. Regardless of value of javax.xml.stream.isCoalescing this method always returns coalesced content.
Precondition: the current event is START_ELEMENT.
Postcondition: the current event is the corresponding END_ELEMENT.

Specified by:
getElementText in interface XMLStreamReader
Throws:
XMLStreamException

getEventType

public int getEventType()
Returns type of the last event returned; or START_DOCUMENT before any events has been explicitly returned.

Specified by:
getEventType in interface XMLStreamReader

getLocalName

public String getLocalName()
Specified by:
getLocalName in interface XMLStreamReader

getName

public QName getName()
Specified by:
getName in interface XMLStreamReader

getNamespaceContext

public NamespaceContext getNamespaceContext()
Specified by:
getNamespaceContext in interface XMLStreamReader

getNamespaceCount

public int getNamespaceCount()
Specified by:
getNamespaceCount in interface XMLStreamReader

getNamespacePrefix

public String getNamespacePrefix(int index)
Specified by:
getNamespacePrefix in interface XMLStreamReader

getNamespaceURI

public String getNamespaceURI()
Specified by:
getNamespaceURI in interface XMLStreamReader

getNamespaceURI

public String getNamespaceURI(int index)
Specified by:
getNamespaceURI in interface XMLStreamReader

getNamespaceURI

public String getNamespaceURI(String prefix)
Specified by:
getNamespaceURI in interface XMLStreamReader

getPIData

public String getPIData()
Specified by:
getPIData in interface XMLStreamReader

getPITarget

public String getPITarget()
Specified by:
getPITarget in interface XMLStreamReader

getPrefix

public String getPrefix()
Specified by:
getPrefix in interface XMLStreamReader

getText

public String getText()
Specified by:
getText in interface XMLStreamReader

getTextCharacters

public char[] getTextCharacters()
Specified by:
getTextCharacters in interface XMLStreamReader

getTextCharacters

public int getTextCharacters(int sourceStart,
                             char[] target,
                             int targetStart,
                             int len)
Specified by:
getTextCharacters in interface XMLStreamReader

getTextLength

public int getTextLength()
Specified by:
getTextLength in interface XMLStreamReader

getTextStart

public int getTextStart()
Specified by:
getTextStart in interface XMLStreamReader

hasName

public boolean hasName()
Specified by:
hasName in interface XMLStreamReader

hasNext

public boolean hasNext()
Specified by:
hasNext in interface XMLStreamReader

hasText

public boolean hasText()
Specified by:
hasText in interface XMLStreamReader

isAttributeSpecified

public boolean isAttributeSpecified(int index)
Specified by:
isAttributeSpecified in interface XMLStreamReader

isCharacters

public boolean isCharacters()
Specified by:
isCharacters in interface XMLStreamReader

isEndElement

public boolean isEndElement()
Specified by:
isEndElement in interface XMLStreamReader

isStartElement

public boolean isStartElement()
Specified by:
isStartElement in interface XMLStreamReader

isWhiteSpace

public boolean isWhiteSpace()

05-Apr-2004, TSa: Could try to determine status when text is actually read. That'd prevent double reads... but would it slow down that one reading so that net effect would be negative?

Specified by:
isWhiteSpace in interface XMLStreamReader

require

public void require(int type,
                    String nsUri,
                    String localName)
             throws XMLStreamException
Specified by:
require in interface XMLStreamReader
Throws:
XMLStreamException

next

public final int next()
               throws XMLStreamException
Specified by:
next in interface XMLStreamReader
Throws:
XMLStreamException

nextTag

public int nextTag()
            throws XMLStreamException
Specified by:
nextTag in interface XMLStreamReader
Throws:
XMLStreamException

close

public void close()
           throws XMLStreamException

Note: as per StAX 1.0 specs, this method does NOT close the underlying input reader. That is, unless the new StAX2 property XMLInputFactory2.P_AUTO_CLOSE_INPUT is set to true.

Specified by:
close in interface XMLStreamReader
Throws:
XMLStreamException

getFeature

public Object getFeature(String name)
Specified by:
getFeature in interface org.codehaus.stax2.XMLStreamReader2

setFeature

public void setFeature(String name,
                       Object value)
Specified by:
setFeature in interface org.codehaus.stax2.XMLStreamReader2

isPropertySupported

public boolean isPropertySupported(String name)
Specified by:
isPropertySupported in interface org.codehaus.stax2.XMLStreamReader2

setProperty

public boolean setProperty(String name,
                           Object value)
Specified by:
setProperty in interface org.codehaus.stax2.XMLStreamReader2
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

skipElement

public void skipElement()
                 throws XMLStreamException
Specified by:
skipElement in interface org.codehaus.stax2.XMLStreamReader2
Throws:
XMLStreamException

getAttributeInfo

public org.codehaus.stax2.AttributeInfo getAttributeInfo()
                                                  throws XMLStreamException
Specified by:
getAttributeInfo in interface org.codehaus.stax2.XMLStreamReader2
Throws:
XMLStreamException

getDTDInfo

public org.codehaus.stax2.DTDInfo getDTDInfo()
                                      throws XMLStreamException
Since this class implements DTDInfo, method can just return this.

Specified by:
getDTDInfo in interface org.codehaus.stax2.XMLStreamReader2
Throws:
XMLStreamException

getLocationInfo

public final org.codehaus.stax2.LocationInfo getLocationInfo()
Location information is always accessible, for this reader.

Specified by:
getLocationInfo in interface org.codehaus.stax2.XMLStreamReader2

getText

public int getText(Writer w,
                   boolean preserveContents)
            throws IOException,
                   XMLStreamException
Method similar to getText(), except that it just uses provided Writer to write all textual content. For further optimization, it may also be allowed to do true pass-through, thus possibly avoiding one temporary copy of the data.

TODO: try to optimize to allow completely streaming pass-through: currently will still read all data in memory buffers before outputting

Specified by:
getText in interface org.codehaus.stax2.XMLStreamReader2
Parameters:
w - Writer to use for writing textual contents
preserveContents - If true, reader has to preserve contents so that further calls to getText will return proper conntets. If false, reader is allowed to skip creation of such copies: this can improve performance, but it also means that further calls to getText is not guaranteed to return meaningful data.
Returns:
Number of characters written to the reader
Throws:
IOException
XMLStreamException

getDepth

public int getDepth()
Specified by:
getDepth in interface org.codehaus.stax2.XMLStreamReader2
Returns:
Number of open elements in the stack; 0 when parser is in prolog/epilog, 1 inside root element and so on.

isEmptyElement

public boolean isEmptyElement()
                       throws XMLStreamException
Specified by:
isEmptyElement in interface org.codehaus.stax2.XMLStreamReader2
Returns:
True, if cursor points to a start or end element that is constructed from 'empty' element (ends with '/>'); false otherwise.
Throws:
XMLStreamException

getNonTransientNamespaceContext

public NamespaceContext getNonTransientNamespaceContext()
Specified by:
getNonTransientNamespaceContext in interface org.codehaus.stax2.XMLStreamReader2

getPrefixedName

public String getPrefixedName()
Specified by:
getPrefixedName in interface org.codehaus.stax2.XMLStreamReader2

closeCompletely

public void closeCompletely()
                     throws XMLStreamException
Specified by:
closeCompletely in interface org.codehaus.stax2.XMLStreamReader2
Throws:
XMLStreamException

getProcessedDTD

public Object getProcessedDTD()

Note: DTD-handling sub-classes need to override this method.

Specified by:
getProcessedDTD in interface org.codehaus.stax2.DTDInfo

getDTDRootName

public String getDTDRootName()
Specified by:
getDTDRootName in interface org.codehaus.stax2.DTDInfo

getDTDPublicId

public String getDTDPublicId()
Specified by:
getDTDPublicId in interface org.codehaus.stax2.DTDInfo

getDTDSystemId

public String getDTDSystemId()
Specified by:
getDTDSystemId in interface org.codehaus.stax2.DTDInfo

getDTDInternalSubset

public String getDTDInternalSubset()
Specified by:
getDTDInternalSubset in interface org.codehaus.stax2.DTDInfo
Returns:
Internal subset portion of the DOCTYPE declaration, if any; empty String if none

getProcessedDTDSchema

public org.codehaus.stax2.validation.DTDValidationSchema getProcessedDTDSchema()
Sub-class will override this method

Specified by:
getProcessedDTDSchema in interface org.codehaus.stax2.DTDInfo

getStartingByteOffset

public long getStartingByteOffset()
Specified by:
getStartingByteOffset in interface org.codehaus.stax2.LocationInfo

getStartingCharOffset

public long getStartingCharOffset()
Specified by:
getStartingCharOffset in interface org.codehaus.stax2.LocationInfo

getEndingByteOffset

public long getEndingByteOffset()
                         throws XMLStreamException
Specified by:
getEndingByteOffset in interface org.codehaus.stax2.LocationInfo
Throws:
XMLStreamException

getEndingCharOffset

public long getEndingCharOffset()
                         throws XMLStreamException
Specified by:
getEndingCharOffset in interface org.codehaus.stax2.LocationInfo
Throws:
XMLStreamException

getLocation

public final Location getLocation()
Description copied from class: StreamScanner
Returns location of last properly parsed token; as per StAX specs, apparently needs to be the end of current event, which is the same as the start of the following event (or EOF if that's next).

Specified by:
getLocation in interface InputProblemReporter
Specified by:
getLocation in interface XMLStreamReader
Specified by:
getLocation in interface org.codehaus.stax2.LocationInfo
Specified by:
getLocation in class StreamScanner

getEndLocation

public final org.codehaus.stax2.XMLStreamLocation2 getEndLocation()
                                                           throws XMLStreamException
Specified by:
getEndLocation in interface org.codehaus.stax2.LocationInfo
Throws:
XMLStreamException

validateAgainst

public org.codehaus.stax2.validation.XMLValidator validateAgainst(org.codehaus.stax2.validation.XMLValidationSchema schema)
                                                           throws XMLStreamException
Specified by:
validateAgainst in interface org.codehaus.stax2.validation.Validatable
Throws:
XMLStreamException

stopValidatingAgainst

public org.codehaus.stax2.validation.XMLValidator stopValidatingAgainst(org.codehaus.stax2.validation.XMLValidationSchema schema)
                                                                 throws XMLStreamException
Specified by:
stopValidatingAgainst in interface org.codehaus.stax2.validation.Validatable
Throws:
XMLStreamException

stopValidatingAgainst

public org.codehaus.stax2.validation.XMLValidator stopValidatingAgainst(org.codehaus.stax2.validation.XMLValidator validator)
                                                                 throws XMLStreamException
Specified by:
stopValidatingAgainst in interface org.codehaus.stax2.validation.Validatable
Throws:
XMLStreamException

setValidationProblemHandler

public org.codehaus.stax2.validation.ValidationProblemHandler setValidationProblemHandler(org.codehaus.stax2.validation.ValidationProblemHandler h)
Specified by:
setValidationProblemHandler in interface org.codehaus.stax2.validation.Validatable

getCurrentEntityDecl

public EntityDecl getCurrentEntityDecl()
Specified by:
getCurrentEntityDecl in interface StreamReaderImpl

withStartElement

public Object withStartElement(ElemCallback cb,
                               Location loc)
Method called by DefaultEventAllocator to get double-indirection necessary for constructing start element events.

Specified by:
withStartElement in interface StreamReaderImpl
Returns:
Null, if stream does not point to start element; whatever callback returns otherwise.

isNamespaceAware

public boolean isNamespaceAware()
Specified by:
isNamespaceAware in interface StreamReaderImpl

getInputElementStack

public InputElementStack getInputElementStack()
Method needed by classes (like stream writer implementations) that want to have efficient direct access to element stack implementation

Specified by:
getInputElementStack in interface StreamReaderImpl

getAttributeCollector

public AttributeCollector getAttributeCollector()
Method needed by classes (like stream writer implementations) that want to have efficient direct access to attribute collector Object, for optimal attribute name and value access.

Specified by:
getAttributeCollector in interface StreamReaderImpl

fireSaxStartElement

public void fireSaxStartElement(ContentHandler h,
                                Attributes attrs)
                         throws SAXException
Throws:
SAXException

fireSaxEndElement

public void fireSaxEndElement(ContentHandler h)
                       throws SAXException
Throws:
SAXException

fireSaxCharacterEvents

public void fireSaxCharacterEvents(ContentHandler h)
                            throws XMLStreamException,
                                   SAXException
Throws:
XMLStreamException
SAXException

fireSaxSpaceEvents

public void fireSaxSpaceEvents(ContentHandler h)
                        throws XMLStreamException,
                               SAXException
Throws:
XMLStreamException
SAXException

fireSaxCommentEvent

public void fireSaxCommentEvent(LexicalHandler h)
                         throws XMLStreamException,
                                SAXException
Throws:
XMLStreamException
SAXException

fireSaxPIEvent

public void fireSaxPIEvent(ContentHandler h)
                    throws XMLStreamException,
                           SAXException
Throws:
XMLStreamException
SAXException

hasConfigFlags

protected final boolean hasConfigFlags(int flags)

checkKeyword

protected String checkKeyword(char c,
                              String expected)
                       throws XMLStreamException
Returns:
Null, if keyword matches ok; String that contains erroneous keyword if not.
Throws:
XMLStreamException

checkCData

protected void checkCData()
                   throws XMLStreamException
Throws:
XMLStreamException

handleRootElem

protected void handleRootElem(char c)
                       throws XMLStreamException
Throws:
XMLStreamException

initValidation

protected void initValidation()
                       throws XMLStreamException
Method called right before the document root element is handled. The default implementation is empty; validating stream readers should override the method and do whatever initialization is necessary

Throws:
XMLStreamException

handleEOF

protected int handleEOF(boolean isProlog)
                 throws XMLStreamException
Throws:
XMLStreamException

handleMultiDocStart

protected int handleMultiDocStart(int nextEvent)
Method called when an event was encountered that indicates document boundary in multi-doc mode. Needs to trigger dummy END_DOCUMENT/START_DOCUMENT event combination, followed by the handling of the original event.

Returns:
Event type to return

handleMultiDocXmlDecl

protected void handleMultiDocXmlDecl()
                              throws XMLStreamException
Throws:
XMLStreamException

skipEquals

protected final char skipEquals(String name,
                                String eofMsg)
                         throws XMLStreamException
Method that checks that input following is of form '[S]* '=' [S]*' (as per XML specs, production #25). Will push back non-white space characters as necessary, in case no equals char is encountered.

Throws:
XMLStreamException

parseQuoted

protected final void parseQuoted(String name,
                                 char quoteChar,
                                 TextBuffer tbuf)
                          throws XMLStreamException
Method called to parse quoted xml declaration pseudo-attribute values. Works similar to attribute value parsing, except no entities can be included, and in general need not be as picky (since caller is to verify contents). One exception is that we do check for linefeeds and lt chars, since they generally would indicate problems and are useful to catch early on (can happen if a quote is missed etc)

Note: since it'll be called at most 3 times per document, this method is not optimized too much.

Throws:
XMLStreamException

finishDTD

protected void finishDTD(boolean copyContents)
                  throws XMLStreamException
This method gets called to handle remainder of DOCTYPE declaration, essentially the optional internal subset. This class implements the basic "ignore it" functionality, but can optionally still store copy of the contents to the read buffer.

NOTE: Since this default implementation will be overridden by some sub-classes, make sure you do NOT change the method signature.

Parameters:
copyContents - If true, will copy contents of the internal subset of DOCTYPE declaration in the text buffer; if false, will just completely ignore the subset (if one found).
Throws:
XMLStreamException

readEndElem

protected final void readEndElem()
                          throws XMLStreamException
Method called to completely read a close tag, and update element stack appropriately (including checking that tag matches etc).

Throws:
XMLStreamException

ensureFinishToken

protected void ensureFinishToken()
                          throws XMLStreamException
Throws:
XMLStreamException

safeEnsureFinishToken

protected void safeEnsureFinishToken()

safeFinishToken

protected void safeFinishToken()

finishToken

protected void finishToken(boolean deferErrors)
                    throws XMLStreamException
Method called to read in contents of the token completely, if not yet read. Generally called when caller needs to access anything other than basic token type (except for elements), text contents or such.

Parameters:
deferErrors - Flag to enable storing an exception to a variable, instead of immediately throwing it. If true, will just store the exception; if false, will not store, just throw.
Throws:
XMLStreamException

readCoalescedText

protected void readCoalescedText(int currType,
                                 boolean deferErrors)
                          throws XMLStreamException
Method called to read the content of both current CDATA/CHARACTERS events, and all following consequtive events into the text buffer. At this point the current type is known, prefix (for CDATA) skipped, and initial consequtive contents (if any) read in.

Parameters:
deferErrors - Flag to enable storing an exception to a variable, instead of immediately throwing it. If true, will just store the exception; if false, will not store, just throw.
Throws:
XMLStreamException

readCDataSecondary

protected boolean readCDataSecondary(int shortestSegment)
                              throws XMLStreamException
Returns:
True if the whole CData section was completely read (we hit the end marker); false if a shorter segment was returned.
Throws:
XMLStreamException

readTextSecondary

protected final boolean readTextSecondary(int shortestSegment,
                                          boolean deferErrors)
                                   throws XMLStreamException
Parameters:
deferErrors - Flag to enable storing an exception to a variable, instead of immediately throwing it. If true, will just store the exception; if false, will not store, just throw.
Returns:
True if the text segment was completely read ('<' was hit, or in non-entity-expanding mode, a non-char entity); false if it may still continue
Throws:
XMLStreamException

skipWS

protected final boolean skipWS(char c)
                        throws XMLStreamException
Method that will skip any white space from input source(s)

Returns:
true If at least one white space was skipped; false if not (character passed was not white space)
Throws:
XMLStreamException

findEntity

protected EntityDecl findEntity(String id,
                                Object arg)
                         throws XMLStreamException
Description copied from class: StreamScanner
Abstract method for sub-classes to implement, for finding a declared general or parsed entity.

Specified by:
findEntity in class StreamScanner
Parameters:
id - Identifier of the entity to find
arg - Optional argument passed from caller; needed by DTD reader.
Throws:
XMLStreamException

handleUndeclaredEntity

protected void handleUndeclaredEntity(String id)
                               throws XMLStreamException
Description copied from class: StreamScanner
This method gets called if a declaration for an entity was not found in entity expanding mode (enabled by default for xml reader, always enabled for dtd reader).

Specified by:
handleUndeclaredEntity in class StreamScanner
Throws:
XMLStreamException

handleIncompleteEntityProblem

protected void handleIncompleteEntityProblem(WstxInputSource closing)
                                      throws XMLStreamException
Specified by:
handleIncompleteEntityProblem in class StreamScanner
Throws:
XMLStreamException

handleGreedyEntityProblem

protected void handleGreedyEntityProblem(WstxInputSource input)
                                  throws XMLStreamException
This problem gets reported if an entity tries to expand to a close tag matching start tag that did not came from the same entity (but from parent).

Throws:
XMLStreamException

throwNotTextualOrElem

protected void throwNotTextualOrElem(int type)

throwUnexpectedEOF

protected void throwUnexpectedEOF()
                           throws WstxException
Method called when we get an EOF within content tree

Throws:
WstxException

_constructUnexpectedInTyped

protected XMLStreamException _constructUnexpectedInTyped(int nextToken)
Method called to report a problem with


_constructTypeException

protected org.codehaus.stax2.typed.TypedXMLStreamException _constructTypeException(String msg,
                                                                                   String lexicalValue)

reportInvalidContent

protected void reportInvalidContent(int evtType)
                             throws XMLStreamException
Stub method implemented by validating parsers, to report content that's not valid for current element context. Defined at this level since some such problems need to be caught at low-level; however, details of error reports are not needed here.

Throws:
XMLStreamException


Copyright © 2011 Codehaus. All Rights Reserved.