Class XdmItem
- Direct Known Subclasses:
XdmAtomicValue
,XdmExternalObject
,XdmFunctionItem
,XdmNode
An item is a member of a sequence, but it can also be considered as a sequence
(of length one) in its own right. XdmItem
is a subtype of XdmValue
because every
Item in the XDM data model is also a value.
It cannot be assumed that every sequence of length one will be represented by
an XdmItem
. It is quite possible for an XdmValue
that is not an XdmItem
to hold
a singleton sequence.
Saxon provides a number of concrete subclasses of XdmItem
, namely XdmAtomicValue
,
XdmNode
, XdmFunctionItem
and XdmExternalObject
. Users must not attempt to create
additional subclasses.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionasMap()
If this item is a map, return a corresponding Java Map.Get the string value of the item.Get the underlying implementation object representing the value.Get the string value of the item.boolean
Determine whether the item is an atomic value or some other type of itemboolean
isNode()
Determine whether the item is a node or some other type of itemboolean
Determine whether this item matches a given item type.int
size()
Get the number of items in the sequencestream()
Get a stream comprising the items in this valueprotected static XdmItem
protected static XdmNode
protected static XdmAtomicValue
wrapItem
(AtomicValue item) Methods inherited from class net.sf.saxon.s9api.XdmValue
append, documentOrder, isEmpty, itemAt, iterator, makeSequence, makeValue, matches, select, subsequence, toString, where, wrap, wrap
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
XdmItem
Construct an XdmItem as a wrapper around an existing Saxon Item object- Parameters:
item
- the Item object to be wrapped. This can be retrieved using thegetUnderlyingValue()
method.- Throws:
NullPointerException
- if item is null- Since:
- 9.5 (previously a protected constructor)
-
-
Method Details
-
wrapItem
-
wrapItem
-
wrapItem
-
getUnderlyingValue
Get the underlying implementation object representing the value. This method allows access to lower-level Saxon functionality, including classes and methods that offer no guarantee of stability across releases.- Overrides:
getUnderlyingValue
in classXdmValue
- Returns:
- the underlying implementation object representing the value
- Since:
- 9.8 (previously inherited from XdmValue which returns a Sequence)
-
getStringValue
Get the string value of the item. For a node, this gets the string value of the node. For an atomic value, it has the same effect as casting the value to a string. In all cases the result is the same as applying the XPath string() function.For atomic values, the result is the same as the result of calling
toString
. This is not the case for nodes, wheretoString
returns an XML serialization of the node.- Returns:
- the result of converting the item to a string.
- Throws:
IllegalStateException
- if the item is of a type that does not have a string value, for example a function (including a map or array).
-
getUnicodeStringValue
Get the string value of the item. For a node, this gets the string value of the node. For an atomic value, it has the same effect as casting the value to a string. In all cases the result is the same as applying the XPath string() function.The string returned is the same as the result of
getStringValue()
, but represented as an instance ofUnicodeString
.- Returns:
- the result of converting the item to a string.
- Throws:
IllegalStateException
- if the item is of a type that does not have a string value, for example a function (including a map or array).
-
isNode
public boolean isNode()Determine whether the item is a node or some other type of item- Returns:
- true if the item is a node, false if it is an atomic value or a function (including maps and arrays)
- Since:
- 10.0
-
isAtomicValue
public boolean isAtomicValue()Determine whether the item is an atomic value or some other type of item- Returns:
- true if the item is an atomic value, false if it is a node or a function (including maps and arrays)
-
size
public int size()Get the number of items in the sequence -
asMap
If this item is a map, return a corresponding Java Map.- Returns:
- if this item is a map, return a mutable Map from atomic values to (sequence) values, containing the same entries as this map. Otherwise return null.
- Since:
- 9.6.
-
stream
Get a stream comprising the items in this value -
matches
Determine whether this item matches a given item type.- Parameters:
type
- the item type to be tested against this item- Returns:
- true if the item matches this item type, false if it does not match.
- Since:
- 9.9
-