public class ValidatingStreamReader extends TypedStreamReader
XMLStreamReader2
that builds on TypedStreamReader
and adds full DTD-handling
including DTD validationModifier and Type | Field and Description |
---|---|
(package private) org.codehaus.stax2.validation.XMLValidator |
mAutoDtdValidator
Validating reader keeps of automatically created DTD-based
validator, since its handling may differ from that of application
managed validators.
|
(package private) org.codehaus.stax2.validation.DTDValidationSchema |
mDTD
Combined DTD set, constructed from parsed internal and external
entities (which may have been set via override DTD functionality).
|
(package private) boolean |
mDtdValidatorSet
Flag that indicates whether a DTD validator has been automatically
set (as per DOCTYPE declaration or override)
|
protected org.codehaus.stax2.validation.ValidationProblemHandler |
mVldProbHandler
Custom validation problem handler, if any.
|
(package private) static java.lang.String |
STAX_PROP_ENTITIES |
(package private) static java.lang.String |
STAX_PROP_NOTATIONS |
_base64Decoder, _decoderFactory, MASK_TYPED_ACCESS_ARRAY, MASK_TYPED_ACCESS_BINARY, MIN_BINARY_CHUNK
ALL_WS_NO, ALL_WS_UNKNOWN, ALL_WS_YES, DOC_STANDALONE_NO, DOC_STANDALONE_UNKNOWN, DOC_STANDALONE_YES, MASK_GET_ELEMENT_TEXT, MASK_GET_TEXT, MASK_GET_TEXT_WITH_WRITER, MASK_GET_TEXT_XXX, mAttrCollector, mCfgCoalesceText, mCfgLazyParsing, mCfgReportTextAsChars, mCheckIndentation, mConfigFlags, mCurrTextLength, mCurrToken, mDocStandalone, mDtdPublicId, mDtdSystemId, mElementStack, mGeneralEntities, mOwner, mParseState, mPendingException, mReturnNullForDefaultNamespace, mRootLName, mRootPrefix, mSecondaryToken, mShortestTextSegment, mStDoctypeFound, mStEmptyElem, mStTextThreshold, mTextBuffer, mTokenState, mValidateText, mVldContent, mWsStatus, sPrefixXml, sPrefixXmlns, STATE_CLOSED, STATE_EPILOG, STATE_MULTIDOC_HACK, STATE_PROLOG, STATE_TREE, TOKEN_FULL_COALESCED, TOKEN_FULL_SINGLE, TOKEN_NOT_STARTED, TOKEN_PARTIAL_SINGLE, TOKEN_STARTED
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, mSymbols, mTokenInputCol, mTokenInputRow, mTokenInputTotal
CHAR_NULL, CHAR_SPACE, INT_NULL, INT_SPACE, MAX_UNICODE_CHAR, mCurrInputProcessed, mCurrInputRow, mCurrInputRowStart, mInputBuffer, mInputEnd, mInputPtr, mXml11
ATTRIBUTE, CDATA, CHARACTERS, COMMENT, DTD, END_DOCUMENT, END_ELEMENT, ENTITY_DECLARATION, ENTITY_REFERENCE, NAMESPACE, NOTATION_DECLARATION, PROCESSING_INSTRUCTION, SPACE, START_DOCUMENT, START_ELEMENT
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_CHECKS
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
Modifier | Constructor and Description |
---|---|
private |
ValidatingStreamReader(InputBootstrapper bs,
BranchingReaderSource input,
ReaderCreator owner,
ReaderConfig cfg,
InputElementStack elemStack,
boolean forER) |
Modifier and Type | Method and Description |
---|---|
protected DTDId |
constructDtdId(java.lang.String pubId,
java.lang.String sysId) |
protected DTDId |
constructDtdId(java.net.URI sysId) |
static ValidatingStreamReader |
createValidatingStreamReader(BranchingReaderSource input,
ReaderCreator owner,
ReaderConfig cfg,
InputBootstrapper bs,
boolean forER)
Factory method for constructing readers.
|
private DTDSubset |
findCachedSubset(DTDId id,
DTDSubset intSubset) |
private DTDSubset |
findDtdExtSubset(java.lang.String pubId,
java.lang.String sysId,
DTDSubset intSubset)
Method called by
finishDTD , to locate the specified
external DTD subset. |
protected void |
finishDTD(boolean copyContents)
This method gets called to handle remainder of DOCTYPE declaration,
essentially the optional internal subset.
|
java.lang.Object |
getProcessedDTD()
Note: DTD-handling sub-classes need to override this method.
|
org.codehaus.stax2.validation.DTDValidationSchema |
getProcessedDTDSchema()
Sub-class will override this method
|
java.lang.Object |
getProperty(java.lang.String name) |
protected void |
initValidation()
Method called right before handling the root element, by the base
class.
|
protected void |
reportInvalidContent(int evtType)
Method called by lower-level parsing code when invalid content
(anything inside element with 'empty' content spec; text inside
non-mixed element etc) is found during basic scanning.
|
void |
reportValidationProblem(org.codehaus.stax2.validation.XMLValidationProblem prob)
If there is an error handler established, call it.
|
private java.net.URI |
resolveExtSubsetPath(java.lang.String systemId)
Method called to resolve path to external DTD subset, given
system identifier.
|
org.codehaus.stax2.validation.ValidationProblemHandler |
setValidationProblemHandler(org.codehaus.stax2.validation.ValidationProblemHandler h) |
org.codehaus.stax2.validation.XMLValidator |
stopValidatingAgainst(org.codehaus.stax2.validation.XMLValidationSchema schema) |
org.codehaus.stax2.validation.XMLValidator |
stopValidatingAgainst(org.codehaus.stax2.validation.XMLValidator validator) |
org.codehaus.stax2.validation.XMLValidator |
validateAgainst(org.codehaus.stax2.validation.XMLValidationSchema schema) |
_base64Decoder, _constructTypeException, _decoderFactory, _verifyQName, createStreamReader, 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
_constructTypeException, _constructUnexpectedInTyped, checkCData, checkKeyword, close, closeCompletely, createElementStack, ensureFinishToken, findEntity, finishToken, fireSaxCharacterEvents, fireSaxCommentEvent, fireSaxEndElement, fireSaxPIEvent, fireSaxSpaceEvents, fireSaxStartElement, getAttributeCollector, getAttributeCount, getAttributeInfo, getAttributeLocalName, getAttributeName, getAttributeNamespace, getAttributePrefix, getAttributeType, getAttributeValue, getAttributeValue, getCharacterEncodingScheme, getCurrentEntityDecl, getDepth, getDTDInfo, getDTDInternalSubset, getDTDPublicId, getDTDRootName, getDTDSystemId, getElementText, getEncoding, getEndingByteOffset, getEndingCharOffset, getEndLocation, getEventType, getFeature, getInputElementStack, getLocalName, getLocation, getLocationInfo, getName, getNamespaceContext, getNamespaceCount, getNamespacePrefix, getNamespaceURI, getNamespaceURI, getNamespaceURI, getNonTransientNamespaceContext, getPIData, getPITarget, getPrefix, getPrefixedName, getStartingByteOffset, getStartingCharOffset, getText, getText, getTextCharacters, getTextCharacters, getTextLength, getTextStart, getVersion, handleEOF, handleGreedyEntityProblem, handleIncompleteEntityProblem, handleMultiDocStart, handleMultiDocXmlDecl, handleRootElem, handleUndeclaredEntity, hasConfigFlags, hasName, hasNext, hasText, isAttributeSpecified, isCharacters, isEmptyElement, isEndElement, isNamespaceAware, isPropertySupported, isStandalone, isStartElement, isWhiteSpace, next, nextTag, parseQuoted, readCDataSecondary, readCoalescedText, readEndElem, readTextSecondary, require, safeEnsureFinishToken, safeFinishToken, setFeature, setProperty, skipElement, skipEquals, skipWS, standaloneSet, throwNotTextualOrElem, throwUnexpectedEOF, withStartElement
_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, resolveCharOnlyEntity, resolveNonCharEntity, resolveSimpleEntity, skipCRLF, skipFullName, throwFromIOE, throwFromStrE, throwInvalidSpace, throwInvalidSpace, throwLazyError, throwNullChar, throwNullParent, throwParseError, throwParseError, throwUnexpectedChar, throwUnexpectedEOB, throwUnexpectedEOF, throwWfcException, tokenTypeDesc, verifyLimit
copyBufferStateFrom, findIllegalNameChar, findIllegalNmtokenChar, getCharDesc, isNameChar, isNameChar, isNameStartChar, isNameStartChar, isSpaceChar
static final java.lang.String STAX_PROP_ENTITIES
static final java.lang.String STAX_PROP_NOTATIONS
org.codehaus.stax2.validation.DTDValidationSchema mDTD
org.codehaus.stax2.validation.XMLValidator mAutoDtdValidator
boolean mDtdValidatorSet
protected org.codehaus.stax2.validation.ValidationProblemHandler mVldProbHandler
private ValidatingStreamReader(InputBootstrapper bs, BranchingReaderSource input, ReaderCreator owner, ReaderConfig cfg, InputElementStack elemStack, boolean forER) throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamException
public static ValidatingStreamReader createValidatingStreamReader(BranchingReaderSource input, ReaderCreator owner, ReaderConfig cfg, InputBootstrapper bs, boolean forER) throws javax.xml.stream.XMLStreamException
owner
- "Owner" of this reader, factory that created the reader;
needed for returning updated symbol table information after parsing.input
- Input source used to read the XML document.cfg
- Object that contains reader configuration info.bs
- Bootstrapper to use, for reading xml declaration etc.forER
- True if this reader is to be (configured to be) used by
an event reader. Will cause some changes to default settings, as
required by contracts Woodstox XMLEventReader implementation has
(with respect to lazy parsing, short text segments etc)javax.xml.stream.XMLStreamException
public java.lang.Object getProperty(java.lang.String name)
getProperty
in interface javax.xml.stream.XMLStreamReader
getProperty
in class BasicStreamReader
public java.lang.Object getProcessedDTD()
BasicStreamReader
Note: DTD-handling sub-classes need to override this method.
getProcessedDTD
in interface org.codehaus.stax2.DTDInfo
getProcessedDTD
in class BasicStreamReader
public org.codehaus.stax2.validation.DTDValidationSchema getProcessedDTDSchema()
BasicStreamReader
getProcessedDTDSchema
in interface org.codehaus.stax2.DTDInfo
getProcessedDTDSchema
in class BasicStreamReader
public org.codehaus.stax2.validation.XMLValidator validateAgainst(org.codehaus.stax2.validation.XMLValidationSchema schema) throws javax.xml.stream.XMLStreamException
validateAgainst
in interface org.codehaus.stax2.validation.Validatable
validateAgainst
in class BasicStreamReader
javax.xml.stream.XMLStreamException
public org.codehaus.stax2.validation.XMLValidator stopValidatingAgainst(org.codehaus.stax2.validation.XMLValidationSchema schema) throws javax.xml.stream.XMLStreamException
stopValidatingAgainst
in interface org.codehaus.stax2.validation.Validatable
stopValidatingAgainst
in class BasicStreamReader
javax.xml.stream.XMLStreamException
public org.codehaus.stax2.validation.XMLValidator stopValidatingAgainst(org.codehaus.stax2.validation.XMLValidator validator) throws javax.xml.stream.XMLStreamException
stopValidatingAgainst
in interface org.codehaus.stax2.validation.Validatable
stopValidatingAgainst
in class BasicStreamReader
javax.xml.stream.XMLStreamException
public org.codehaus.stax2.validation.ValidationProblemHandler setValidationProblemHandler(org.codehaus.stax2.validation.ValidationProblemHandler h)
setValidationProblemHandler
in interface org.codehaus.stax2.validation.Validatable
setValidationProblemHandler
in class BasicStreamReader
protected void finishDTD(boolean copyContents) throws javax.xml.stream.XMLStreamException
NOTE: Since this method overrides the default implementation, make sure you do NOT change the method signature.
finishDTD
in class BasicStreamReader
copyContents
- If true, will copy contents of the internal
subset of DOCTYPE declaration
in the text buffer (in addition to parsing it for actual use); if
false, will only do parsing.javax.xml.stream.XMLStreamException
public void reportValidationProblem(org.codehaus.stax2.validation.XMLValidationProblem prob) throws javax.xml.stream.XMLStreamException
reportValidationProblem
in interface InputProblemReporter
reportValidationProblem
in class StreamScanner
javax.xml.stream.XMLStreamException
protected void initValidation() throws javax.xml.stream.XMLStreamException
initValidation
in class BasicStreamReader
javax.xml.stream.XMLStreamException
private DTDSubset findDtdExtSubset(java.lang.String pubId, java.lang.String sysId, DTDSubset intSubset) throws javax.xml.stream.XMLStreamException
finishDTD
, to locate the specified
external DTD subset. Subset may be obtained from a cache, if cached
copy exists and is compatible; if not, it will be read from the
source identified by the public and/or system identifier passed.javax.xml.stream.XMLStreamException
private DTDSubset findCachedSubset(DTDId id, DTDSubset intSubset) throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamException
private java.net.URI resolveExtSubsetPath(java.lang.String systemId) throws java.io.IOException
java.io.IOException
protected DTDId constructDtdId(java.lang.String pubId, java.lang.String sysId) throws java.io.IOException
java.io.IOException
protected DTDId constructDtdId(java.net.URI sysId) throws java.io.IOException
java.io.IOException
protected void reportInvalidContent(int evtType) throws javax.xml.stream.XMLStreamException
reportInvalidContent
in class BasicStreamReader
evtType
- Type of event that contained unexpected contentjavax.xml.stream.XMLStreamException