Packages

  • package root
    Definition Classes
    root
  • package eu
    Definition Classes
    root
  • package cdevreeze
    Definition Classes
    eu
  • package xpathparser
    Definition Classes
    cdevreeze
  • package ast

    Abstract syntax tree of XPath expressions, as produced by the parsers specified in the 'parse' package.

    Abstract syntax tree of XPath expressions, as produced by the parsers specified in the 'parse' package.

    Definition Classes
    xpathparser
  • BracedUriLiteral
  • EQName
  • NCName
  • QNameAsEQName
  • URIQualifiedName
  • XPathExpressions
  • package common

    Common classes for expanded names and qualified names.

    Common classes for expanded names and qualified names. Copied from the yaidom project, with permission. Conversion from and to the yaidom counterparts is trivial, for example through the string representation.

    Definition Classes
    xpathparser
  • package parse

    FastParse parser of XPath expressions, returning AST objects from the 'ast' package if successful.

    FastParse parser of XPath expressions, returning AST objects from the 'ast' package if successful.

    Definition Classes
    xpathparser
  • package queryapi

    Query API, as offered by the AST classes.

    Query API, as offered by the AST classes. It is inspired by the yaidom project.

    The query API methods may be somewhat verbose, but that is intentional. First of all, there are multiple different "axes" that can be used in queries, such as child elements, descendant elements or descendant-or-self elements (if we consider only forward axes). Second, when querying for elements of specific types, there is something to be said for having normal parameters for those types, instead of (more hidden) type parameters.

    Definition Classes
    xpathparser

package ast

Abstract syntax tree of XPath expressions, as produced by the parsers specified in the 'parse' package.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ast
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. final case class BracedUriLiteral (namespaceOption: Option[String]) extends Product with Serializable

    Braced URI literal.

  2. sealed trait EQName extends AnyRef

    EQName, so either a URIQualifiedName or a QNameAsEQName.

  3. final case class NCName (name: String) extends Product with Serializable

    NCName, that is, a non-colon name.

  4. final case class QNameAsEQName (qname: QName) extends EQName with Product with Serializable
  5. final case class URIQualifiedName (ename: EName) extends EQName with Product with Serializable

Value Members

  1. object BracedUriLiteral extends Serializable
  2. object EQName
  3. object NCName extends Serializable
  4. object QNameAsEQName extends Serializable
  5. object URIQualifiedName extends Serializable
  6. object XPathExpressions

    XPath 3.0 AST.

    XPath 3.0 AST.

    The purpose of this AST is as follows:

    • It must represent the syntax tree of a successfully parsed XPath expression
    • It is not annotated with more semantic information, like type information that is not included in the XPath expression
    • It does not know anything about the context in which it runs, like bound namespaces etc.
    • It is rich enough to be able to serialize the AST back to XPath, knowing exactly where to place parentheses, braces, etc.
    • It is rich enough to contain operator precedence in the AST itself
    • Serialization of the AST to XPath may lead to differences in whitespace (and operator aliases), but other than that the result must be the same
    • The AST class hierarchy does not have to use the exact same names as the XPath grammar

    Having such an AST of a successfully parsed XPath expression, it must be easy to reliably find used namespace prefixes, for example.

    TODO Improve several class names.

    TODO XPath 3.1.

Inherited from AnyRef

Inherited from Any

Ungrouped