Class 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
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
FieldsModifier and TypeFieldDescriptionprotected static final intprotected static final intThis mask covers all types for which basicgetText()method can be called.protected static final intThis mask is used with Stax2 getText() method (one that takes Writer as an argument): accepts even wider range of event types.protected static final intThis mask covers all types for which extendsgetTextXxxmethods can be called; which is less than those for whichgetText()can be called.protected final AttributeCollectorObject that stores information about currently accessible attributes.protected final booleanprotected final booleanprotected final booleanprotected intCounter used for determining whether we are to try to heuristically "intern" white space that seems to be used for indentation purposesprotected final intSet of locally stored configuration flagsprotected intSized of currentTextLength for CDATA, CHARACTERS, WHITESPACE.protected intCurrent state of the stream, ie token value returned bygetEventType().protected intStatus 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 StringPublic id of the DTD, if one exists and has been parsed.protected StringSystem id of the DTD, if one exists and has been parsed.protected final InputElementStackCurrently open element treeprotected Map<String,EntityDecl> Entities parsed from internal/external DTD subsets.protected final ReaderCreatorObject to notify about shared stuff, such as symbol tables, as well as to query for additional config settings if necessary.protected intMain parsing/tokenization state (STATE_xxx)protected XMLStreamExceptionDue to the way Stax API does not allow throwing stream exceptions from many methods for which Woodstox would need to throw one (especiallygetTextand its variations), we may need to delay throwing an exception untilnext()is called next time.protected booleanConfiguration fromWstxInputProperties#RETURN_NULL_FOR_DEFAULT_NAMESPACEprotected StringLocal name of root element, as dictated by DOCTYPE declaration; null if no DOCTYPE declaration.protected StringPrefix of root element, as dictated by DOCTYPE declaration; null if no DOCTYPE declaration, or no root prefixprotected intAdditional information sometimes stored (when generating dummy events in multi-doc mode, for example) temporarily whenmCurrTokenis already populated.protected final intMinimum number of characters parser can return as partial text segment, IF it's not required to coalesce adjacent text segments.protected booleanprotected booleanprotected final intThreshold 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 final TextBufferTextBuffer mostly used to collect non-element textual content (text, CDATA, comment content, pi data)protected intState of the current token; one of M_ - constants from above.protected booleanFlag that indicates that textual content (CDATA, CHARACTERS) is to be validated within current element's scope.protected intMode information needed at this level; mostly to check what kind of textual content (if any) is allowed in current element context.protected intStatus of current (text) token's "whitespaceness", that is, whether it is or is not all white space.protected static final Stringprotected static final StringFields 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, mAllowXml11EscapedCharsInXml10, mCachedEntities, mCfgNsEnabled, mCfgReplaceEntities, mCfgTreatCharRefsAsEntities, mConfig, mCurrDepth, mCurrEntity, mCurrName, mDocInputEncoding, mDocXmlEncoding, mDocXmlVersion, mEntityExpansionCount, mEntityResolver, mInput, mInputTopDepth, mNameBuffer, mNormalizeLFs, mRootInput, mTokenInputCol, mTokenInputRow, mTokenInputTotalFields 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, mXml11Fields inherited from interface com.ctc.wstx.cfg.InputConfigFlags
CFG_ALLOW_XML11_ESCAPED_CHARS_IN_XML10, CFG_AUTO_CLOSE_INPUT, CFG_CACHE_DTDS, CFG_CACHE_DTDS_BY_PUBLIC_ID, CFG_COALESCE_TEXT, CFG_INTERN_NAMES, CFG_INTERN_NS_URIS, CFG_JAXP_FEATURE_SECURE_PROCESSING, 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_CHECKSFields 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_DECLFields 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_ELEMENTFields inherited from interface org.codehaus.stax2.XMLStreamReader2
FEATURE_DTD_OVERRIDE -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedBasicStreamReader(InputBootstrapper bs, BranchingReaderSource input, ReaderCreator owner, ReaderConfig cfg, InputElementStack elemStack, boolean forER) -
Method Summary
Modifier and TypeMethodDescriptionprotected org.codehaus.stax2.typed.TypedXMLStreamException_constructTypeException(String msg, String lexicalValue) protected XMLStreamException_constructUnexpectedInTyped(int nextToken) Method called to report a problem withprotected voidprotected StringcheckKeyword(char c, String expected) voidclose()Note: as per StAX 1.0 specs, this method does NOT close the underlying input reader.voidprotected static InputElementStackprotected voidprotected EntityDeclfindEntity(String id, Object arg) Abstract method for sub-classes to implement, for finding a declared general or parsed entity.protected voidfinishDTD(boolean copyContents) This method gets called to handle remainder of DOCTYPE declaration, essentially the optional internal subset.protected voidfinishToken(boolean deferErrors) Method called to read in contents of the token completely, if not yet read.voidvoidvoidvoidvoidvoidfireSaxStartElement(ContentHandler h, Attributes attrs) 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.intorg.codehaus.stax2.AttributeInfogetAttributeLocalName(int index) getAttributeName(int index) getAttributeNamespace(int index) getAttributePrefix(int index) getAttributeType(int index) getAttributeValue(int index) getAttributeValue(String nsURI, String localName) As per Stax (1.0) specs, needs to return whatever xml declaration claimed encoding is, if any; or null if no xml declaration found.intgetDepth()org.codehaus.stax2.DTDInfoSince this class implementsDTDInfo, method can just returnthis.From StAX specs: Reads the content of a text-only element, an exception is thrown if this is not a text-only element.As per Stax (1.0) specs, needs to return whatever parser determined the encoding was, if it was able to figure it out.longlongfinal org.codehaus.stax2.XMLStreamLocation2intReturns type of the last event returned; or START_DOCUMENT before any events has been explicitly returned.getFeature(String name) Deprecated.Method needed by classes (like stream writer implementations) that want to have efficient direct access to element stack implementationfinal LocationReturns 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).final org.codehaus.stax2.LocationInfoLocation information is always accessible, for this reader.getName()intgetNamespacePrefix(int index) getNamespaceURI(int index) getNamespaceURI(String prefix) Note: DTD-handling sub-classes need to override this method.org.codehaus.stax2.validation.DTDValidationSchemaSub-class will override this methodgetProperty(String name) longlonggetText()intMethod similar togetText(), except that it just uses provided Writer to write all textual content.char[]intgetTextCharacters(int sourceStart, char[] target, int targetStart, int len) intintprotected inthandleEOF(boolean isProlog) protected voidThis 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 voidprotected inthandleMultiDocStart(int nextEvent) Method called when an event was encountered that indicates document boundary in multi-doc mode.protected voidprotected voidhandleRootElem(char c) protected voidThis 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 final booleanhasConfigFlags(int flags) booleanhasName()booleanhasNext()booleanhasText()protected voidMethod called right before the document root element is handled.booleanisAttributeSpecified(int index) booleanbooleanbooleanbooleanbooleanisPropertySupported(String name) booleanbooleanboolean05-Apr-2004, TSa: Could try to determine status when text is actually read.final intnext()intnextTag()protected final voidparseQuoted(String name, char quoteChar, TextBuffer tbuf) Method called to parse quoted xml declaration pseudo-attribute values.protected booleanreadCDataSecondary(int shortestSegment) protected voidreadCoalescedText(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 final voidMethod called to completely read a close tag, and update element stack appropriately (including checking that tag matches etc).protected final booleanreadTextSecondary(int shortestSegment, boolean deferErrors) protected voidreportInvalidContent(int evtType) Stub method implemented by validating parsers, to report content that's not valid for current element context.voidprotected voidprotected voidvoidsetFeature(String name, Object value) Deprecated.booleansetProperty(String name, Object value) org.codehaus.stax2.validation.ValidationProblemHandlersetValidationProblemHandler(org.codehaus.stax2.validation.ValidationProblemHandler h) voidprotected final charskipEquals(String name, String eofMsg) Method that checks that input following is of form '[S]* '=' [S]*' (as per XML specs, production #25).protected final booleanskipWS(char c) Method that will skip any white space from input source(s)booleanorg.codehaus.stax2.validation.XMLValidatorstopValidatingAgainst(org.codehaus.stax2.validation.XMLValidationSchema schema) org.codehaus.stax2.validation.XMLValidatorstopValidatingAgainst(org.codehaus.stax2.validation.XMLValidator validator) protected voidthrowNotTextualOrElem(int type) protected voidMethod called when we get an EOF within content treeorg.codehaus.stax2.validation.XMLValidatorvalidateAgainst(org.codehaus.stax2.validation.XMLValidationSchema schema) withStartElement(ElemCallback cb, Location loc) Method called byDefaultEventAllocatorto get double-indirection necessary for constructing start element events.Methods inherited from class com.ctc.wstx.sr.StreamScanner
_reportProblem, _reportProblem, closeAllInput, constructFromIOE, constructLimitViolation, constructNullCharException, constructWfcException, ensureInput, expandBy50Pct, expandEntity, fullyResolveEntity, getConfig, 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, verifyLimitMethods inherited from class com.ctc.wstx.io.WstxInputData
copyBufferStateFrom, findIllegalNameChar, findIllegalNmtokenChar, getCharDesc, isNameChar, isNameChar, isNameStartChar, isNameStartChar, isSpaceCharMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.codehaus.stax2.LocationInfo
getCurrentLocation, getStartLocationMethods 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
-
Field Details
-
MASK_GET_TEXT
protected static final int MASK_GET_TEXTThis mask covers all types for which basicgetText()method can be called.- See Also:
-
MASK_GET_TEXT_XXX
protected static final int MASK_GET_TEXT_XXXThis mask covers all types for which extendsgetTextXxxmethods can be called; which is less than those for whichgetText()can be called. Specifically,DTDandENTITY_REFERENCEtypes do not support these extended- See Also:
-
MASK_GET_TEXT_WITH_WRITER
protected static final int MASK_GET_TEXT_WITH_WRITERThis mask is used with Stax2 getText() method (one that takes Writer as an argument): accepts even wider range of event types.- See Also:
-
MASK_GET_ELEMENT_TEXT
protected static final int MASK_GET_ELEMENT_TEXT- See Also:
-
sPrefixXml
-
sPrefixXmlns
-
mConfigFlags
protected final int mConfigFlagsSet of locally stored configuration flags -
mCfgCoalesceText
protected final boolean mCfgCoalesceText -
mCfgReportTextAsChars
protected final boolean mCfgReportTextAsChars -
mCfgLazyParsing
protected final boolean mCfgLazyParsing -
mShortestTextSegment
protected final int mShortestTextSegmentMinimum number of characters parser can return as partial text segment, IF it's not required to coalesce adjacent text segments. -
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 mDocStandaloneStatus 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. -
mRootPrefix
Prefix of root element, as dictated by DOCTYPE declaration; null if no DOCTYPE declaration, or no root prefix -
mRootLName
Local name of root element, as dictated by DOCTYPE declaration; null if no DOCTYPE declaration. -
mDtdPublicId
Public id of the DTD, if one exists and has been parsed. -
mDtdSystemId
System id of the DTD, if one exists and has been parsed. -
mTextBuffer
TextBuffer mostly used to collect non-element textual content (text, CDATA, comment content, pi data) -
mElementStack
Currently open element tree -
mAttrCollector
Object that stores information about currently accessible attributes. -
mStDoctypeFound
protected boolean mStDoctypeFound -
mTokenState
protected int mTokenStateState 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 mStTextThresholdThreshold 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) -
mCurrTextLength
protected int mCurrTextLengthSized of currentTextLength for CDATA, CHARACTERS, WHITESPACE. When segmenting, this records to size of all the segments so we can track if the text length has exceeded limits. -
mStEmptyElem
protected boolean mStEmptyElem -
mParseState
protected int mParseStateMain parsing/tokenization state (STATE_xxx) -
mCurrToken
protected int mCurrTokenCurrent state of the stream, ie token value returned bygetEventType(). Needs to be initialized to START_DOCUMENT, since that's the state it starts in. -
mSecondaryToken
protected int mSecondaryTokenAdditional information sometimes stored (when generating dummy events in multi-doc mode, for example) temporarily whenmCurrTokenis already populated. -
mWsStatus
protected int mWsStatusStatus of current (text) token's "whitespaceness", that is, whether it is or is not all white space. -
mValidateText
protected boolean mValidateTextFlag that indicates that textual content (CDATA, CHARACTERS) is to be validated within current element's scope. Enabled if one of validators returnsXMLValidator.CONTENT_ALLOW_VALIDATABLE_TEXT, and will prevent lazy parsing of text. -
mCheckIndentation
protected int mCheckIndentationCounter used for determining whether we are to try to heuristically "intern" white space that seems to be used for indentation purposes -
mPendingException
Due to the way Stax API does not allow throwing stream exceptions from many methods for which Woodstox would need to throw one (especiallygetTextand its variations), we may need to delay throwing an exception untilnext()is called next time. If so, this variable holds the pending stream exception. -
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 mVldContentMode information needed at this level; mostly to check what kind of textual content (if any) is allowed in current element context. Constants come fromXMLValidator, (likeXMLValidator.CONTENT_ALLOW_VALIDATABLE_TEXT). Only used inside tree; ignored for prolog/epilog (which have straight-forward static rules). -
mReturnNullForDefaultNamespace
protected boolean mReturnNullForDefaultNamespaceConfiguration fromWstxInputProperties#RETURN_NULL_FOR_DEFAULT_NAMESPACE- Since:
- 4.1.2
-
-
Constructor Details
-
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 Details
-
createElementStack
-
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:
getCharacterEncodingSchemein interfaceXMLStreamReader
-
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 aReader), it should return null.- Specified by:
getEncodingin interfaceXMLStreamReader
-
getVersion
- Specified by:
getVersionin interfaceXMLStreamReader
-
isStandalone
public boolean isStandalone()- Specified by:
isStandalonein interfaceXMLStreamReader
-
standaloneSet
public boolean standaloneSet()- Specified by:
standaloneSetin interfaceXMLStreamReader
-
getProperty
- Specified by:
getPropertyin interfaceXMLStreamReader
-
getAttributeCount
public int getAttributeCount()- Specified by:
getAttributeCountin interfaceXMLStreamReader
-
getAttributeLocalName
- Specified by:
getAttributeLocalNamein interfaceXMLStreamReader
-
getAttributeName
- Specified by:
getAttributeNamein interfaceXMLStreamReader
-
getAttributeNamespace
- Specified by:
getAttributeNamespacein interfaceXMLStreamReader
-
getAttributePrefix
- Specified by:
getAttributePrefixin interfaceXMLStreamReader
-
getAttributeType
- Specified by:
getAttributeTypein interfaceXMLStreamReader
-
getAttributeValue
- Specified by:
getAttributeValuein interfaceXMLStreamReader
-
getAttributeValue
- Specified by:
getAttributeValuein interfaceXMLStreamReader
-
getElementText
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:
getElementTextin interfaceXMLStreamReader- 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:
getEventTypein interfaceXMLStreamReader
-
getLocalName
- Specified by:
getLocalNamein interfaceXMLStreamReader
-
getName
- Specified by:
getNamein interfaceXMLStreamReader
-
getNamespaceContext
- Specified by:
getNamespaceContextin interfaceXMLStreamReader
-
getNamespaceCount
public int getNamespaceCount()- Specified by:
getNamespaceCountin interfaceXMLStreamReader
-
getNamespacePrefix
- Specified by:
getNamespacePrefixin interfaceXMLStreamReader
-
getNamespaceURI
- Specified by:
getNamespaceURIin interfaceXMLStreamReader
-
getNamespaceURI
- Specified by:
getNamespaceURIin interfaceXMLStreamReader
-
getNamespaceURI
- Specified by:
getNamespaceURIin interfaceXMLStreamReader
-
getPIData
- Specified by:
getPIDatain interfaceXMLStreamReader
-
getPITarget
- Specified by:
getPITargetin interfaceXMLStreamReader
-
getPrefix
- Specified by:
getPrefixin interfaceXMLStreamReader
-
getText
- Specified by:
getTextin interfaceXMLStreamReader
-
getTextCharacters
public char[] getTextCharacters()- Specified by:
getTextCharactersin interfaceXMLStreamReader
-
getTextCharacters
public int getTextCharacters(int sourceStart, char[] target, int targetStart, int len) - Specified by:
getTextCharactersin interfaceXMLStreamReader
-
getTextLength
public int getTextLength()- Specified by:
getTextLengthin interfaceXMLStreamReader
-
getTextStart
public int getTextStart()- Specified by:
getTextStartin interfaceXMLStreamReader
-
hasName
public boolean hasName()- Specified by:
hasNamein interfaceXMLStreamReader
-
hasNext
public boolean hasNext()- Specified by:
hasNextin interfaceXMLStreamReader
-
hasText
public boolean hasText()- Specified by:
hasTextin interfaceXMLStreamReader
-
isAttributeSpecified
public boolean isAttributeSpecified(int index) - Specified by:
isAttributeSpecifiedin interfaceXMLStreamReader
-
isCharacters
public boolean isCharacters()- Specified by:
isCharactersin interfaceXMLStreamReader
-
isEndElement
public boolean isEndElement()- Specified by:
isEndElementin interfaceXMLStreamReader
-
isStartElement
public boolean isStartElement()- Specified by:
isStartElementin interfaceXMLStreamReader
-
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:
isWhiteSpacein interfaceXMLStreamReader
-
require
- Specified by:
requirein interfaceXMLStreamReader- Throws:
XMLStreamException
-
next
- Specified by:
nextin interfaceXMLStreamReader- Throws:
XMLStreamException
-
nextTag
- Specified by:
nextTagin interfaceXMLStreamReader- Throws:
XMLStreamException
-
close
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_INPUTis set to true.- Specified by:
closein interfaceXMLStreamReader- Throws:
XMLStreamException
-
getFeature
Deprecated.- Specified by:
getFeaturein interfaceorg.codehaus.stax2.XMLStreamReader2
-
setFeature
Deprecated.- Specified by:
setFeaturein interfaceorg.codehaus.stax2.XMLStreamReader2
-
isPropertySupported
- Specified by:
isPropertySupportedin interfaceorg.codehaus.stax2.XMLStreamReader2
-
setProperty
- Specified by:
setPropertyin interfaceorg.codehaus.stax2.XMLStreamReader2- Parameters:
name- Name of the property to setvalue- 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
- Specified by:
skipElementin interfaceorg.codehaus.stax2.XMLStreamReader2- Throws:
XMLStreamException
-
getAttributeInfo
- Specified by:
getAttributeInfoin interfaceorg.codehaus.stax2.XMLStreamReader2- Throws:
XMLStreamException
-
getDTDInfo
Since this class implementsDTDInfo, method can just returnthis.- Specified by:
getDTDInfoin interfaceorg.codehaus.stax2.XMLStreamReader2- Throws:
XMLStreamException
-
getLocationInfo
public final org.codehaus.stax2.LocationInfo getLocationInfo()Location information is always accessible, for this reader.- Specified by:
getLocationInfoin interfaceorg.codehaus.stax2.XMLStreamReader2
-
getText
Method similar togetText(), 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:
getTextin interfaceorg.codehaus.stax2.XMLStreamReader2- Parameters:
w- Writer to use for writing textual contentspreserveContents- If true, reader has to preserve contents so that further calls togetTextwill 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 togetTextis not guaranteed to return meaningful data.- Returns:
- Number of characters written to the reader
- Throws:
IOExceptionXMLStreamException
-
getDepth
public int getDepth()- Specified by:
getDepthin interfaceorg.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
- Specified by:
isEmptyElementin interfaceorg.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
- Specified by:
getNonTransientNamespaceContextin interfaceorg.codehaus.stax2.XMLStreamReader2
-
getPrefixedName
- Specified by:
getPrefixedNamein interfaceorg.codehaus.stax2.XMLStreamReader2
-
closeCompletely
- Specified by:
closeCompletelyin interfaceorg.codehaus.stax2.XMLStreamReader2- Throws:
XMLStreamException
-
getProcessedDTD
Note: DTD-handling sub-classes need to override this method.
- Specified by:
getProcessedDTDin interfaceorg.codehaus.stax2.DTDInfo
-
getDTDRootName
- Specified by:
getDTDRootNamein interfaceorg.codehaus.stax2.DTDInfo
-
getDTDPublicId
- Specified by:
getDTDPublicIdin interfaceorg.codehaus.stax2.DTDInfo
-
getDTDSystemId
- Specified by:
getDTDSystemIdin interfaceorg.codehaus.stax2.DTDInfo
-
getDTDInternalSubset
- Specified by:
getDTDInternalSubsetin interfaceorg.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:
getProcessedDTDSchemain interfaceorg.codehaus.stax2.DTDInfo
-
getStartingByteOffset
public long getStartingByteOffset()- Specified by:
getStartingByteOffsetin interfaceorg.codehaus.stax2.LocationInfo
-
getStartingCharOffset
public long getStartingCharOffset()- Specified by:
getStartingCharOffsetin interfaceorg.codehaus.stax2.LocationInfo
-
getEndingByteOffset
- Specified by:
getEndingByteOffsetin interfaceorg.codehaus.stax2.LocationInfo- Throws:
XMLStreamException
-
getEndingCharOffset
- Specified by:
getEndingCharOffsetin interfaceorg.codehaus.stax2.LocationInfo- Throws:
XMLStreamException
-
getLocation
Description copied from class:StreamScannerReturns 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:
getLocationin interfaceInputProblemReporter- Specified by:
getLocationin interfaceorg.codehaus.stax2.LocationInfo- Specified by:
getLocationin interfaceXMLStreamReader- Specified by:
getLocationin classStreamScanner
-
getEndLocation
- Specified by:
getEndLocationin interfaceorg.codehaus.stax2.LocationInfo- Throws:
XMLStreamException
-
validateAgainst
public org.codehaus.stax2.validation.XMLValidator validateAgainst(org.codehaus.stax2.validation.XMLValidationSchema schema) throws XMLStreamException - Specified by:
validateAgainstin interfaceorg.codehaus.stax2.validation.Validatable- Throws:
XMLStreamException
-
stopValidatingAgainst
public org.codehaus.stax2.validation.XMLValidator stopValidatingAgainst(org.codehaus.stax2.validation.XMLValidationSchema schema) throws XMLStreamException - Specified by:
stopValidatingAgainstin interfaceorg.codehaus.stax2.validation.Validatable- Throws:
XMLStreamException
-
stopValidatingAgainst
public org.codehaus.stax2.validation.XMLValidator stopValidatingAgainst(org.codehaus.stax2.validation.XMLValidator validator) throws XMLStreamException - Specified by:
stopValidatingAgainstin interfaceorg.codehaus.stax2.validation.Validatable- Throws:
XMLStreamException
-
setValidationProblemHandler
public org.codehaus.stax2.validation.ValidationProblemHandler setValidationProblemHandler(org.codehaus.stax2.validation.ValidationProblemHandler h) - Specified by:
setValidationProblemHandlerin interfaceorg.codehaus.stax2.validation.Validatable
-
getCurrentEntityDecl
- Specified by:
getCurrentEntityDeclin interfaceStreamReaderImpl
-
withStartElement
Method called byDefaultEventAllocatorto get double-indirection necessary for constructing start element events.- Specified by:
withStartElementin interfaceStreamReaderImpl- Returns:
- Null, if stream does not point to start element; whatever callback returns otherwise.
-
isNamespaceAware
public boolean isNamespaceAware()- Specified by:
isNamespaceAwarein interfaceStreamReaderImpl
-
getInputElementStack
Method needed by classes (like stream writer implementations) that want to have efficient direct access to element stack implementation- Specified by:
getInputElementStackin interfaceStreamReaderImpl
-
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:
getAttributeCollectorin interfaceStreamReaderImpl
-
fireSaxStartElement
- Throws:
SAXException
-
fireSaxEndElement
- Throws:
SAXException
-
fireSaxCharacterEvents
- Throws:
XMLStreamExceptionSAXException
-
fireSaxSpaceEvents
- Throws:
XMLStreamExceptionSAXException
-
fireSaxCommentEvent
- Throws:
XMLStreamExceptionSAXException
-
fireSaxPIEvent
- Throws:
XMLStreamExceptionSAXException
-
hasConfigFlags
protected final boolean hasConfigFlags(int flags) -
checkKeyword
- Returns:
- Null, if keyword matches ok; String that contains erroneous keyword if not.
- Throws:
XMLStreamException
-
checkCData
- Throws:
XMLStreamException
-
handleRootElem
- Throws:
XMLStreamException
-
initValidation
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
- 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
- Throws:
XMLStreamException
-
skipEquals
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
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
Method called to completely read a close tag, and update element stack appropriately (including checking that tag matches etc).- Throws:
XMLStreamException
-
ensureFinishToken
- Throws:
XMLStreamException
-
safeEnsureFinishToken
protected void safeEnsureFinishToken() -
safeFinishToken
protected void safeFinishToken() -
finishToken
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
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
- 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
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
Description copied from class:StreamScannerAbstract method for sub-classes to implement, for finding a declared general or parsed entity.- Specified by:
findEntityin classStreamScanner- Parameters:
id- Identifier of the entity to findarg- Optional argument passed from caller; needed by DTD reader.- Throws:
XMLStreamException
-
handleUndeclaredEntity
Description copied from class:StreamScannerThis 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:
handleUndeclaredEntityin classStreamScanner- Throws:
XMLStreamException
-
handleIncompleteEntityProblem
- Specified by:
handleIncompleteEntityProblemin classStreamScanner- Throws:
XMLStreamException
-
handleGreedyEntityProblem
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
Method called when we get an EOF within content tree- Throws:
WstxException
-
_constructUnexpectedInTyped
Method called to report a problem with -
_constructTypeException
-
reportInvalidContent
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.- Parameters:
evtType- Type of event that contained unexpected content- Throws:
XMLStreamException
-