com.sun.xml.xsom
Class SCD

java.lang.Object
  extended by com.sun.xml.xsom.SCD

public abstract class SCD
extends java.lang.Object

Schema Component Designator (SCD).

SCD for schema is what XPath is for XML. SCD allows you to select a schema component(s) from a schema component(s).

See XML Schema: Component Designators. This implementation is based on 03/29/2005 working draft.

Author:
Kohsuke Kawaguchi

Constructor Summary
SCD()
           
 
Method Summary
static SCD create(java.lang.String path, javax.xml.namespace.NamespaceContext nsContext)
          Parses the string representation of SCD.
 java.util.Collection<XSComponent> select(java.util.Collection<? extends XSComponent> contextNodes)
          Evaluates the SCD against the given set of context nodes and returns the matched nodes.
abstract  java.util.Iterator<XSComponent> select(java.util.Iterator<? extends XSComponent> contextNodes)
          Evaluates the SCD against the given set of context nodes and returns the matched nodes.
 java.util.Collection<XSComponent> select(XSComponent contextNode)
          Evaluates the SCD against the given context node and returns the matched nodes.
 java.util.Collection<XSComponent> select(XSSchemaSet contextNode)
          Evaluates the SCD against the whole schema and returns the matched nodes.
 XSComponent selectSingle(XSComponent contextNode)
          Evaluates the SCD against the given context node and returns the matched node.
 XSComponent selectSingle(XSSchemaSet contextNode)
          Evaluates the SCD against the whole schema set and returns the matched node.
abstract  java.lang.String toString()
          Returns the textual SCD representation as given to create(String, NamespaceContext).
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SCD

public SCD()
Method Detail

create

public static SCD create(java.lang.String path,
                         javax.xml.namespace.NamespaceContext nsContext)
                  throws java.text.ParseException
Parses the string representation of SCD.

This method involves parsing the path expression and preparing the in-memory structure, so this is useful when you plan to use the same SCD against different context node multiple times.

If you want to evaluate SCD just once, use XSComponent.select(java.lang.String, javax.xml.namespace.NamespaceContext) methods.

Parameters:
path - the string representation of SCD, such as "/foo/bar".
nsContext - Its NamespaceContext.getNamespaceURI(String) is used to resolve prefixes in the SCD to the namespace URI.
Throws:
java.text.ParseException

select

public final java.util.Collection<XSComponent> select(XSComponent contextNode)
Evaluates the SCD against the given context node and returns the matched nodes.

Returns:
could be empty but never be null.

select

public final java.util.Collection<XSComponent> select(XSSchemaSet contextNode)
Evaluates the SCD against the whole schema and returns the matched nodes.

This method is here because XSSchemaSet doesn't implement XSComponent.

Returns:
could be empty but never be null.

selectSingle

public final XSComponent selectSingle(XSComponent contextNode)
Evaluates the SCD against the given context node and returns the matched node.

Returns:
null if the SCD didn't match anything. If the SCD matched more than one node, the first one will be returned.

selectSingle

public final XSComponent selectSingle(XSSchemaSet contextNode)
Evaluates the SCD against the whole schema set and returns the matched node.

Returns:
null if the SCD didn't match anything. If the SCD matched more than one node, the first one will be returned.

select

public abstract java.util.Iterator<XSComponent> select(java.util.Iterator<? extends XSComponent> contextNodes)
Evaluates the SCD against the given set of context nodes and returns the matched nodes.

Parameters:
contextNodes - XSComponents that represent the context node against which SCD is evaluated.
Returns:
could be empty but never be null.

select

public final java.util.Collection<XSComponent> select(java.util.Collection<? extends XSComponent> contextNodes)
Evaluates the SCD against the given set of context nodes and returns the matched nodes.

Parameters:
contextNodes - XSComponents that represent the context node against which SCD is evaluated.
Returns:
could be empty but never be null.

toString

public abstract java.lang.String toString()
Returns the textual SCD representation as given to create(String, NamespaceContext).

Overrides:
toString in class java.lang.Object