|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectcom.ctc.wstx.sr.InputElementStack
com.ctc.wstx.sr.NsInputElementStack
public final class NsInputElementStack
Sub-class of InputElementStack used when operating in
namespace-aware mode.
Implementation note: this class reuses NamespaceContext
instances, so that consequtive accesses just return the same instance,
as long as nothing in bindings change. As a result, only those instances
that explicitly add new bindings create distinct non-shareable context
instances. Although it would also be possible to share underlying String
array to further improve object sharing, it seems like marginal gain
with more complexity: as such the current simple scheme should work
just fine (and is measure to be very close to optimal for most common
namespace-heavey document types like Soap messages).
| Field Summary | |
|---|---|
protected NsAttributeCollector |
mAttrCollector
|
protected java.lang.String[] |
mElements
Array that contains path of open elements from root; for each there are 4 Strings; prefix, localname, URI, and default name space URI. |
protected java.lang.String |
mLastLocalName
|
protected javax.xml.namespace.QName |
mLastName
|
protected BaseNsContext |
mLastNsContext
Last potentially shareable NamespaceContext created by this stack. |
protected java.lang.String |
mLastNsURI
|
protected java.lang.String |
mLastPrefix
|
protected boolean |
mMayHaveNsDefaults
|
protected StringVector |
mNamespaces
Vector that contains all currently active namespaces; one String for prefix, another for matching URI. |
protected int[] |
mNsCounts
Array that contains namespace offsets for each element; that is, index of first 'local' name space entry, entry declared for current element. |
protected NsDefaultProvider |
mNsDefaultProvider
Object that will need to be consulted about namespace bindings, since it has some knowledge about default namespace declarations (has default attribute value expansion). |
protected int |
mSize
Number of Strings in mElements that are valid (ie depth
multiplied by 4) |
protected static InternCache |
sInternCache
|
| Fields inherited from class com.ctc.wstx.sr.InputElementStack |
|---|
mConfig, mIdAttrIndex, mReporter, mValidator |
| Constructor Summary | |
|---|---|
NsInputElementStack(int initialSize,
ReaderConfig cfg)
|
|
| Method Summary | |
|---|---|
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. |
void |
addNsBinding(java.lang.String prefix,
java.lang.String uri)
Callback method called by the namespace default provider. |
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. |
int |
findAttributeIndex(java.lang.String nsURI,
java.lang.String localName)
|
AttributeCollector |
getAttrCollector()
Method called by BasicStreamReader, to retrieve the
attribute collector it needs for some direct access. |
int |
getAttributeCount()
This method returns number of attributes accessible from within currently active start element. |
javax.xml.namespace.QName |
getCurrentElementName()
Method that can be used to access name information of the innermost (top) element in the element stack. |
int |
getCurrentNsCount()
|
java.lang.String |
getDefaultNsURI()
|
int |
getDepth()
|
java.lang.String |
getLocalName()
|
java.lang.String |
getLocalNsPrefix(int index)
|
java.lang.String |
getLocalNsURI(int index)
|
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. |
java.lang.String |
getNsURI()
|
java.lang.String |
getPrefix()
|
java.lang.String |
getPrefix(java.lang.String nsURI)
|
java.util.Iterator |
getPrefixes(java.lang.String nsURI)
|
java.lang.String |
getTopElementDesc()
|
int |
getTotalNsCount()
|
boolean |
isEmpty()
|
boolean |
isNamespaceAware()
|
boolean |
isPrefixLocallyDeclared(java.lang.String internedPrefix)
|
boolean |
matches(java.lang.String prefix,
java.lang.String localName)
|
int |
pop()
Method called by the stream reader when encountering an end tag. |
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. |
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. |
int |
resolveAndValidateElement()
Method called to update information about top of the stack, with attribute information passed in. |
protected 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). |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected static final InternCache sInternCache
protected final NsAttributeCollector mAttrCollector
protected NsDefaultProvider mNsDefaultProvider
protected final StringVector mNamespaces
protected java.lang.String[] mElements
protected int mSize
mElements that are valid (ie depth
multiplied by 4)
protected int[] mNsCounts
mCurrNsCount - mNsCounts[mSize-1]
protected boolean mMayHaveNsDefaults
protected java.lang.String mLastLocalName
protected java.lang.String mLastPrefix
protected java.lang.String mLastNsURI
protected javax.xml.namespace.QName mLastName
protected BaseNsContext mLastNsContext
| Constructor Detail |
|---|
public NsInputElementStack(int initialSize,
ReaderConfig cfg)
| Method Detail |
|---|
protected void setAutomaticDTDValidator(XMLValidator validator,
NsDefaultProvider nsDefs)
InputElementStack
setAutomaticDTDValidator in class InputElementStack
public final void push(java.lang.String prefix,
java.lang.String localName)
InputElementStack
push in class InputElementStackpublic final void push(java.lang.String fullName)
InputElementStack
push in class InputElementStack
public int pop()
throws javax.xml.stream.XMLStreamException
pop in class InputElementStackjavax.xml.stream.XMLStreamException
public int resolveAndValidateElement()
throws javax.xml.stream.XMLStreamException
resolveAndValidateElement in class InputElementStackjavax.xml.stream.XMLStreamExceptionpublic final boolean isNamespaceAware()
isNamespaceAware in class InputElementStackpublic final int getDepth()
getDepth in class InputElementStackpublic final AttributeCollector getAttrCollector()
InputElementStackBasicStreamReader, to retrieve the
attribute collector it needs for some direct access.
getAttrCollector in class InputElementStackpublic final BaseNsContext createNonTransientNsContext(javax.xml.stream.Location loc)
createNonTransientNsContext in class InputElementStackpublic final java.lang.String getNamespaceURI(java.lang.String prefix)
ValidationContext
getNamespaceURI in interface javax.xml.namespace.NamespaceContextgetNamespaceURI in interface ValidationContextgetNamespaceURI in class InputElementStackpublic final java.lang.String getPrefix(java.lang.String nsURI)
getPrefix in interface javax.xml.namespace.NamespaceContextgetPrefix in class InputElementStackpublic final java.util.Iterator getPrefixes(java.lang.String nsURI)
getPrefixes in interface javax.xml.namespace.NamespaceContextgetPrefixes in class InputElementStackpublic final 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 AttributeInfogetAttributeCount in interface ValidationContextgetAttributeCount in class InputElementStack
public final int findAttributeIndex(java.lang.String nsURI,
java.lang.String localName)
findAttributeIndex in interface AttributeInfofindAttributeIndex in interface ValidationContextfindAttributeIndex in class InputElementStackpublic final javax.xml.namespace.QName getCurrentElementName()
ValidationContext
getCurrentElementName in interface ValidationContextgetCurrentElementName in class InputElementStack
public int addDefaultAttribute(java.lang.String localName,
java.lang.String uri,
java.lang.String prefix,
java.lang.String value)
InputElementStack
addDefaultAttribute in interface ValidationContextaddDefaultAttribute in class InputElementStackpublic boolean isPrefixLocallyDeclared(java.lang.String internedPrefix)
isPrefixLocallyDeclared in class InputElementStack
public void addNsBinding(java.lang.String prefix,
java.lang.String uri)
addNsBinding in class InputElementStackpublic final boolean isEmpty()
isEmpty in class InputElementStackpublic final java.lang.String getDefaultNsURI()
getDefaultNsURI in class InputElementStackpublic final java.lang.String getNsURI()
getNsURI in class InputElementStackpublic final java.lang.String getPrefix()
getPrefix in class InputElementStackpublic final java.lang.String getLocalName()
getLocalName in class InputElementStack
public final boolean matches(java.lang.String prefix,
java.lang.String localName)
matches in class InputElementStackpublic final java.lang.String getTopElementDesc()
getTopElementDesc in class InputElementStackpublic final int getTotalNsCount()
getTotalNsCount in class InputElementStackpublic final int getCurrentNsCount()
getCurrentNsCount in class InputElementStackpublic final java.lang.String getLocalNsPrefix(int index)
getLocalNsPrefix in class InputElementStackpublic final java.lang.String getLocalNsURI(int index)
getLocalNsURI in class InputElementStack
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||