|
Oracle Fusion Middleware XML Security Java API Reference for Oracle Security Developer Tools 11g Release 1 (11.1.1) E10680-05 |
||||||||
| 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()
NodeReadernext in class NodeReaderpublic final int nextNode()
public final org.w3c.dom.Node getCurrentNode()
public final int getEventType()
NodeReadergetEventType in class NodeReaderpublic final java.lang.String getLocalName()
NodeReadergetLocalName in class NodeReaderpublic final java.lang.String getNamespaceURI()
NodeReadergetNamespaceURI in class NodeReaderpublic java.lang.String getPrefix()
NodeReadergetPrefix in class NodeReaderpublic final java.lang.String getPIData()
NodeReadergetPIData in class NodeReaderpublic final java.lang.String getPITarget()
NodeReadergetPITarget in class NodeReaderpublic final char[] getText()
NodeReadergetText in class NodeReaderpublic final int getTextStart()
getTextStart in class NodeReaderpublic final int getTextLength()
getTextLength in class NodeReaderpublic final boolean hasNext()
NodeReaderhasNext in class NodeReaderpublic final boolean isElementIncluded()
NodeReaderisElementIncluded in class NodeReaderpublic final org.w3c.dom.Node getNode()
NodeReadergetNode in class NodeReaderpublic final java.util.Iterator getAttributes()
NodeReaderAll 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 NodeReaderpublic final java.util.SortedMap getSortedAttributes()
NodeReadergetSortedAttributes in class NodeReaderpublic final java.util.Map getNamespaces()
NodeReadergetNamespaces in class NodeReaderpublic boolean isElementAnOrphan()
NodeReaderisElementAnOrphan in class NodeReader
public java.util.Collection getAncestorXmlAttributes(boolean c14n11)
throws NodeReaderException
NodeReadergetAncestorXmlAttributes in class NodeReaderc14n11 - 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 ancestorsNodeReaderExceptionpublic boolean isElementInheritingNamespaces()
NodeReaderisElementInheritingNamespaces in class NodeReaderpublic java.util.Iterator getNamespacesForMissingAncestors()
NodeReaderE.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-05 |
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||