package client.net.sf.saxon.ce.expr;
import client.net.sf.saxon.ce.om.StructuredQName;
/**
* Generic interface representing a variable declaration in the static context of an XPath expression.
* The declaration may be internal or external to the XPath expression itself. An external
* VariableDeclaration is identified (perhaps created) by the bindVariable() method in the StaticContext.
*/
public interface VariableDeclaration {
/**
* Method called by a BindingReference to register the variable reference for
* subsequent fixup.
* This method is called by the XPath parser when
* each reference to the variable is encountered. At some time after parsing and before execution of the
* expression, the VariableDeclaration is responsible for calling the two methods setStaticType()
* and fixup() on each BindingReference that has been registered with it.<br>
* @param ref the variable reference
*/
public void registerReference(VariableReference ref);
/**
* Get the name of the variable as a structured QName
* @return the variable name
*/
public StructuredQName getVariableQName();
}
// 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.