public abstract class SaxonXQDataFactory extends Closable implements XQDataFactory
Constructor and Description |
---|
SaxonXQDataFactory() |
Modifier and Type | Method and Description |
---|---|
XQItemType |
createAtomicType(int baseType)
Create an atomic item type object representing a particular built-in atomic type
|
XQItemType |
createAtomicType(int baseType,
QName typename,
URI schemaURI)
See interface definition, and description of Saxon extensions below.
|
XQItemType |
createAttributeType(QName nodename,
int basetype)
Creates a new
XQItemType object representing the XQuery
attribute(nodename, basetype) type
with the given node name and base type. |
XQItemType |
createAttributeType(QName nodename,
int basetype,
QName typename,
URI schemaURI)
Creates a new
XQItemType object representing the XQuery
attribute(nodename,basetype,typename,schemaURI) type,
with the given node name, base type, schema type name and schema URI. |
XQItemType |
createCommentType()
Creates a new
XQItemType object representing the XQuery
comment() type. |
XQItemType |
createDocumentElementType(XQItemType elementType)
Creates a new
XQItemType object representing the XQuery
document-node(elementType) type containing a single element. |
XQItemType |
createDocumentSchemaElementType(XQItemType type)
Creates a new
XQItemType object representing the XQuery
document-node(elementType) type containing a single
schema-element(...) . |
XQItemType |
createDocumentType()
Creates a new
XQItemType object representing the XQuery
document-node() type. |
XQItemType |
createElementType(QName nodename,
int basetype)
Creates a new
XQItemType object representing the XQuery
element(nodename, basetype) type, with the
given node name and base type. |
XQItemType |
createElementType(QName nodename,
int basetype,
QName typename,
URI schemaURI,
boolean allowNill)
Creates a new
XQItemType object representing the XQuery
element(nodename,basetype,typename,schemaURI,
allowNill) type, given the node name, base type, schema type
name, schema URI, and nilled check. |
XQItem |
createItem(XQItem item)
Creates a copy of the specified
XQItem . |
XQItem |
createItemFromAtomicValue(String value,
XQItemType type)
Creates an item from a given value.
|
XQItem |
createItemFromBoolean(boolean value,
XQItemType type)
Creates an item from a given value.
|
XQItem |
createItemFromByte(byte value,
XQItemType type)
Creates an item from a given value.
|
XQItem |
createItemFromDocument(InputStream value,
String baseURI,
XQItemType type)
Creates an item from the given value.
|
XQItem |
createItemFromDocument(Reader value,
String baseURI,
XQItemType type)
Creates an item from the given value.
|
XQItem |
createItemFromDocument(Source value,
XQItemType type)
Creates an item from the given
Source . |
XQItem |
createItemFromDocument(String value,
String baseURI,
XQItemType type)
Creates an item from the given value.
|
XQItem |
createItemFromDocument(XMLStreamReader value,
XQItemType type)
Creates an item from the given value.
|
XQItem |
createItemFromDouble(double value,
XQItemType type)
Creates an item from a given value.
|
XQItem |
createItemFromFloat(float value,
XQItemType type)
Creates an item from a given value.
|
XQItem |
createItemFromInt(int value,
XQItemType type)
Creates an item from a given value.
|
XQItem |
createItemFromLong(long value,
XQItemType type)
Creates an item from a given value.
|
XQItem |
createItemFromNode(Node value,
XQItemType type)
Creates an item from a given value.
|
XQItem |
createItemFromObject(Object value,
XQItemType type)
Creates an item from a given value.
|
XQItem |
createItemFromShort(short value,
XQItemType type)
Creates an item from a given value.
|
XQItem |
createItemFromString(String value,
XQItemType type)
Creates an item from a given value.
|
XQItemType |
createItemType()
Creates a new
XQItemType object representing the XQuery item type. |
XQItemType |
createNodeType()
Creates a new
XQItemType object representing the XQuery node()
type. |
XQItemType |
createProcessingInstructionType(String piTarget)
Creates a new
XQItemType object representing the XQuery
processing-instruction(piTarget) type. |
XQItemType |
createSchemaAttributeType(QName nodename,
int basetype,
URI schemaURI)
Creates a new
XQItemType object representing the XQuery
schema-attribute(nodename,basetype,schemaURI) type,
with the given node name, base type, and schema URI. |
XQItemType |
createSchemaElementType(QName nodename,
int basetype,
URI schemaURI)
Creates a new
XQItemType object representing the XQuery
schema-element(nodename,basetype,schemaURI)
type, given the node name, base type, and the schema URI. |
XQSequence |
createSequence(Iterator i)
Creates an
XQSequence , containing all the items from the
iterator. |
XQSequence |
createSequence(XQSequence s)
Creates a copy of the specified
XQSequence . |
XQSequenceType |
createSequenceType(XQItemType item,
int occurrence)
Creates a new sequence type from an item type and occurence indicator.
|
XQItemType |
createTextType()
Creates a new
XQItemType object representing the XQuery
text() type. |
ObjectConverter |
getObjectConverter()
Get the ObjectConverter in use.
|
protected void |
init() |
void |
setObjectConverter(ObjectConverter converter)
Set the ObjectConverter to be used.
|
close, isClosed, setClosableContainer
protected void init()
public void setObjectConverter(ObjectConverter converter)
converter
- the user-supplied ObjectConverterpublic ObjectConverter getObjectConverter()
public XQItemType createAtomicType(int baseType) throws XQException
createAtomicType
in interface XQDataFactory
baseType
- the built-in atomic type, typically a constant such as
XQItemType.XQBASETYPE_BOOLEANXQException
- if the supplied baseType parameter is not an atomic typepublic XQItemType createAtomicType(int baseType, QName typename, URI schemaURI) throws XQException
In addition to the actions described in the XQJ interface definitions, Saxon allows the
typename to be a name representing a Java external type. In this case the URI part of the QName
must be NamespaceConstant.JAVA_TYPE
, and the local part of the name must be the Java class
name (qualified with its package name)
createAtomicType
in interface XQDataFactory
baseType
- the "baseType" (in XQJ terminology)typename
- the qualified name of the typeschemaURI
- the location of a schema document in which the type is defined (may be null)XQException
public XQItemType createAttributeType(QName nodename, int basetype) throws XQException
XQDataFactory
XQItemType
object representing the XQuery
attribute(nodename, basetype)
type
with the given node name and base type. This method can be used to create
item type for attributes with a pre-defined schema type.
XQConnection conn = ..; // An XQuery connection - attribute() // no node name, pass null for the node name conn.createAttributeType(null, XQItemType.XQBASETYPE_ANYSIMPLETYPE); - attribute (*) // equivalent to attribute() conn.createAttributeType(null, XQItemType.XQBASETYPE_ANYSIMPLETYPE); - attribute (person) // attribute of name person and any simple type. conn.createAttributeType(new QName("person"), XQItemType.XQBASETYPE_ANYSIMPLETYPE); - attribute(foo:bar) // node name foo:bar, type is any simple type conn.createAttributeType(new QName("http://www.foo.com", "bar","foo"), XQItemType.XQBASETYPE_ANYSIMPLETYPE); - attribute(foo:bar, xs:integer) // node name foo:bar, type is xs:integer conn.createAttributeType(new QName("http://www.foo.com", "bar","foo"), XQItemType.XQBASETYPE_INTEGER);
createAttributeType
in interface XQDataFactory
nodename
- specifies the name of the node.null
indicates a wildcard for the node namebasetype
- the base type of the attribute. One of the
XQItemType.XQBASETYPE_*
other than XQItemType.XQBASETYPE_UNTYPED
or XQItemType.XQBASETYPE_ANYTYPE
XQItemType
representing the XQuery
attribute(nodename, basetype)
typeXQException
- if (1) the underlying object implementing the interface is closed or
(2) if the base type is one of:
XQItemType.XQBASETYPE_UNTYPED
or XQItemType.XQBASETYPE_ANYTYPE
public XQItemType createAttributeType(QName nodename, int basetype, QName typename, URI schemaURI) throws XQException
XQDataFactory
XQItemType
object representing the XQuery
attribute(nodename,basetype,typename,schemaURI)
type,
with the given node name, base type, schema type name and schema URI. The type name can
reference either pre-defined simple types or user-defined simple types.
XQConnection conn = ..; // An XQuery connection - attribute (name, employeename) // attribute name of type employeename conn.createAttributeType(new QName("name"), XQItemType.XQBASETYPE_ANYSIMPLETYPE, new QName("employeename"), null); - attribute (foo:bar, po:city) where the prefix foo refers to the namespace http://www.foo.com and the prefix po refers to the namespace "http://www.address.com" conn.createAttributeType(new QName("http://www.foo.com", "bar","foo"), XQItemType.XQBASETYPE_ANYSIMPLETYPE, new QName("http://address.com", "address","po"), null); - attribute (zip, zipcode) // attribute zip of type zipchode which derives from // xs:string conn.createAttributeType(new QName("zip"), XQItemType.XQBASETYPE_STRING, new QName("zipcode"), null); - attribute(foo:bar, po:hatsize) where the prefix foo refers to the namespace http://www.foo.com and the prefix po refers to the namespace "http://www.hatsizes.com" with schema URI "http://hatschema.com" conn.createAttributeType(new QName("http://www.foo.com", "bar","foo"), XQItemType.XQBASETYPE_INTEGER, new QName("http://www.hatsizes.com", "hatsize","po"), new QName("http://hatschema.com"));
createAttributeType
in interface XQDataFactory
nodename
- specifies the name of the node.null
indicates a wildcard for the node namebasetype
- the base type of the attribute. One of the
XQItemTyupe.XQBASETYPE_*
constants
other than XQItemType.XQBASETYPE_UNTYPED
or
XQItemType.XQBASETYPE_ANYTYPE
typename
- the QName
of the type. If the QName
refers to a predefinied type, it must match
the basetype
. Can be null
.schemaURI
- the URI to the schema. Can be null
. This can
only be specified if the typename is also specifiedXQItemType
representing the XQuery
attribute(nodename,basetype,
typename,schemaURI)
type.XQException
- if (1) the underlying object implementing the interface is closed,
(2) if the base type is one of:
XQItemType.XQBASETYPE_UNTYPED
or
XQItemType.XQBASETYPE_ANYTYPE
,
(3) the schema URI is specified and the typename
is not specified, (4) the implementation does
not support user-defined XML schema types, or (5)
if the typename
refers to a predefinied
type and does not match basetype
public XQItemType createCommentType() throws XQException
XQDataFactory
XQItemType
object representing the XQuery
comment()
type. The XQItemType
object will have
the item kind set to XQItemType.XQITEMKIND_COMMENT
.
XQConnection conn = ..; // An XQuery connection XQItemType cmttype = conn.createCommentType(); int itemkind = cmttype.getItemKind(); // will be XQItemType.XQITEMKIND_COMMENT XQExpression expr = conn.createExpression(); XQSequence result = expr.executeQuery("<!-- comments -->"); result.next(); boolean pi = result.instanceOf(cmttype); // will be true
createCommentType
in interface XQDataFactory
XQItemType
representing the XQuery
comment()
typeXQException
- if the underlying object implementing the interface is closedpublic XQItemType createDocumentElementType(XQItemType elementType) throws XQException
XQDataFactory
XQItemType
object representing the XQuery
document-node(elementType)
type containing a single element.
The XQItemType
object will have the item kind set to
XQItemType.XQITEMKIND_DOCUMENT_ELEMENT
and the
base type set to the item type of the input elementType
.createDocumentElementType
in interface XQDataFactory
elementType
- an XQItemType
object representing an XQuery
element()
type, cannot be null
XQItemType
representing the XQuery
document-node(elementType)
type containing
a single elementXQException
- if (1) the underlying object implementing the interface is
closed or (2) the elementType
has an item kind
different from XQItemType.XQITEMKIND_ELEMENT
,
(3) the elementType
argument is null
,
or (4) the implementation does not support user-defined XML
schema typespublic XQItemType createDocumentSchemaElementType(XQItemType type) throws XQException
XQDataFactory
XQItemType
object representing the XQuery
document-node(elementType)
type containing a single
schema-element(...)
. The XQItemType
object will
have the item kind set to XQItemType.XQITEMKIND_DOCUMENT_SCHEMA_ELEMENT
and the
base type set to the item type of the input elementType
.createDocumentSchemaElementType
in interface XQDataFactory
type
- an XQItemType
object representing an XQuery
schema-element(...)
type, cannot be null
XQItemType
representing the XQuery
document-node(elementType)
type containing
a single schema-element(...)
elementXQException
- if (1) the underlying object implementing the interface is
closed or (2) the elementType
has an item kind
different from XQItemType.XQITEMKIND_SCHEMA_ELEMENT
,
(3) the elementType
argument is null
,
(4) the implementation does not support user-defined XML
schema typespublic XQItemType createDocumentType() throws XQException
XQDataFactory
XQItemType
object representing the XQuery
document-node()
type. The XQItemType
object will have the item kind
set to XQItemType.XQITEMKIND_DOCUMENT
.createDocumentType
in interface XQDataFactory
XQItemType
representing the XQuery
document-node()
typeXQException
- if the underlying object implementing the interface is closedpublic XQItemType createElementType(QName nodename, int basetype) throws XQException
XQDataFactory
XQItemType
object representing the XQuery
element(nodename, basetype)
type, with the
given node name and base type. This method can be used to create item
type for elements with a pre-defined schema type.
XQConnection conn = ..; // An XQuery connection - element() // no node name, pass null for the node name conn.createElementType(null, XQItemType.XQBASETYPE_ANYTYPE); - element (*) // equivalent to element() conn.createElementType(null, XQItemType.XQBASETYPE_ANYTYPE); - element(person) // element of name person and any type. conn.createElementType(new QName("person"), XQItemType.XQBASETYPE_ANYTYPE); - element(foo:bar) // node name foo:bar, type is anytype conn.createElementType(new QName("http://www.foo.com", "bar","foo"), XQItemType.XQBASETYPE_ANYTYPE); - element(foo:bar, xs:integer) // node name foo:bar, type is xs:integer conn.createElementType(new QName("http://www.foo.com", "bar","foo"), XQItemType.XQBASETYPE_INTEGER);
createElementType
in interface XQDataFactory
nodename
- specifies the name of the node. null
indicates a wildcard for the node namebasetype
- the base type of the item. One of the
XQItemType.XQBASETYPE_*
constantsXQItemType
representing the XQuery
element(nodename, basetype)
typeXQException
- if (1) the underlying object implementing the interface
is closedpublic XQItemType createElementType(QName nodename, int basetype, QName typename, URI schemaURI, boolean allowNill) throws XQException
XQDataFactory
XQItemType
object representing the XQuery
element(nodename,basetype,typename,schemaURI,
allowNill)
type, given the node name, base type, schema type
name, schema URI, and nilled check. The type name can reference either pre-defined
schema types or user-defined types.
XQConnection conn = ..; // An XQuery connection - element (person, employee) // element person of type employee conn.createElementType(new QName("person"), XQItemType.XQBASETYPE_ANYTYPE, new QName("employee"), null ,false); - element(person, employee ? ) // element person of type employee, whose nilled // property may be true or false. conn.createElementType(new QName("person"), XQItemType.XQBASETYPE_ANYTYPE, new QName("employee"), null ,true); - element(foo:bar, po:address) where the prefix foo refers to the namespace http://www.foo.com and the prefix po refers to the namespace "http://www.address.com" conn.createElementType(new QName("http://www.foo.com", "bar","foo"), XQItemType.XQBASETYPE_ANYTYPE, new QName("http://address.com", "address","po"), null, false); - element (zip, zipcode) // element zip of type zipchode which derives from // xs:string conn.createElementType(new QName("zip"), XQItemType.XQBASETYPE_STRING, new QName("zipcode"), null, false); - element (*, xs:anyType ?) conn.createElementType(null, XQItemType.XQBASETYPE_ANYTYPE, null, null, true); - element(foo:bar, po:hatsize) where the prefix foo refers to the namespace http://www.foo.com and the prefix po refers to the namespace "http://www.hatsizes.com" with schema URI "http://hatschema.com" conn.createElementType(new QName("http://www.foo.com", "bar","foo"), XQItemType.XQBASETYPE_INTEGER, new QName("http://www.hatsizes.com", "hatsize","po"), new QName("http://hatschema.com"), false);
createElementType
in interface XQDataFactory
nodename
- specifies the name of the element. null
indicates a wildcard for the node namebasetype
- the base type of the item. One of the
XQItemType.XQBASETYPE_*
constantstypename
- the QName
of the type. If the QName
refers to a predefinied type, it must match
the basetype
. Can be null
schemaURI
- the URI to the schema. Can be null
. This can
only be specified if the typename is also specifiedallowNill
- the nilled property of the elementXQItemType
representing the XQuery
element(nodename,basetype,
typename,schemaURI,
allowNill)
typeXQException
- if (1) schemaURI is specified but the typename is not
specified, (2) the underlying object implementing the
interface is closed, (3) the implementation does
not support user-defined XML schema types, or
(4) if the typename
refers to a predefinied
type and does not match basetype
public XQItem createItem(XQItem item) throws XQException
XQDataFactory
XQItem
. This method can be used, for
example, to copy an XQResultItem
object so that the new item is not
dependant on the connection.createItem
in interface XQDataFactory
item
- the XQItem
to copyXQItem
independent of any underlying
XQConnection
is createdXQException
- if (1) the specified item is null
,
(2) the underlying object implementing the interface is
closed, (3) the specified item is closedpublic XQItem createItemFromAtomicValue(String value, XQItemType type) throws XQException
XQDataFactory
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
an XQException
is thrown.createItemFromAtomicValue
in interface XQDataFactory
value
- the lexical string value of the typetype
- the item typeXQItem
representing the resulting itemXQException
- 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, or (4) the underlying object
implementing the interface is closedpublic XQItem createItemFromBoolean(boolean value, XQItemType type) throws XQException
XQDataFactory
XQException
will be thrown.createItemFromBoolean
in interface XQDataFactory
value
- the value to be convertedtype
- the type of the value to be bound to
the external variable. The default type of
the value is used in case null
is
specifiedXQItem
representing the resulting itemXQException
- (1) the conversion of the value
to an XDM instance failed, or (2) the underlying object
implementing the interface is closedpublic XQItem createItemFromByte(byte value, XQItemType type) throws XQException
XQDataFactory
XQException
will be thrown.createItemFromByte
in interface XQDataFactory
value
- the value to be convertedtype
- the type of the value to be bound to
the external variable. The default type of
the value is used in case null
is
specifiedXQItem
representing the resulting itemXQException
- (1) the conversion of the value
to an XDM instance failed, or (2) the underlying object
implementing the interface is closedpublic XQItem createItemFromDocument(InputStream value, String baseURI, XQItemType type) throws XQException
XQDataFactory
null
,
XQITEMKIND_DOCUMENT_ELEMENT
, or
XQITEMKIND_DOCUMENT_SCHEMA_ELEMENT
.
createItemFromDocument
in interface XQDataFactory
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))
XQItem
representing the resulting
itemXQException
- if (1) the value argument is null
,
(2) the conversion of the value to an XDM instance
failed, or (3) the underlying object
implementing the interface is closedpublic XQItem createItemFromDocument(Reader value, String baseURI, XQItemType type) throws XQException
XQDataFactory
null
,
XQITEMKIND_DOCUMENT_ELEMENT
, or
XQITEMKIND_DOCUMENT_SCHEMA_ELEMENT
.
createItemFromDocument
in interface XQDataFactory
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))
XQItem
representing the resulting
itemXQException
- if (1) the value argument is null
,
(2) the conversion of the value to an XDM instance
failed, or (3) the underlying object
implementing the interface is closedpublic XQItem createItemFromDocument(Source value, XQItemType type) throws XQException
XQDataFactory
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
null
,
XQITEMKIND_DOCUMENT_ELEMENT
, or
XQITEMKIND_DOCUMENT_SCHEMA_ELEMENT
.
createItemFromDocument
in interface XQDataFactory
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))
XQItem
representing the resulting
itemXQException
- if (1) the value argument is null
, (2)
the conversion of the value to an XDM instance failed,
or (3) the underlying object implementing the interface
is closedpublic XQItem createItemFromDocument(String value, String baseURI, XQItemType type) throws XQException
XQDataFactory
null
,
XQITEMKIND_DOCUMENT_ELEMENT
, or
XQITEMKIND_DOCUMENT_SCHEMA_ELEMENT
.
createItemFromDocument
in interface XQDataFactory
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))
XQItem
representing the resulting
itemXQException
- if (1) the value argument is null
,
(2) the conversion of the value to an XDM instance
failed, or (3) the underlying object
implementing the interface is closedpublic XQItem createItemFromDocument(XMLStreamReader value, XQItemType type) throws XQException
XQDataFactory
null
,
XQITEMKIND_DOCUMENT_ELEMENT
or XQITEMKIND_DOCUMENT_SCHEMA_ELEMENT
.
createItemFromDocument
in interface XQDataFactory
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))
XQItem
representing the resulting
itemXQException
- if (1) the value argument is null
, (2)
the conversion of the value to an XDM instance failed,
or (3) the underlying object implementing the interface
is closedpublic XQItem createItemFromDouble(double value, XQItemType type) throws XQException
XQDataFactory
XQException
will be thrown.createItemFromDouble
in interface XQDataFactory
value
- the value to be convertedtype
- the type of the value to be bound to
the external variable. The default type of
the value is used in case null
is
specifiedXQItem
representing the resulting itemXQException
- (1) the conversion of the value
to an XDM instance failed, or (2) the underlying object
implementing the interface is closedpublic XQItem createItemFromFloat(float value, XQItemType type) throws XQException
XQDataFactory
XQException
will be thrown.createItemFromFloat
in interface XQDataFactory
value
- the value to be convertedtype
- the type of the value to be bound to
the external variable. The default type of
the value is used in case null
is
specifiedXQItem
representing the resulting itemXQException
- (1) the conversion of the value
to an XDM instance failed, or (2) the underlying object
implementing the interface is closedpublic XQItem createItemFromInt(int value, XQItemType type) throws XQException
XQDataFactory
XQException
will be thrown.createItemFromInt
in interface XQDataFactory
value
- the value to be convertedtype
- the type of the value to be bound to
the external variable. The default type of
the value is used in case null
is
specifiedXQItem
representing the resulting itemXQException
- (1) the conversion of the value
to an XDM instance failed, or (2) the underlying object
implementing the interface is closedpublic XQItem createItemFromLong(long value, XQItemType type) throws XQException
XQDataFactory
XQException
will be thrown.createItemFromLong
in interface XQDataFactory
value
- the value to be convertedtype
- the type of the value to be bound to
the external variable. The default type of
the value is used in case null
is
specifiedXQItem
representing the resulting itemXQException
- (1) the conversion of the value
to an XDM instance failed, or (2) the underlying object
implementing the interface is closedpublic XQItem createItemFromNode(Node value, XQItemType type) throws XQException
XQDataFactory
XQException
will be thrown.createItemFromNode
in interface XQDataFactory
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
specifiedXQItem
representing the resulting itemXQException
- if (1) the value
argument is
null
, (2) the conversion of the value
to an XDM instance failed, or (3) the underlying object
implementing the interface is closedpublic XQItem createItemFromObject(Object value, XQItemType type) throws XQException
XQDataFactory
XQException
will be thrown.createItemFromObject
in interface XQDataFactory
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
specifiedXQItem
representing the resulting itemXQException
- if (1) the value
argument is
null
, (2) the conversion of the value
to an XDM instance failed, or (3) the underlying object
implementing the interface is closedpublic XQItem createItemFromString(String value, XQItemType type) throws XQException
XQDataFactory
xs:string
or a type derived by restriction from
xs:string
. If the specified type is null
, it
defaults to xs:string
.XQException
will be thrown.createItemFromString
in interface XQDataFactory
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 specifiedXQItem
representing the resulting
itemXQException
- if (1) the value
argument is
null
, (2) the conversion of the
value to an XDM instance failed, or (3) the
underlying object implementing the interface
is closedpublic XQItemType createItemType() throws XQException
XQDataFactory
XQItemType
object representing the XQuery item type.
The XQItemType
object will have the item kind set to
XQItemType.XQITEMKIND_ITEM
.
XQConnection conn = ..; // An XQuery connection XQItemType typ = conn.createItemType(); // represents the XQuery item type "item()"
createItemType
in interface XQDataFactory
XQItemType
representing the XQuery
item typeXQException
- if the underlying object implementing the interface
is closedpublic XQItem createItemFromShort(short value, XQItemType type) throws XQException
XQDataFactory
XQException
will be thrown.createItemFromShort
in interface XQDataFactory
value
- the value to be convertedtype
- the type of the value to be bound to
the external variable. The default type of
the value is used in case null
is
specifiedXQItem
representing the resulting itemXQException
- (1) the conversion of the value
to an XDM instance failed, or (2) the underlying object
implementing the interface is closedpublic XQItemType createNodeType() throws XQException
XQDataFactory
XQItemType
object representing the XQuery node()
type. The XQItemType
object will have the item kind set to
XQItemType.XQITEMKIND_NODE
.createNodeType
in interface XQDataFactory
XQItemType
representing the
XQuery node()
typeXQException
- if the underlying object implementing the interface
is closedpublic XQItemType createProcessingInstructionType(String piTarget) throws XQException
XQDataFactory
XQItemType
object representing the XQuery
processing-instruction(piTarget)
type. The XQItemType
object
will have the item kind set to XQItemType.XQITEMKIND_PI
. A
string literal can be passed to match the PITarget of the processing instruction
as described in
2.5.4.2 Matching an Item Type and an Item, XQuery 1.0: An XML Query Language.
XQConnection conn = ..; // An XQuery connection XQItemType anypi = conn.createProcessingInstructionType(); XQItemType foopi = conn.createProcessingInstructionType("foo-format"); XQExpression expr = conn.createExpression(); XQSequence result = expr.executeQuery("<?format role="output" ?>"); result.next(); boolean pi = result.instanceOf(anypi); // will be true pi = result.instanceOf(foopi); // will be false XQExpression expr = conn.createExpression(); XQSequence result = expr.executeQuery("<?foo-format role="output" ?>"); result.next(); boolean pi = result.instanceOf(anypi); // will be true pi = result.instanceOf(foopi); // will be true
createProcessingInstructionType
in interface XQDataFactory
piTarget
- the string literal to match the processing
instruction's PITarget. A null
string
value will match all processing instruction nodesXQItemType
representing the XQuery
processing-instruction(piTarget)
typeXQException
- if the underlying object implementing the interface is
closedpublic XQItemType createSchemaAttributeType(QName nodename, int basetype, URI schemaURI) throws XQException
XQDataFactory
XQItemType
object representing the XQuery
schema-attribute(nodename,basetype,schemaURI)
type,
with the given node name, base type, and schema URI.
XQConnection conn = ..; // An XQuery connection - schema-attribute (name) // schema-attribute name, found in the schema // available at http://customerschema.com conn.createSchemaAttributeType(new QName("name"), XQItemType.XQBASETYPE_STRING, new URI(http://customerschema.com));
createSchemaAttributeType
in interface XQDataFactory
nodename
- specifies the name of the nodebasetype
- the base type of the attribute. One of the
XQItemTyupe.XQBASETYPE_*
constants
other than XQItemType.XQBASETYPE_UNTYPED
or
XQItemType.XQBASETYPE_ANYTYPE
schemaURI
- the URI to the schema. Can be null
XQItemType
representing the XQuery
schema-attribute(nodename,basetype,
schemaURI)
typeXQException
- if (1) the node name is null
,
(2) if the base type is one of:
XQItemType.XQBASETYPE_UNTYPED
or
XQItemType.XQBASETYPE_ANYTYPE
,
(3) the underlying object implementing the interface
is closed, or (4) the implementation does
not support user-defined XML schema typespublic XQItemType createSchemaElementType(QName nodename, int basetype, URI schemaURI) throws XQException
XQDataFactory
XQItemType
object representing the XQuery
schema-element(nodename,basetype,schemaURI)
type, given the node name, base type, and the schema URI.
XQConnection conn = ..; // An XQuery connection - schema-element (customer) // schema-element person, found in // the schema available at http://customerschema.com conn.createElementType(new QName("customer"), XQItemType.XQBASETYPE_ANYTYPE, new URI("http://customerschema.com"));
createSchemaElementType
in interface XQDataFactory
nodename
- specifies the name of the elementbasetype
- the base type of the item. One of the
XQItemType.XQBASETYPE_*
constantsschemaURI
- the URI to the schema. Can be null
XQItemType
representing the XQuery
schema-element(nodename,basetype,
schemaURI)
typeXQException
- if (1) the node name is null
,
(2) the underlying object implementing the
interface is closed, or (3) the implementation does
not support user-defined XML schema typespublic XQSequence createSequence(Iterator i) throws XQException
XQDataFactory
XQSequence
, containing all the items from the
iterator. The newly created XQSequence
is scrollable and
independent of any underlying XQConnection
.
If the iterator returns an XQItem
, it is added to the
sequence. If the iterator returns any other object, an item is added to the
sequence following the rules from 14.2 Mapping a Java Data Type
to an XQuery Data Type, XQuery API for Java (XQJ) 1.0.
If the iterator does not return any items, then an empty sequence is created.createSequence
in interface XQDataFactory
i
- input iteratorXQSequence
representing the sequence
containing all items from the input iteratorXQException
- if (1) the conversion of any of the objects in the
iterator to item fails, (2)
the i
parameter is null
,
or (3) underlying object implementing the interface
is closedpublic XQSequence createSequence(XQSequence s) throws XQException
XQDataFactory
XQSequence
. The newly created
XQSequence
is scrollable and independent of any underlying
XQConnection
. The new XQSequence
will contain all
items from the specified XQSequence
starting from its current
position. The copy process will implicitly perform next operations on the
specified sequence to read the items. All items are consumed, the current
position of the cursor is set to point after the last item.createSequence
in interface XQDataFactory
s
- input sequenceXQSequence
representing a copy of
the input sequenceXQException
- if (1) there are errors accessing the items in
the specified sequence, (2) the specified sequence
is closed, (3) in the case of a forward only
sequence, a get or write method has already
been invoked on the current item, (4)
the s
parameter is null
,
or (5) the underlying object implementing the
interface is closedpublic XQSequenceType createSequenceType(XQItemType item, int occurrence) throws XQException
XQDataFactory
createSequenceType
in interface XQDataFactory
item
- the item type. This parameter must be null
if
the occurance is XQSequenceType.OCC_EMPTY
,
and cannot be null
for any other
occurance indicatoroccurrence
- The occurence of the item type, must be one of
XQSequenceType.OCC_ZERO_OR_ONE
,
XQSequenceType.OCC_EXACTLY_ONE
,
XQSequenceType.OCC_ZERO_OR_MORE
,
XQSequenceType.OCC_ONE_OR_MORE
,
XQSequenceType.OCC_EMPTY
XQSequenceType
representing the
type of a sequenceXQException
- if (1) the item
is null
and the occurance is not XQSequenceType.OCC_EMPTY
,
(2) the item
is not null
and the occurance is XQSequenceType.OCC_EMPTY
,
(3) the occurence is not one of:
XQSequenceType.OCC_ZERO_OR_ONE
,
XQSequenceType.OCC_EXACTLY_ONE
,
XQSequenceType.OCC_ZERO_OR_MORE
,
XQSequenceType.OCC_ONE_OR_MORE
,
XQSequenceType.OCC_EMPTY
or (4) the underlying object implementing the
interface is closedpublic XQItemType createTextType() throws XQException
XQDataFactory
XQItemType
object representing the XQuery
text()
type. The XQItemType
object will have the
item kind set to XQItemType.XQITEMKIND_TEXT
.createTextType
in interface XQDataFactory
XQItemType
representing the XQuery
text()
typeXQException
- if the underlying object implementing the interface is
closedCopyright (c) 2004-2014 Saxonica Limited. All rights reserved.