Class 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
    • 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