## net.sf.saxon.expr
Interface Binding

All Known Implementing Classes:
  Assign, Assignation, EagerLetExpression, ForExpression, GeneralVariable, GlobalParam, GlobalVariable, JAXPVariable, LetExpression, LocalParam, LocalVariable, PositionVariable, QuantifiedExpression, UserFunctionParameter, WithParam, 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 Summary
`ValueRepresentation` `evaluateVariable(XPathContext context)` Evaluate the variable
`int` `getLocalSlotNumber()` If this is a local variable held on the local stack frame, return the corresponding slot number.
`SequenceType` `getRequiredType()` Get the declared type of the variable
`StructuredQName` `getVariableQName()` Get the name of the variable
`boolean` `isAssignable()` Test whether it is permitted to assign to the variable using the saxon:assign extension element.
`boolean` `isGlobal()` Indicate whether the binding is local or global.

Method Detail

### getRequiredType

    SequenceType getRequiredType()

  Get the declared type of the variable

  Returns:
    the declared type

### evaluateVariable

    ValueRepresentation evaluateVariable(XPathContext context)
                                         throws XPathException

  Evaluate the variable

  Parameters:
    `context` - the XPath dynamic evaluation context
  Returns:
    the result of evaluating the variable
  Throws:
    `XPathException`

### 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

### getLocalSlotNumber

    int getLocalSlotNumber()

  If this is a local variable held on the local stack frame, return the corresponding slot number. In other cases, return -1.

  Returns:
    the slot number on the local stack frame

### getVariableQName

    StructuredQName getVariableQName()

  Get the name of the variable

  Returns:
    the name of the variable, as a structured QName

Copyright (c) Saxonica Limited. All rights reserved.