All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sf.saxon.expr.package-info Maven / Gradle / Ivy

There is a newer version: 12.5
Show newest version
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2018-2022 Saxonica Limited
// This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
// If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
// This Source Code Form is "Incompatible With Secondary Licenses", as defined by the Mozilla Public License, v. 2.0.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

/**
 * 

This package provides classes associated with XPath expression handling. Generally, these * classes are not intended to be used directly by user-written applications; the API for XPath * evaluation is now provided by classes in the package net.sf.saxon.xpath

*

The principal classes are:

*

Expression:
* This represents an XPath Expression. There is a static method Expression.make() which is * used to construct an Expression from a String (it is a factory method rather than a * constructor, because it typically returns some subclass of Expression according * to the syntax supplied). Subclasses of Expression represent different kinds of expression * such as StringExpression and BooleanExpression. What they all have in common is an evaluate() * method, which evaluates the expression in a given context to yield a Value, and an iterate() method, * which treats the result of the expression as a sequence, and iterates over the items in the sequence.

*

ExpressionParser:
* This class does the work of parsing both Expressions and Patterns. Applications should not call * it directly. It uses the class Tokenizer for lexical analysis.

*

StaticContext:
* This interface defines the information available at the time an expression is being parsed. This * includes the names of variables, the bindings of namespace prefixes, the functions that are available, * the names of collating sequences, and so on. When an XPath expression appears in a stylesheet, the * class net.sf.saxon.style.ExpressionContext provides the StaticContext. For a free-standing XPath * expression, the class net.sf.saxon.xpath.StandaloneContext is available, though a user-written * class that implements StaticContext can also be used.

*

XPathContext:
* This class defines the context information available at run-time, for example the context node, position, * and size. (It actually does this by wrapping a SequenceIterator that represents the current sequence.) * When expressions are used during an XSLT transformation, the XPathContext also provides access to the * Controller, which contains all the context information about XSLT processing (for example the current template, * the current group, and so on).

*

Most of the classes in this package represent individual syntactic constructs found in XPath or XQuery expressions: * for example ValueComparison, UserFunctionCall, and RootExpression. The * objects * that instantiate these classes form the nodes on the Abstract Syntax Tree constructed by the compiler and modified * by the optimizer; at run-time their methods are used to drive a pipelined evaluation of the expression.

*

The distinction between the compiled form of XSLT instructions and the compiled form of XPath expressions has * become blurred. Generally, the compiled form of instructions is in the package net.sf.saxon.instruct * (this includes expressions in XQuery that are equivalent to XSLT instructions, for example element constructors). * However, some constructs such as conditional expressions now exist in both languages and may generate the same * run-time constructs.

*/ package net.sf.saxon.expr;




© 2015 - 2024 Weber Informatics LLC | Privacy Policy