|
Oracle Fusion Middleware XML Security Java API Reference for Oracle Security Developer Tools 11g Release 1 (11.1.1) E10680-04 |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object
oracle.security.xmlsec.util.NodeReader
oracle.security.xmlsec.util.NodeReaderForNodeset
public class NodeReaderForNodeset
FOR INTERNAL USE ONLY
Nested Class Summary |
---|
Nested classes/interfaces inherited from class oracle.security.xmlsec.util.NodeReader |
---|
NodeReader.NodeListener |
Field Summary |
---|
Fields inherited from class oracle.security.xmlsec.util.NodeReader |
---|
CDATA, CHARACTERS, COMMENT, DTD, END_DOCUMENT, END_ELEMENT, PROCESSING_INSTRUCTION, START_DOCUMENT, START_ELEMENT |
Constructor Summary | |
---|---|
NodeReaderForNodeset(java.util.Collection sourceNodes, boolean areNamespacesMissing, boolean isSparse) |
Method Summary | |
---|---|
java.util.Collection |
getAncestorXmlAttributes(boolean c14n11) Get a list of all the xml attributes in the ancestors of this element, whether the elements are in the nodeset or not. |
java.util.Iterator |
getAttributes() Returns all the namespaces and attributes on this START_ELEMENT. |
org.w3c.dom.Node |
getCurrentNode() |
int |
getEventType() Returns an integer code that indicates the type of the event the cursor is pointing to START_ELEMENT END_ELEMENT PROCESSING_INSTRUCTION CHARACTERS COMMENT START_DOCUMENT END_DOCUMENT |
java.lang.String |
getLocalName() Returns the (local) name of the current event. |
java.util.Map |
getNamespaces() Returns all the namespaces on this START_ELEMENT. |
java.util.Iterator |
getNamespacesForMissingAncestors() Returns those inherited namespace declaration, for which the ancestor element that declares the namespace is missing from the nodeset. |
java.lang.String |
getNamespaceURI() If the current event is a START_ELEMENT or END_ELEMENT this method returns the URI of the prefix or the default namespace |
org.w3c.dom.Node |
getNode() Returns the current node. |
java.lang.String |
getPIData() Get the data section of a processing instruction |
java.lang.String |
getPITarget() Get the target of a processing instruction |
java.lang.String |
getPrefix() Returns the prefix of the current event or null if the event does not have a prefix |
java.util.SortedMap |
getSortedAttributes() Returns all the attributes (not namespaces) on this START_ELEMENT. |
char[] |
getText() Returns the current value of the parse event as a character array, this returns the string value of a CHARACTERS event, returns the value of a COMMENT, |
int |
getTextLength() |
int |
getTextStart() |
boolean |
hasNext() Returns true if there are more parsing events and false if there are no more events. |
boolean |
isElementAnOrphan() Returns whether this element in an orphan (i.e the element is included but its parent is not included in the nodeset). |
boolean |
isElementIncluded() For special case when some of an element's attributes are in the node set but the element itself is not |
boolean |
isElementInheritingNamespaces() Whether the element inherits all the namespaces of its parents. |
int |
next() Get next parsing event. |
int |
nextNode() |
Methods inherited from class oracle.security.xmlsec.util.NodeReader |
---|
addListener, fireConsumeNode, isUnnecessaryEmptyDefaultNsRequired, removeListener |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public NodeReaderForNodeset(java.util.Collection sourceNodes, boolean areNamespacesMissing, boolean isSparse)
sourceNodes
- a collection of Nodes. The interpretation of NamespaceNodes in this list depends on the areNamespacesMissing parameterareNamespacesMissing
- see areNamespacesMissing
Indicates whether any Namespace node have been explicitly filtered out (which is rare and never used in any real life situations).
getAttributes()
call instead of the getNamespaces()
and getSortedAttributes()
which return null. Also isElementInheritingNamespaces()
returns true indicating that namespaces are inherited.In the areNamespacesMissing=true mode, namespaces and attributes are returned separately through the getNamespaces()
and getSortedAttributes()
methods. The getAttributes()
also works, and it returns both the namespaces and the attributes in a single list. isElementInheritingNamespaces()
returns true.
Also if areNamespaces==true, the NodeReaderForNodeset constructor goes through the sourceNodes collection, and for every element it creates a NodeObject, and populates that NodeObject with a list of attributes and a list of namespaces.
Example: So suppose there are two elements with two namespace nodes each i.e. sourceNodes contains (e1, e2, e1_n1, e1_n2, e2_n1, e2_n2) (Note the nodes can be present in any order, but the constructor only uses a single pass) This constructor goes through all of sourceNodes and constructs two NodeObject object e1_no = (e1, (e1_n1, e1_n2)) and e2_no = (e2, (e2_n1, e2_n2)) and populates the elementToNodeObj
map with e1->e1_no and e2->e2_no
isSparse
- whether the sourceNodes should be considered as sparse
nodeset
so that it can do inclusion checks quickly). Note the sourceNodes collection can be disjoint, so while walking the tree, NodeReaderForNodeset CANNOT assume that if an element is missing from the sourceNodes collection, all its descandants are also missing, i.e. it cannot "prune" the search tree.missingParents
which are elements that are themselves absent from the sourceNodes collection, but have at least one descendant that is present in sourceNodes. Once it has constructed this list, it can safely prune elements that neither in the sourceNodes collection nor in the missingParents. However it is expensive to construct the missingParents list, and speed gains of pruning may not more than the delays cost by constructing the missingParent list. Only if the nodeset is "sufficiently" sparse will it be faster to use this mode.Method Detail |
---|
public final int next()
NodeReader
next
in class NodeReader
public final int nextNode()
public final org.w3c.dom.Node getCurrentNode()
public final int getEventType()
NodeReader
getEventType
in class NodeReader
public final java.lang.String getLocalName()
NodeReader
getLocalName
in class NodeReader
public final java.lang.String getNamespaceURI()
NodeReader
getNamespaceURI
in class NodeReader
public java.lang.String getPrefix()
NodeReader
getPrefix
in class NodeReader
public final java.lang.String getPIData()
NodeReader
getPIData
in class NodeReader
public final java.lang.String getPITarget()
NodeReader
getPITarget
in class NodeReader
public final char[] getText()
NodeReader
getText
in class NodeReader
public final int getTextStart()
getTextStart
in class NodeReader
public final int getTextLength()
getTextLength
in class NodeReader
public final boolean hasNext()
NodeReader
hasNext
in class NodeReader
public final boolean isElementIncluded()
NodeReader
isElementIncluded
in class NodeReader
public final org.w3c.dom.Node getNode()
NodeReader
getNode
in class NodeReader
public final java.util.Iterator getAttributes()
NodeReader
All NodeReaders must implement this. Additionally a node reader may implement the NodeReader.getNamespaces()
and NodeReader.getSortedAttributes()
methods to return the namespaces and attributes separately.
getAttributes
in class NodeReader
public final java.util.SortedMap getSortedAttributes()
NodeReader
getSortedAttributes
in class NodeReader
public final java.util.Map getNamespaces()
NodeReader
getNamespaces
in class NodeReader
public boolean isElementAnOrphan()
NodeReader
isElementAnOrphan
in class NodeReader
public java.util.Collection getAncestorXmlAttributes(boolean c14n11) throws NodeReaderException
NodeReader
getAncestorXmlAttributes
in class NodeReader
c14n11
- follow C14n 1.1 rules, i.e. for simple inheritable attributes - xml:lang and xml:space, return the nearest ancestor, and for xml:base merge the values from missing ancestorsNodeReaderException
public boolean isElementInheritingNamespaces()
NodeReader
isElementInheritingNamespaces
in class NodeReader
public java.util.Iterator getNamespacesForMissingAncestors()
NodeReader
E.gfor this xml <foo xmlns:n1="n1"> <bar xmlns:n2="n2"/> </foo>
if foo is not included in the nodeset, but bar is included, bar inherits the n1 namespace declaration. So n1 should be returned by this function and both n1 and n2 should be returned by getAttributes
getNamespacesForMissingAncestors
in class NodeReader
|
Oracle Fusion Middleware XML Security Java API Reference for Oracle Security Developer Tools 11g Release 1 (11.1.1) E10680-04 |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |