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

javax.xml.xquery.XQDynamicContext Maven / Gradle / Ivy

There is a newer version: 12.5
Show newest version
/*
 * Copyright � 2003, 2004, 2005, 2006, 2007, 2008 Oracle.  All rights reserved.
 */

package javax.xml.xquery;

import org.w3c.dom.Node;

import javax.xml.namespace.QName;
import java.io.InputStream;
import java.io.Reader;

/**
 * XQDynamicContext provides access to the dynamic context as defined in
 * 2.1.2
 * Dynamic Context, XQuery 1.0: An XML Query Language.
 * The following components can be accessed:
 * 

*

    *
  • The context item can be set
  • *
  • The variable values can be bound
  • *
  • The implicit time zone can be retrieved or specified
  • *
*

* Where the prolog of the expression specifies the static type of external * variables, this interface allows the dynamic type and value of the * variable to be specified. *

* Note that in case of an XQPreparedExpression, values may only be bound * to those variables that are defined in the prolog of the expression. *

*

* Example - *

*

 *
 *  XQConnection conn = XQDataSource.getConnection();
 *
 *  // create an XQPreparedExpression with external variable
 *  XQPreparedExpression e1 = conn.prepareExpression("declare variable $i as xs:int external;
 *                                                    $i + 10");
 *
 *  // bind an int to the external variable
 *  e1.bindInt(new QName("i"), 200, null);
 *
 *  // this will fail as the expression has no external variable $foo
 *  e1.bindInt(new QName("foo"), 200, null);
 *
 *  // this will fail as xs:double is not compatible with an external
 *  variable declared as xs:int
 *  e1.bindDouble(new QName("i"), 2e2, null);
 *
 *  // create an XQExpression with external variable
 *
 *  XQExpression e2 = conn.createExpression();
 *
 *  // bind a value to $i and $foo
 *  e2.bindInt(new QName("i"), 200, null);
 *  e2.bindInt(new QName("foo"), 200, null);
 *
 *  // the value bound to $foo is ignored as the expression doesn't
 *  // declare $foo as external variable
 *
 *  e2.executeQuery("declare variable $i as xs:int external; $i + 10");
 *
 * 
*
*
* Binding a value to the context item is achieved in the same way as binding a * value to an external variable. However, instead of specifying the variable's * name as first argument of the bindXXX() method, use * {@link XQConstants#CONTEXT_ITEM XQConstants.CONTEXT_ITEM} as the first * argument. *
*
* Binding mode *

* The default binding mode is immediate. In other words, the external * variable value specified by the application is consumed during the * bindXXX() method. *

* An application has the ability to set the binding mode to deferred. In deferred * mode an application cannot assume that the bound value will be * consumed during the invocation of the bindXXX method. In * such scenario the order in which the bindings are evaluated is * implementation-dependent, and an implementation doesn't necessarily need * to consume a binding if it can evaluate the query without requiring the * external variable. The XQJ implementation is also free to read the bound * value either at bind time or during the subsequent evaluation and * processing of the query results. *

* Also note that in deferred binding mode, bindings are only active for a * single execution cycle. The application is required to explicitly * re-bind values to every external variable before each execution. Failing * to do so will result in an XQException, as the * implementation will assume during the next execution that none of the * external variables are bound. *

* Finally, note that in deferred binding mode, any error condition * specified to throw an exception during the bindXXX() methods, * may as well be thrown later during the query's evaluation. *

* Example - in case of an immediate binding mode, bindings stay active * over executions *

 *  // BINDING_MODE_IMMEDIATE is the default, no need to change it
 *  QName v = new QName(v);
 *
 *  XQPreparedExpression e = c.prepareExpression("declare variable $v
 *                                                external; $v");
 *  e.bindInt(v, 1)
 *
 *  // successful execution
 *  e.executeQuery();
 *
 *  // successful execution
 *  e.executeQuery();
 * 
*
*
* Example - in case of a deferred binding mode, bindings are only valid * for a single execution *
 *  // BINDING_MODE_IMMEDIATE is the default, change it to
 *  // BINDING_MODE_DEFERRED
 *  XQStaticContext cntxt = c.getStaticContext();
 *  cntxt.setBindingMode(XQConstants.BINDING_MODE_DEFERRED);
 *  c.setStaticContext(cntxt);
 *
 *  QName v = new QName(v);
 *
 *  XQPreparedExpression e = c.prepareExpression("declare variable $v
 *                                                external; $v");
 *  e.bindInt(v, 1)
 *
 *  // successful execution
 *  XQSequence s = e.executeQuery();
 *
 *  while (s.next())
 *    System.out.println(s.getInt());
 *
 *  // an error is reported during the next query
 *  // evaluation as not all external variables are bound
 *  s = e.executeQuery();
 *
 *  while (s.next())
 *    System.out.println(s.getInt());
 * 
*/ public interface XQDynamicContext { /** * Gets the implicit timezone * * @return the implicit timezone. This may have been set by an * application using the setImplicitTimeZone method * or provided by the implementation * @throws XQException if the expression is in a closed state */ public java.util.TimeZone getImplicitTimeZone() throws XQException; /** * Binds a value to the given external variable or the context item. * The value is converted into an instance of the specified type according to * the casting from xs:string rules outlined in * * 17.1.1 Casting from xs:string and xs:untypedAtomic, XQuery 1.0 and * XPath 2.0 Functions and Operators. * If the cast fails, or if there is a mismatch between the static and * dynamic types, an XQException is thrown either by this * method or during query evaluation. * * @param varName the name of the external variable to bind to * @param value the lexical string value of the type * @param type the item type of the bind * @throws XQException if (1) any of the arguments are null, * (2) given type is not an atomic type, * (3) the conversion of the value to an XDM instance failed, * (4) in case of an XQPreparedExpression, * the dynamic type of the bound value is not compatible * with the static type of the variable, * (5) in case of an XQPreparedExpression, * the variable is not defined in the prolog of the expression, * or (6) the expression is in a closed state */ public void bindAtomicValue(QName varName, String value, XQItemType type) throws XQException; /** * Binds a value to the given external variable or the context item. The * value is converted into an instance of the specified type, which must * represent an xs:string or a type derived by restriction * from xs:string. If the specified type is null, * it defaults to xs:string.
*

* Subsequently the value is converted into an instance of the specified * type according to the rule defined in 14.2 Mapping a Java Data Type to * an XQuery Data Type, XQuery API for Java (XQJ) 1.0,. If the * conversion fails, or if there is a mismatch between the static and * dynamic types, an XQException is raised either by this * method, or during query evaluation. * * @param varName the name of the external variable to bind to, * cannot be null * @param value the value to be converted, cannot be * null * @param type the type of the value to be bound to the * external variable. The default type, * xs:string, is used in case * null is specified * @throws XQException if (1) the varName or * value argument is null, * (2) the conversion of the value to an XDM * instance failed, (3) in case of an * XQPreparedExpression, the dynamic * type of the bound value is not compatible with the * static type of the variable, (4) in case of an * XQPreparedExpression, the variable * is not defined in the prolog of the expression, * or (5) if the expression is in a closed state */ public void bindString(QName varName, String value, XQItemType type) throws XQException; /** * Binds a value to the given external variable or the context item. *

*
*
*

* If the value represents a well-formed XML document, it will be parsed * and results in a document node. * The kind of the input type must be null, * XQITEMKIND_DOCUMENT_ELEMENT, or * XQITEMKIND_DOCUMENT_SCHEMA_ELEMENT. *

*
*
*

* The value is converted into an instance of the specified type according * to the rules defined in 14.3 Mapping a Java XML document to an * XQuery document node, XQuery API for Java (XQJ) 1.0. *

*
*
*

* If the conversion fails, or if there is a mismatch between the static * and dynamic types, an XQException is raised either by this * method, or during query evaluation. If the value is not well formed, * or if a kind of the input type other than the values list above is * specified, behavior is implementation defined and may raise an exception. * * @param varName the name of the external variable to bind to, * cannot be null * @param value the value to be converted, cannot be * null * @param baseURI an optional base URI, can be null. It can * be used, for example, to resolve relative URIs and to * include in error messages. * @param type the type of the value for the created * document node. If null is specified, * it behaves as if * XQDataFactory.createDocumentElementType( * XQDataFactory.createElementType(null, * XQItemType.XQBASETYPE_XS_UNTYPED)) were passed in * as the type parameter. That is, the type represents the * XQuery sequence type document-node(element(*, xs:untyped)) * @throws XQException if (1) the varName or value * argument is null, (2) the * conversion of the value to an XDM instance failed, * (3) in case of an XQPreparedExpression, * the dynamic type of the bound value is not compatible * with the static type of the variable, (4) in case of an * XQPreparedExpression, the variable is not * defined in the prolog of the expression, * or (5) if the expression is in a closed state */ public void bindDocument(QName varName, String value, String baseURI, XQItemType type) throws XQException; /** * Binds a value to the given external variable or the context item. *

*
*
*

* If the value represents a well-formed XML document, it will be parsed * and results in a document node. * The kind of the input type must be null, * XQITEMKIND_DOCUMENT_ELEMENT, or * XQITEMKIND_DOCUMENT_SCHEMA_ELEMENT. *

*
*
*

* The value is converted into an instance of the specified type according * to the rules defined in 14.3 Mapping a Java XML document to an * XQuery document node, XQuery API for Java (XQJ) 1.0. *

*
*
*

* If the conversion fails, or if there is a mismatch between the static * and dynamic types, an XQException is raised either by this * method, or during query evaluation. If the value is not well formed, * or if a kind of the input type other than the values list above is * specified, behavior is implementation defined and may raise an exception. * * @param varName the name of the external variable to bind to, * cannot be null * @param value the value to be converted, cannot be * null * @param baseURI an optional base URI, can be null. It can * be used, for example, to resolve relative URIs and to * include in error messages. * @param type the type of the value for the created * document node. If null is specified, * it behaves as if * XQDataFactory.createDocumentElementType( * XQDataFactory.createElementType(null, * XQItemType.XQBASETYPE_XS_UNTYPED)) were passed in * as the type parameter. That is, the type represents the * XQuery sequence type document-node(element(*, xs:untyped)) * @throws XQException if (1) the varName or value * argument is null, (2) the * conversion of the value to an XDM instance failed, * (3) in case of an XQPreparedExpression, * the dynamic type of the bound value is not compatible * with the static type of the variable, (4) in case of an * XQPreparedExpression, the variable is not * defined in the prolog of the expression, * or (5) if the expression is in a closed state */ public void bindDocument(QName varName, Reader value, String baseURI, XQItemType type) throws XQException; /** * Binds a value to the given external variable or the context item. *

*
*
*

* If the value represents a well-formed XML document, it will be parsed * and results in a document node. * The kind of the input type must be null, * XQITEMKIND_DOCUMENT_ELEMENT, or * XQITEMKIND_DOCUMENT_SCHEMA_ELEMENT. *

*
*
*

* The value is converted into an instance of the specified type according * to the rules defined in 14.3 Mapping a Java XML document to an * XQuery document node, XQuery API for Java (XQJ) 1.0. *

*
*
*

* If the conversion fails, or if there is a mismatch between the static * and dynamic types, an XQException is raised either by this * method, or during query evaluation. If the value is not well formed, * or if a kind of the input type other than the values list above is * specified, behavior is implementation defined and may raise an exception. * * @param varName the name of the external variable to bind to, * cannot be null * @param value the value to be converted, cannot be * null * @param baseURI an optional base URI, can be null. It can * be used, for example, to resolve relative URIs and to * include in error messages. * @param type the type of the value for the created * document node. If null is specified, * it behaves as if * XQDataFactory.createDocumentElementType( * XQDataFactory.createElementType(null, * XQItemType.XQBASETYPE_XS_UNTYPED)) were passed in * as the type parameter. That is, the type represents the * XQuery sequence type document-node(element(*, xs:untyped)) * @throws XQException if (1) the varName or value * argument is null, (2) the * conversion of the value to an XDM instance failed, * (3) in case of an XQPreparedExpression, * the dynamic type of the bound value is not compatible * with the static type of the variable, (4) in case of an * XQPreparedExpression, the variable is not * defined in the prolog of the expression, * or (5) if the expression is in a closed state */ public void bindDocument(QName varName, InputStream value, String baseURI, XQItemType type) throws XQException; /** * Binds a value to the given external variable or the context item. *

*
*
*

* If the value represents a well-formed XML document, it results in a * document node. The kind of the input type must be null, * XQITEMKIND_DOCUMENT_ELEMENT or XQITEMKIND_DOCUMENT_SCHEMA_ELEMENT. *

*
*
*

* The value is converted into an instance of the specified type according * to the rules defined in 14.3 Mapping a Java XML document to an * XQuery document node, XQuery API for Java (XQJ) 1.0. *

*
*
*

* If the value is not well formed, or if a kind of the input type other * than the values list above is specified, behavior is implementation * defined and may raise an exception. If the conversion * fails, or if there is a mismatch between the static and dynamic types, * an XQException is raised either by this method, or during * query evaluation. * * @param varName the name of the external variable to bind to, cannot * be null * @param value the value to be converted, cannot be null * @param type the type of the value for the created * document node. If null is specified, * it behaves as if * XQDataFactory.createDocumentElementType( * XQDataFactory.createElementType(null, * XQItemType.XQBASETYPE_XS_UNTYPED)) were passed in * as the type parameter. That is, the type represents the * XQuery sequence type document-node(element(*, xs:untyped)) * @throws XQException if (1) the varName or value * argument is null, (2) the * conversion of the value to an XDM instance failed, * (3) in case of an XQPreparedExpression, * the dynamic type of the bound value is not compatible * with the static type of the variable, (4) in case of an * XQPreparedExpression, the variable is not * defined in the prolog of the expression, * or (5) if the expression is in a closed state */ public void bindDocument(QName varName, javax.xml.stream.XMLStreamReader value, XQItemType type) throws XQException; /** * Binds a value to the given external variable or the context item * from the given Source. An XQJ * implementation must at least support the following implementations: *

    *
  • javax.xml.transform.dom.DOMSource
  • *
  • javax.xml.transform.sax.SAXSource
  • *
  • javax.xml.transform.stream.StreamSource
  • *
*

*
*
*

* If the value represents a well-formed XML document, it will result in a * document node. The kind of the input type must be null, * XQITEMKIND_DOCUMENT_ELEMENT, or * XQITEMKIND_DOCUMENT_SCHEMA_ELEMENT. *

*
*
*

* The value is converted into an instance of the specified type according * to the rules defined in 14.3 Mapping a Java XML document to an * XQuery document node, XQuery API for Java (XQJ) 1.0. *

*
*
*

* If the value is not well formed, or if a kind of the input type other * than the values list above is specified, behavior is implementation * defined and may raise an exception. If the conversion fails, or if there * is a mismatch between the static and dynamic types, an XQException * is raised either by this method, or during query evaluation. * * @param varName the name of the external variable to bind to, cannot * be null * @param value the value to be converted, cannot be null * @param type the type of the value for the created * document node. If null is specified, * it behaves as if * XQDataFactory.createDocumentElementType( * XQDataFactory.createElementType(null, * XQItemType.XQBASETYPE_XS_UNTYPED)) were passed in * as the type parameter. That is, the type represents the * XQuery sequence type document-node(element(*, xs:untyped)) * @throws XQException if (1) the varName or value * argument is null, (2) the * conversion of the value to an XDM instance failed, * (3) in case of an XQPreparedExpression, * the dynamic type of the bound value is not compatible * with the static type of the variable, (4) in case of an * XQPreparedExpression, the variable is not * defined in the prolog of the expression, * or (5) if the expression is in a closed state */ public void bindDocument(javax.xml.namespace.QName varName, javax.xml.transform.Source value, XQItemType type) throws XQException; /** * Sets the implicit timezone * * @param implicitTimeZone time zone to be set * @throws XQException if the expression is in a closed state */ public void setImplicitTimeZone(java.util.TimeZone implicitTimeZone) throws XQException; /** * Binds a value to the given external variable. The dynamic type of the * value is derived from the XQItem. In case of a mismatch * between the static and dynamic types, an XQException is * raised either by this method, or during query evaluation. * * @param varName the name of the external variable to bind to, * cannot be null * @param value the value to be bound, cannot be null * @throws XQException if (1) any of the arguments are null, * (2) in case of an XQPreparedExpression, * the dynamic type of the bound value is not compatible * with the static type of the variable, * (3) in case of an XQPreparedExpression, * the variable is not defined in the prolog of the * expression, (4) the expression is in a closed state, * or (5) the specified item is closed */ public void bindItem(QName varName, XQItem value) throws XQException; /** * Binds a value to the given external variable or the context item. The input sequence * is consumed from its current position to the end, after which the input sequence's * position will be set to point after the last item. The dynamic type of the value is * derived from the items in the sequence. In case of a mismatch between the static * and dynamic types, an XQException is be raised either by this method, or * during query evaluation. * * @param varName the name of the external variable to bind to, cannot be * null * @param value the value to be bound, cannot be null * @throws XQException if (1) any of the arguments are null, * (2) in case of an XQPreparedExpression, * the dynamic type of the bound value is not compatible * with the static type of the variable, * (3) in case of an XQPreparedExpression, * the variable is not defined in the prolog of * the expression, (4) the expression is in a closed * state, or (5) the specified sequence is closed */ public void bindSequence(QName varName, XQSequence value) throws XQException; /** * Binds a value to the given external variable or the context item. The value is * converted into an instance of the specified type according to the rule defined in * 14.2 Mapping a Java Data Type to an XQuery Data Type, XQuery API for * Java (XQJ) 1.0. If the conversion fails, or if * there is a mismatch between the static and dynamic types, an * XQException is raised either by this method, or during * query evaluation. * * @param varName the name of the external variable to bind to, cannot be * null * @param value the value to be converted, cannot be null * @param type the type of the value to be bound to the external variable. * The default type of the value is used in case null * is specified * @throws XQException if (1) the varName or value argument * is null, (2) the conversion of the value to an * XDM instance failed, (3) in case of an * XQPreparedExpression, the dynamic type of the bound * value is not compatible with the static type of the variable, * (4) in case of an XQPreparedExpression, * the variable is not defined in the prolog of the expression, * or (5) if the expression is in a closed state */ public void bindObject(QName varName, Object value, XQItemType type) throws XQException; /** * Binds a value to the given external variable or the context item. The value is * converted into an instance of the specified type according to the rule defined in * 14.2 Mapping a Java Data Type to an XQuery Data Type, XQuery API for * Java (XQJ) 1.0. If the conversion fails, or if * there is a mismatch between the static and dynamic types, an * XQException is raised either by this method, or during * query evaluation. * * @param varName the name of the external variable to bind to, cannot be * null * @param value the value to be converted * @param type the type of the value to be bound to the external variable. * The default type of the value is used in case null * is specified * @throws XQException if (1) the varName argument * is null, (2) the conversion of the value to an * XDM instance failed, (3) in case of an * XQPreparedExpression, the dynamic type of the bound * value is not compatible with the static type of the variable, * (4) in case of an XQPreparedExpression, * the variable is not defined in the prolog of the expression, * or (5) if the expression is in a closed state */ public void bindBoolean(QName varName, boolean value, XQItemType type) throws XQException; /** * Binds a value to the given external variable or the context item. The value is * converted into an instance of the specified type according to the rule defined in * 14.2 Mapping a Java Data Type to an XQuery Data Type, XQuery API for * Java (XQJ) 1.0. If the conversion fails, or if * there is a mismatch between the static and dynamic types, an * XQException is raised either by this method, or * during query evaluation. * * @param varName the name of the external variable to bind to, cannot be * null * @param value the value to be converted * @param type the type of the value to be bound to the external variable. * The default type of the value is used in case null * is specified * @throws XQException if (1) the varName argument * is null, (2) the conversion of the value to an * XDM instance failed, (3) in case of an * XQPreparedExpression, the dynamic type of the bound * value is not compatible with the static type of the variable, * (4) in case of an XQPreparedExpression, * the variable is not defined in the prolog of the expression, * or (5) if the expression is in a closed state */ public void bindByte(QName varName, byte value, XQItemType type) throws XQException; /** * Binds a value to the given external variable or the context item. The value is * converted into an instance of the specified type according to the rule defined in * 14.2 Mapping a Java Data Type to an XQuery Data Type, XQuery API for * Java (XQJ) 1.0. If the conversion fails, or if * there is a mismatch between the static and dynamic types, an * XQException is raised either by this method, or * during query evaluations. * * @param varName the name of the external variable to bind to, cannot be * null * @param value the value to be converted * @param type the type of the value to be bound to the external variable. * The default type of the value is used in case null * is specified * @throws XQException if (1) the varName argument * is null, (2) the conversion of the value to an * XDM instance failed, (3) in case of an * XQPreparedExpression, the dynamic type of the bound * value is not compatible with the static type of the variable, * (4) in case of an XQPreparedExpression, * the variable is not defined in the prolog of the expression, * or (5) if the expression is in a closed state */ public void bindDouble(QName varName, double value, XQItemType type) throws XQException; /** * Binds a value to the given external variable or the context item. The value is * converted into an instance of the specified type according to the rule defined in * 14.2 Mapping a Java Data Type to an XQuery Data Type, XQuery API for * Java (XQJ) 1.0. If the conversion fails, or if * there is a mismatch between the static and dynamic types, an * XQException is raised either by this method, or * during query evaluations. * * @param varName the name of the external variable to bind to, cannot be * null * @param value the value to be converted * @param type the type of the value to be bound to the external variable. * The default type of the value is used in case null * is specified * @throws XQException if (1) the varName argument * is null, (2) the conversion of the value to an * XDM instance failed, (3) in case of an * XQPreparedExpression, the dynamic type of the bound * value is not compatible with the static type of the variable, * (4) in case of an XQPreparedExpression, * the variable is not defined in the prolog of the expression, * or (5) if the expression is in a closed state */ public void bindFloat(QName varName, float value, XQItemType type) throws XQException; /** * Binds a value to the given external variable or the context item. The value is * converted into an instance of the specified type according to the rule defined in * 14.2 Mapping a Java Data Type to an XQuery Data Type, XQuery API for * Java (XQJ) 1.0. If the conversion fails, or if * there is a mismatch between the static and dynamic types, an * XQException is raised either by this method, or * during query evaluations. * * @param varName the name of the external variable to bind to, cannot be * null * @param value the value to be converted * @param type the type of the value to be bound to the external variable. * The default type of the value is used in case null * is specified * @throws XQException if (1) the varName argument * is null, (2) the conversion of the value to an * XDM instance failed, (3) in case of an * XQPreparedExpression, the dynamic type of the bound * value is not compatible with the static type of the variable, * (4) in case of an XQPreparedExpression, * the variable is not defined in the prolog of the expression, * or (5) if the expression is in a closed state */ public void bindInt(QName varName, int value, XQItemType type) throws XQException; /** * Binds a value to the given external variable or the context item. The value is * converted into an instance of the specified type according to the rule defined in * 14.2 Mapping a Java Data Type to an XQuery Data Type, XQuery API for * Java (XQJ) 1.0. If the conversion fails, or if * there is a mismatch between the static and dynamic types, an * XQException is raised either by this method, or * during query evaluation. * * @param varName the name of the external variable to bind to, cannot be * null * @param value the value to be converted * @param type the type of the value to be bound to the external variable. * The default type of the value is used in case null * is specified * @throws XQException if (1) the varName argument * is null, (2) the conversion of the value to an * XDM instance failed, (3) in case of an * XQPreparedExpression, the dynamic type of the bound * value is not compatible with the static type of the variable, * (4) in case of an XQPreparedExpression, * the variable is not defined in the prolog of the expression, * or (5) if the expression is in a closed state */ public void bindLong(QName varName, long value, XQItemType type) throws XQException; /** * Binds a value to the given external variable or the context item. The value is * converted into an instance of the specified type according to the rule defined in * 14.2 Mapping a Java Data Type to an XQuery Data Type, XQuery API for * Java (XQJ) 1.0. If the conversion fails, or if * there is a mismatch between the static and dynamic types, an * XQException is raised either by this method, or * during query evaluation. * * @param varName the name of the external variable to bind to, cannot be * null * @param value the value to be converted, cannot be null * @param type the type of the value to be bound to the external variable. * The default type of the value is used in case null * is specified * @throws XQException if (1) the varName or value argument * is null, (2) the conversion of the value to an * XDM instance failed, (3) in case of an * XQPreparedExpression, the dynamic type of the bound * value is not compatible with the static type of the variable, * (4) in case of an XQPreparedExpression, * the variable is not defined in the prolog of the expression, * or (5) if the expression is in a closed state */ public void bindNode(QName varName, Node value, XQItemType type) throws XQException; /** * Binds a value to the given external variable or the context item. The value is * converted into an instance of the specified type according to the rule defined in * 14.2 Mapping a Java Data Type to an XQuery Data Type, XQuery API for * Java (XQJ) 1.0. If the conversion fails, or if * there is a mismatch between the static and dynamic types, an * XQException is raised either by this method, or * during query evaluation. * * @param varName the name of the external variable to bind to, cannot be * null * @param value the value to be converted * @param type the type of the value to be bound to the external variable. * The default type of the value is used in case null * is specified * @throws XQException if (1) the varName argument * is null, (2) the conversion of the value to an * XDM instance failed, (3) in case of an * XQPreparedExpression, the dynamic type of the bound * value is not compatible with the static type of the variable, * (4) in case of an XQPreparedExpression, * the variable is not defined in the prolog of the expression, * or (5) if the expression is in a closed state */ public void bindShort(QName varName, short value, XQItemType type) throws XQException; };





© 2015 - 2025 Weber Informatics LLC | Privacy Policy