Package com.saxonica.xqj

## Class SaxonXQDynamicContext

- java.lang.Object
- - com.saxonica.xqj.Closable
  - - com.saxonica.xqj.SaxonXQDynamicContext

- All Implemented Interfaces:
    `XQDynamicContext`
  Direct Known Subclasses:
    `SaxonXQExpression`, `SaxonXQPreparedExpression`

      public abstract class SaxonXQDynamicContext
      extends Closable
      implements XQDynamicContext

  Saxon implementation of the XQJ DynamicContext interface

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected SaxonXQConnection` | `connection` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `SaxonXQDynamicContext()` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `bindAtomicValue​(javax.xml.namespace.QName varname, java.lang.String value, XQItemType type)` | Binds a value to the given external variable or the context item.
    `void` | `bindBoolean​(javax.xml.namespace.QName varname, boolean value, XQItemType type)` | Binds a value to the given external variable or the context item.
    `void` | `bindByte​(javax.xml.namespace.QName varname, byte value, XQItemType type)` | Binds a value to the given external variable or the context item.
    `void` | `bindDocument​(javax.xml.namespace.QName varname, java.io.InputStream value, java.lang.String baseURI, XQItemType type)` | Binds a value to the given external variable or the context item.
    `void` | `bindDocument​(javax.xml.namespace.QName varname, java.io.Reader value, java.lang.String baseURI, XQItemType type)` | Binds a value to the given external variable or the context item.
    `void` | `bindDocument​(javax.xml.namespace.QName varname, java.lang.String value, java.lang.String baseURI, XQItemType type)` | Binds a value to the given external variable or the context item.
    `void` | `bindDocument​(javax.xml.namespace.QName varname, javax.xml.stream.XMLStreamReader value, XQItemType type)` | Binds a value to the given external variable or the context item.
    `void` | `bindDocument​(javax.xml.namespace.QName varname, javax.xml.transform.Source value, XQItemType type)` | Binds a value to the given external variable or the context item from the given `Source`.
    `void` | `bindDouble​(javax.xml.namespace.QName varname, double value, XQItemType type)` | Binds a value to the given external variable or the context item.
    `void` | `bindFloat​(javax.xml.namespace.QName varname, float value, XQItemType type)` | Binds a value to the given external variable or the context item.
    `void` | `bindInt​(javax.xml.namespace.QName varname, int value, XQItemType type)` | Binds a value to the given external variable or the context item.
    `void` | `bindItem​(javax.xml.namespace.QName varname, XQItem value)` | Binds a value to the given external variable.
    `void` | `bindLong​(javax.xml.namespace.QName varname, long value, XQItemType type)` | Binds a value to the given external variable or the context item.
    `void` | `bindNode​(javax.xml.namespace.QName varname, org.w3c.dom.Node value, XQItemType type)` | Binds a value to the given external variable or the context item.
    `void` | `bindObject​(javax.xml.namespace.QName varname, java.lang.Object value, XQItemType type)` | Binds a value to the given external variable or the context item.
    `void` | `bindSequence​(javax.xml.namespace.QName varname, XQSequence value)` | Binds a value to the given external variable or the context item.
    `void` | `bindShort​(javax.xml.namespace.QName varname, short value, XQItemType type)` | Binds a value to the given external variable or the context item.
    `void` | `bindString​(javax.xml.namespace.QName varname, java.lang.String value, XQItemType type)` | Binds a value to the given external variable or the context item.
    `protected abstract boolean` | `externalVariableExists​(javax.xml.namespace.QName name)` |
    `protected Configuration` | `getConfiguration()` |
    `protected abstract SaxonXQDataFactory` | `getDataFactory()` |
    `protected abstract DynamicQueryContext` | `getDynamicContext()` |
    `java.util.TimeZone` | `getImplicitTimeZone()` | Gets the implicit timezone
    `void` | `setImplicitTimeZone​(java.util.TimeZone implicitTimeZone)` | Sets the implicit timezone

    - ### Methods inherited from class com.saxonica.xqj.Closable

      `close, isClosed, setClosableContainer`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### connection

          protected SaxonXQConnection connection

  - ### Constructor Detail

    - #### SaxonXQDynamicContext

          public SaxonXQDynamicContext()

  - ### Method Detail

    - #### getDynamicContext

          protected abstract DynamicQueryContext getDynamicContext()

    - #### getConfiguration

          protected final Configuration getConfiguration()

    - #### getDataFactory

          protected abstract SaxonXQDataFactory getDataFactory()
                                                        throws XQException

      Throws:
        `XQException`

    - #### externalVariableExists

          protected abstract boolean externalVariableExists​(javax.xml.namespace.QName name)

    - #### bindAtomicValue

          public void bindAtomicValue​(javax.xml.namespace.QName varname,
                                      java.lang.String value,
                                      XQItemType type)
                               throws XQException

      Description copied from interface: `XQDynamicContext`
      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.
      Specified by:
        `bindAtomicValue` in interface `XQDynamicContext`
      Parameters:
        `varname` - the name of the external variable to bind to
        `value` - the lexical string value of the type
        `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

    - #### bindBoolean

          public void bindBoolean​(javax.xml.namespace.QName varname,
                                  boolean value,
                                  XQItemType type)
                           throws XQException

      Description copied from interface: `XQDynamicContext`
      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.
      Specified by:
        `bindBoolean` in interface `XQDynamicContext`
      Parameters:
        `varname` - the name of the external variable to bind to, cannot be `null`
        `value` - the value to be converted
        `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

    - #### bindByte

          public void bindByte​(javax.xml.namespace.QName varname,
                               byte value,
                               XQItemType type)
                        throws XQException

      Description copied from interface: `XQDynamicContext`
      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.
      Specified by:
        `bindByte` in interface `XQDynamicContext`
      Parameters:
        `varname` - the name of the external variable to bind to, cannot be `null`
        `value` - the value to be converted
        `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

    - #### bindDocument

          public void bindDocument​(javax.xml.namespace.QName varname,
                                   java.io.InputStream value,
                                   java.lang.String baseURI,
                                   XQItemType type)
                            throws XQException

      Description copied from interface: `XQDynamicContext`
      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.
      Specified by:
        `bindDocument` in interface `XQDynamicContext`
      Parameters:
        `varname` - the name of the external variable to bind to, cannot be `null`
        `value` - the value to be converted, cannot be `null`
        `baseURI` - an optional base URI, can be `null`. It can be used, for example, to resolve relative URIs and to include in error messages.
        `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

    - #### bindDocument

          public void bindDocument​(javax.xml.namespace.QName varname,
                                   java.io.Reader value,
                                   java.lang.String baseURI,
                                   XQItemType type)
                            throws XQException

      Description copied from interface: `XQDynamicContext`
      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.
      Specified by:
        `bindDocument` in interface `XQDynamicContext`
      Parameters:
        `varname` - the name of the external variable to bind to, cannot be `null`
        `value` - the value to be converted, cannot be `null`
        `baseURI` - an optional base URI, can be `null`. It can be used, for example, to resolve relative URIs and to include in error messages.
        `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

    - #### bindDocument

          public void bindDocument​(javax.xml.namespace.QName varname,
                                   javax.xml.transform.Source value,
                                   XQItemType type)
                            throws XQException

      Description copied from interface: `XQDynamicContext`
      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.
      Specified by:
        `bindDocument` in interface `XQDynamicContext`
      Parameters:
        `varname` - the name of the external variable to bind to, cannot be `null`
        `value` - the value to be converted, cannot be `null`
        `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

    - #### bindDocument

          public void bindDocument​(javax.xml.namespace.QName varname,
                                   java.lang.String value,
                                   java.lang.String baseURI,
                                   XQItemType type)
                            throws XQException

      Description copied from interface: `XQDynamicContext`
      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.
      Specified by:
        `bindDocument` in interface `XQDynamicContext`
      Parameters:
        `varname` - the name of the external variable to bind to, cannot be `null`
        `value` - the value to be converted, cannot be `null`
        `baseURI` - an optional base URI, can be `null`. It can be used, for example, to resolve relative URIs and to include in error messages.
        `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

    - #### bindDocument

          public void bindDocument​(javax.xml.namespace.QName varname,
                                   javax.xml.stream.XMLStreamReader value,
                                   XQItemType type)
                            throws XQException

      Description copied from interface: `XQDynamicContext`
      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.
      Specified by:
        `bindDocument` in interface `XQDynamicContext`
      Parameters:
        `varname` - the name of the external variable to bind to, cannot be `null`
        `value` - the value to be converted, cannot be `null`
        `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

    - #### bindDouble

          public void bindDouble​(javax.xml.namespace.QName varname,
                                 double value,
                                 XQItemType type)
                          throws XQException

      Description copied from interface: `XQDynamicContext`
      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.
      Specified by:
        `bindDouble` in interface `XQDynamicContext`
      Parameters:
        `varname` - the name of the external variable to bind to, cannot be `null`
        `value` - the value to be converted
        `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

    - #### bindFloat

          public void bindFloat​(javax.xml.namespace.QName varname,
                                float value,
                                XQItemType type)
                         throws XQException

      Description copied from interface: `XQDynamicContext`
      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.
      Specified by:
        `bindFloat` in interface `XQDynamicContext`
      Parameters:
        `varname` - the name of the external variable to bind to, cannot be `null`
        `value` - the value to be converted
        `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

    - #### bindInt

          public void bindInt​(javax.xml.namespace.QName varname,
                              int value,
                              XQItemType type)
                       throws XQException

      Description copied from interface: `XQDynamicContext`
      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.
      Specified by:
        `bindInt` in interface `XQDynamicContext`
      Parameters:
        `varname` - the name of the external variable to bind to, cannot be `null`
        `value` - the value to be converted
        `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

    - #### bindItem

          public void bindItem​(javax.xml.namespace.QName varname,
                               XQItem value)
                        throws XQException

      Description copied from interface: `XQDynamicContext`
      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.
      Specified by:
        `bindItem` in interface `XQDynamicContext`
      Parameters:
        `varname` - the name of the external variable to bind to, cannot be `null`
        `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

    - #### bindLong

          public void bindLong​(javax.xml.namespace.QName varname,
                               long value,
                               XQItemType type)
                        throws XQException

      Description copied from interface: `XQDynamicContext`
      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.
      Specified by:
        `bindLong` in interface `XQDynamicContext`
      Parameters:
        `varname` - the name of the external variable to bind to, cannot be `null`
        `value` - the value to be converted
        `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

    - #### bindNode

          public void bindNode​(javax.xml.namespace.QName varname,
                               org.w3c.dom.Node value,
                               XQItemType type)
                        throws XQException

      Description copied from interface: `XQDynamicContext`
      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.
      Specified by:
        `bindNode` in interface `XQDynamicContext`
      Parameters:
        `varname` - the name of the external variable to bind to, cannot be `null`
        `value` - the value to be converted, cannot be `null`
        `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

    - #### bindObject

          public void bindObject​(javax.xml.namespace.QName varname,
                                 java.lang.Object value,
                                 XQItemType type)
                          throws XQException

      Description copied from interface: `XQDynamicContext`
      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.
      Specified by:
        `bindObject` in interface `XQDynamicContext`
      Parameters:
        `varname` - the name of the external variable to bind to, cannot be `null`
        `value` - the value to be converted, cannot be `null`
        `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

    - #### bindSequence

          public void bindSequence​(javax.xml.namespace.QName varname,
                                   XQSequence value)
                            throws XQException

      Description copied from interface: `XQDynamicContext`
      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.
      Specified by:
        `bindSequence` in interface `XQDynamicContext`
      Parameters:
        `varname` - the name of the external variable to bind to, cannot be `null`
        `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

    - #### bindShort

          public void bindShort​(javax.xml.namespace.QName varname,
                                short value,
                                XQItemType type)
                         throws XQException

      Description copied from interface: `XQDynamicContext`
      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.
      Specified by:
        `bindShort` in interface `XQDynamicContext`
      Parameters:
        `varname` - the name of the external variable to bind to, cannot be `null`
        `value` - the value to be converted
        `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

    - #### bindString

          public void bindString​(javax.xml.namespace.QName varname,
                                 java.lang.String value,
                                 XQItemType type)
                          throws XQException

      Description copied from interface: `XQDynamicContext`
      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.
      Specified by:
        `bindString` in interface `XQDynamicContext`
      Parameters:
        `varname` - the name of the external variable to bind to, cannot be `null`
        `value` - the value to be converted, cannot be `null`
        `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

    - #### getImplicitTimeZone

          public java.util.TimeZone getImplicitTimeZone()
                                                 throws XQException

      Description copied from interface: `XQDynamicContext`
      Gets the implicit timezone
      Specified by:
        `getImplicitTimeZone` in interface `XQDynamicContext`
      Returns:
        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

    - #### setImplicitTimeZone

          public void setImplicitTimeZone​(java.util.TimeZone implicitTimeZone)
                                   throws XQException

      Description copied from interface: `XQDynamicContext`
      Sets the implicit timezone
      Specified by:
        `setImplicitTimeZone` in interface `XQDynamicContext`
      Parameters:
        `implicitTimeZone` - time zone to be set
      Throws:
        `XQException` - if the expression is in a closed state