org.jibx.schema.elements
Class SchemaPath

java.lang.Object
  extended by org.jibx.schema.elements.SchemaPath

public class SchemaPath
extends Object

Path specification within a schema definition. This implements simple XPath-like expressions, consisting of any number of path components given as element names or '*' for any element or '**' for any nesting of elements, along with optional position number or name attribute predicates in square brackets.

Author:
Dennis M. Sosnoski

Nested Class Summary
static class SchemaPath.PathStep
           
static class SchemaPath.StepBase
           
 
Method Summary
static SchemaPath buildPath(String path, String elemname, String nameattr, String postext, Object obj, ValidationContext vctx)
          Build a path.
 int getPathLength()
          Get length of this path (minimum number of nested elements).
 boolean isWildStart()
          Check if the first path step is a wildcard.
 OpenAttrBase matchUnique(OpenAttrBase base)
          Find unique match for expression starting from a supplied schema element annotation.
 List partialMatchMultiple(int first, int last, OpenAttrBase base)
          Find any number of matches for subexpression starting from a supplied schema element annotation.
 OpenAttrBase partialMatchUnique(int first, int last, OpenAttrBase base)
          Find unique match for subexpression starting from a supplied schema element annotation.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getPathLength

public int getPathLength()
Get length of this path (minimum number of nested elements).

Returns:
path length

isWildStart

public boolean isWildStart()
Check if the first path step is a wildcard.

Returns:
true if wildcard, false if not

partialMatchMultiple

public List partialMatchMultiple(int first,
                                 int last,
                                 OpenAttrBase base)
Find any number of matches for subexpression starting from a supplied schema element annotation.

Parameters:
first - starting path step index
last - ending path step index
base - starting element for match
Returns:
matching element, or null if error

partialMatchUnique

public OpenAttrBase partialMatchUnique(int first,
                                       int last,
                                       OpenAttrBase base)
Find unique match for subexpression starting from a supplied schema element annotation. An error is reported if no match is found, or if multiple matches are found.

Parameters:
first - starting path step index
last - ending path step index
base - starting element for match
Returns:
matching element, or null if error

matchUnique

public OpenAttrBase matchUnique(OpenAttrBase base)
Find unique match for expression starting from a supplied schema element annotation. An error is reported if no match is found, or if multiple matches are found.

Parameters:
base - starting element for match
Returns:
matching element, or null if error

buildPath

public static SchemaPath buildPath(String path,
                                   String elemname,
                                   String nameattr,
                                   String postext,
                                   Object obj,
                                   ValidationContext vctx)
Build a path. If a path expression is supplied, the final path step in the expression must either not use an element name, or the element name must match the actual element supplied.

Parameters:
path - expression (null if none)
elemname - element name for final step in path
nameattr - name attribute (applied to final step in path, null if none)
postext - position (applied to final step in path, null if none)
obj - object defining the path
vctx - validation context
Returns:
constructed path, or null if error


Copyright © 2005-2012 jibx.org. All Rights Reserved.