|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.ctc.wstx.sr.InputElementStack
public abstract class InputElementStack
Shared base class that defines API stream reader uses to communicate with the element stack implementation, independent of whether it's operating in namespace-aware or non-namespace modes. Element stack class is used for storing nesting information about open elements, and for namespace-aware mode, also information about namespaces active (including default namespace), during parsing of XML input.
This class also implements NamespaceContext
, since it has all
the information necessary, so parser can just return element stack
instance as necesary.
Field Summary | |
---|---|
protected ReaderConfig |
mConfig
|
protected int |
mIdAttrIndex
Index of the attribute with type of ID, if known (most likely due to Xml:id support); -1 if not available, or no ID attribute for current element. |
protected InputProblemReporter |
mReporter
|
protected XMLValidator |
mValidator
Optional validator object that will get called if set, and that can validate xml content. |
Constructor Summary | |
---|---|
protected |
InputElementStack(ReaderConfig cfg)
|
Method Summary | |
---|---|
abstract int |
addDefaultAttribute(java.lang.String localName,
java.lang.String uri,
java.lang.String prefix,
java.lang.String value)
Method called by actual validator instances when attributes with default values have no explicit values for the element; if so, default value needs to be added as if it was parsed from the element. |
abstract void |
addNsBinding(java.lang.String prefix,
java.lang.String uri)
|
protected XMLValidator |
addValidator(XMLValidator vld)
|
protected void |
connectReporter(InputProblemReporter rep)
|
abstract BaseNsContext |
createNonTransientNsContext(javax.xml.stream.Location loc)
Method called to construct a non-transient NamespaceContext instance; generally needed when creating events to return from event-based iterators. |
abstract int |
findAttributeIndex(java.lang.String nsURI,
java.lang.String localName)
|
protected abstract AttributeCollector |
getAttrCollector()
Method called by BasicStreamReader , to retrieve the
attribute collector it needs for some direct access. |
abstract int |
getAttributeCount()
This method returns number of attributes accessible from within currently active start element. |
java.lang.String |
getAttributeLocalName(int index)
|
java.lang.String |
getAttributeNamespace(int index)
|
java.lang.String |
getAttributePrefix(int index)
|
java.lang.String |
getAttributeType(int index)
|
java.lang.String |
getAttributeValue(int index)
|
java.lang.String |
getAttributeValue(java.lang.String nsURI,
java.lang.String localName)
|
java.lang.String |
getBaseUri()
|
abstract javax.xml.namespace.QName |
getCurrentElementName()
Method that can be used to access name information of the innermost (top) element in the element stack. |
abstract int |
getCurrentNsCount()
|
abstract java.lang.String |
getDefaultNsURI()
|
abstract int |
getDepth()
|
int |
getIdAttributeIndex()
Default implementation just indicates it does not know of such attributes; this because that requires DTD information that only some implementations have. |
abstract java.lang.String |
getLocalName()
|
abstract java.lang.String |
getLocalNsPrefix(int index)
|
abstract java.lang.String |
getLocalNsURI(int index)
|
abstract java.lang.String |
getNamespaceURI(java.lang.String prefix)
Method that can be called by the validator to resolve a namespace prefix of the currently active top-level element. |
int |
getNotationAttributeIndex()
Default implementation just indicates it does not know of such attributes; this because that requires DTD information that only some implementations have. |
abstract java.lang.String |
getNsURI()
|
abstract java.lang.String |
getPrefix()
|
abstract java.lang.String |
getPrefix(java.lang.String nsURI)
|
abstract java.util.Iterator |
getPrefixes(java.lang.String nsURI)
|
abstract java.lang.String |
getTopElementDesc()
|
abstract int |
getTotalNsCount()
|
javax.xml.stream.Location |
getValidationLocation()
Method that will return the location that best represents current location within document to be validated, if such information is available. |
java.lang.String |
getXmlVersion()
Method that validator can call to figure out which xml version document being validated declared (if none, "1.0" is assumed as per xml specifications 1.0 and 1.1). |
abstract boolean |
isEmpty()
|
abstract boolean |
isNamespaceAware()
|
boolean |
isNotationDeclared(java.lang.String name)
|
abstract boolean |
isPrefixLocallyDeclared(java.lang.String internedPrefix)
|
boolean |
isUnparsedEntityDeclared(java.lang.String name)
|
abstract boolean |
matches(java.lang.String prefix,
java.lang.String localName)
|
protected void |
normalizeXmlIdAttr(AttributeCollector ac,
int ix)
Method called to normalize value of an ID attribute, specified using name xml:id, when support for Xml:id specification enabled. |
abstract int |
pop()
Method called by the stream reader to remove the topmost (start) element from the stack; called when an end element is encountered during parsing. |
abstract void |
push(java.lang.String fullName)
Method called by the stream reader to add new (start) element into the stack in non-namespace mode; called when a start element is encountered during parsing, but only in non-namespace mode. |
abstract void |
push(java.lang.String prefix,
java.lang.String localName)
Method called by the stream reader to add new (start) element into the stack in namespace-aware mode; called when a start element is encountered during parsing, but only in ns-aware mode. |
protected boolean |
reallyValidating()
This is a method called by the reader to ensure that we have at least one 'real' validator. |
void |
reportProblem(XMLValidationProblem problem)
Method called by the validator, upon encountering a validation problem. |
abstract int |
resolveAndValidateElement()
Method called to resolve element and attribute namespaces (in namespace-aware mode), and do optional validation using pluggable validator object. |
protected abstract void |
setAutomaticDTDValidator(XMLValidator validator,
NsDefaultProvider nsDefs)
Method called to connect the automatically handled DTD validator (one detected from DOCTYPE, loaded and completely handled by the stream reader without application calling validation methods). |
XMLValidator |
stopValidatingAgainst(XMLValidationSchema schema)
|
XMLValidator |
stopValidatingAgainst(XMLValidator validator)
|
XMLValidator |
validateAgainst(XMLValidationSchema schema)
|
void |
validateText(TextBuffer tb,
boolean lastTextSegment)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected final ReaderConfig mConfig
protected InputProblemReporter mReporter
protected XMLValidator mValidator
protected int mIdAttrIndex
Constructor Detail |
---|
protected InputElementStack(ReaderConfig cfg)
Method Detail |
---|
protected void connectReporter(InputProblemReporter rep)
protected XMLValidator addValidator(XMLValidator vld)
protected abstract void setAutomaticDTDValidator(XMLValidator validator, NsDefaultProvider nsDefs)
public XMLValidator validateAgainst(XMLValidationSchema schema) throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamException
public XMLValidator stopValidatingAgainst(XMLValidationSchema schema) throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamException
public XMLValidator stopValidatingAgainst(XMLValidator validator) throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamException
protected boolean reallyValidating()
DTDValidatorBase
or returns true for
reallyValidating
.
!!! TODO: remove need for this method (and method itself) with Woodstox 4.0, by adding necessary support in Stax2 XMLValidator interface.
protected abstract AttributeCollector getAttrCollector()
BasicStreamReader
, to retrieve the
attribute collector it needs for some direct access.
public abstract BaseNsContext createNonTransientNsContext(javax.xml.stream.Location loc)
public abstract void push(java.lang.String prefix, java.lang.String localName)
public abstract void push(java.lang.String fullName)
public abstract int pop() throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamException
public abstract int resolveAndValidateElement() throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamException
public abstract int getAttributeCount()
ValidationContext
Note: this method is only guaranteed to be callable during execution
of XMLValidator
methods
XMLValidator.validateElementStart(java.lang.String, java.lang.String, java.lang.String)
,
XMLValidator.validateAttribute(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
and
XMLValidator.validateElementAndAttributes()
. At other times
implementations may choose to allow it to be called (for example,
with information regarding last start element processed), to throw
a IllegalArgumentException
, or to return 0 to indicate no
attribute information is available.
Also note that whether defaulted attributes (attributes for which values are only available via attribute defaulting) are accessible depends on exact time when this method is called, and in general can not be assumed to function reliably.
getAttributeCount
in interface AttributeInfo
getAttributeCount
in interface ValidationContext
public abstract int findAttributeIndex(java.lang.String nsURI, java.lang.String localName)
findAttributeIndex
in interface AttributeInfo
findAttributeIndex
in interface ValidationContext
public final int getIdAttributeIndex()
getIdAttributeIndex
in interface AttributeInfo
public final int getNotationAttributeIndex()
getNotationAttributeIndex
in interface AttributeInfo
public abstract java.lang.String getNamespaceURI(java.lang.String prefix)
ValidationContext
getNamespaceURI
in interface javax.xml.namespace.NamespaceContext
getNamespaceURI
in interface ValidationContext
public abstract java.lang.String getPrefix(java.lang.String nsURI)
getPrefix
in interface javax.xml.namespace.NamespaceContext
public abstract java.util.Iterator getPrefixes(java.lang.String nsURI)
getPrefixes
in interface javax.xml.namespace.NamespaceContext
public final java.lang.String getXmlVersion()
ValidationContext
getXmlVersion
in interface ValidationContext
public java.lang.String getAttributeLocalName(int index)
getAttributeLocalName
in interface ValidationContext
public java.lang.String getAttributeNamespace(int index)
getAttributeNamespace
in interface ValidationContext
public java.lang.String getAttributePrefix(int index)
getAttributePrefix
in interface ValidationContext
public java.lang.String getAttributeValue(int index)
getAttributeValue
in interface ValidationContext
public java.lang.String getAttributeValue(java.lang.String nsURI, java.lang.String localName)
getAttributeValue
in interface ValidationContext
public boolean isNotationDeclared(java.lang.String name)
isNotationDeclared
in interface ValidationContext
public boolean isUnparsedEntityDeclared(java.lang.String name)
isUnparsedEntityDeclared
in interface ValidationContext
public java.lang.String getBaseUri()
getBaseUri
in interface ValidationContext
public abstract javax.xml.namespace.QName getCurrentElementName()
ValidationContext
getCurrentElementName
in interface ValidationContext
public javax.xml.stream.Location getValidationLocation()
ValidationContext
Note: it is likely that even when a location is known, it may not be very accurate; for example, when attributes are validated, it is possible that they all would point to a single location that may point to the start of the element that contains attributes.
getValidationLocation
in interface ValidationContext
public void reportProblem(XMLValidationProblem problem) throws XMLValidationException
ValidationContext
ValidationProblemHandler
be set by the application,
to define handling.
reportProblem
in interface ValidationContext
XMLValidationException
public abstract int addDefaultAttribute(java.lang.String localName, java.lang.String uri, java.lang.String prefix, java.lang.String value)
addDefaultAttribute
in interface ValidationContext
public abstract boolean isPrefixLocallyDeclared(java.lang.String internedPrefix)
public abstract void addNsBinding(java.lang.String prefix, java.lang.String uri)
public final void validateText(TextBuffer tb, boolean lastTextSegment) throws XMLValidationException
XMLValidationException
public abstract boolean isNamespaceAware()
public abstract int getDepth()
public abstract boolean isEmpty()
public abstract java.lang.String getDefaultNsURI()
public abstract java.lang.String getNsURI()
public abstract java.lang.String getPrefix()
public abstract java.lang.String getLocalName()
public abstract boolean matches(java.lang.String prefix, java.lang.String localName)
public abstract java.lang.String getTopElementDesc()
public abstract int getTotalNsCount()
public abstract int getCurrentNsCount()
public abstract java.lang.String getLocalNsPrefix(int index)
public abstract java.lang.String getLocalNsURI(int index)
public final java.lang.String getAttributeType(int index)
protected final void normalizeXmlIdAttr(AttributeCollector ac, int ix)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |