Interface Binding

All Known Subinterfaces:
LocalBinding
All Known Implementing Classes:
Assignation, EagerLetExpression, ForExpression, GlobalParam, GlobalVariable, LetExpression, LocalParam, LocalVariableBinding, OuterForExpression, ParserExtension.TemporaryXSLTVariableBinding, QuantifiedExpression, UndeclaredVariable, UserFunctionParameter, XPathVariable

public interface Binding
Binding is a interface used to represent the run-time properties and methods associated with a variable: specifically, a method to get the value of the variable.
  • Method Details

    • getRequiredType

      SequenceType getRequiredType()
      Get the declared type of the variable
      Returns:
      the declared type
    • getIntegerBoundsForVariable

      IntegerValue[] getIntegerBoundsForVariable()
      If the variable is bound to an integer, get the minimum and maximum possible values. Return null if unknown or not applicable
      Returns:
      a pair of integers containing the minimum and maximum values for the integer value; or null if the value is not an integer or the range is unknown
    • evaluateVariable

      Sequence evaluateVariable(XPathContext context) throws XPathException
      Evaluate the variable
      Parameters:
      context - the XPath dynamic evaluation context
      Returns:
      the result of evaluating the variable
      Throws:
      XPathException - if an error occurs while evaluating the variable
    • isGlobal

      boolean isGlobal()
      Indicate whether the binding is local or global. A global binding is one that has a fixed value for the life of a query or transformation; any other binding is local.
      Returns:
      true if the binding is global
    • isAssignable

      boolean isAssignable()
      Test whether it is permitted to assign to the variable using the saxon:assign extension element. This will only be for an XSLT global variable where the extra attribute saxon:assignable="yes" is present.
      Returns:
      true if the binding is assignable
    • getVariableQName

      StructuredQName getVariableQName()
      Get the name of the variable
      Returns:
      the name of the variable, as a structured QName
    • addReference

      void addReference(VariableReference ref, boolean isLoopingReference)
      Register a variable reference that refers to the variable bound in this expression
      Parameters:
      ref - the variable reference
      isLoopingReference - - true if the reference occurs within a loop, such as the predicate of a filter expression