Saxon.Api
Class XdmValue
- Direct Known Subclasses
- XdmEmptySequence, XdmItem
-
public class XdmValue
- implements IEnumerable<XdmItem>
A value in the XDM data model. A value is a sequence of zero or more items, each item being an atomic value, a node, or a function item.
An XdmValue
is immutable.
A sequence consisting of a single item may be represented
as an instance of XdmItem, which is a subtype of XdmValue
. However,
there is no guarantee that all single-item sequences will be instances of
XdmItem
: if you want to ensure this, use the XdmValue.Simplify property.
There are various ways of creating an XdmValue
. To create an atomic
value, use one of the constructors on XdmAtomicValue (which is a subtype of XdmValue
).
To construct an XdmNode (another subtype) by parsing an XML document, or by wrapping a DOM document,
use a DocumentBuilder. To create a sequence of values, use the XdmValue.Append(XdmValue)
method on this class to form a list from individual items or sublists.
An XdmValue
is also returned as the result of evaluating a query
using the XQuery and XPath interfaces.
The subtype XdmEmptySequence represents an empty sequence: an
XdmValue
of length zero. Again, there is no guarantee that every empty sequence
will be represented as an instance of XdmEmptySequence
, unless you use
the Simplify
property.
Constructor Summary |
|
---|---|
XdmValue (IEnumerable<XdmItem> items) Create a value from a collection of items |
Property Summary |
|
---|---|
int | Count Get the number of items in the sequence |
XdmValue | Simplify Simplify an XDM value: that is, reduce it to the simplest possible form. |
Method Summary |
|
---|---|
XdmValue | Append(XdmValue otherValue)
Create a new |
XdmValue | DocumentOrder() Return a new XdmValue containing the nodes present in this XdmValue, with duplicates eliminated, and sorted into document order |
IEnumerator<XdmItem> | GetEnumerator()
Get the sequence of items in the form of an |
IList<XdmItem> | GetList()
Get the sequence of items in the form of an |
XdmItem | ItemAt(int i) Get the i'th item in the value, counting from zero. |
static XdmValue | MakeValue(object o) Make an XDM value from a .NET object. |
string | ToString() Create a string representation of the value. The is the result of serializing the value using the adaptive serialization method. |
net.sf.saxon.om.Sequence | Unwrap()
Extract the underlying Saxon |
static XdmValue | Wrap(net.sf.saxon.om.Sequence value)
Create an |
Constructor Detail
XdmValue
Create a value from a collection of items
Parameters:
items
- An enumerable collection providing the items to make up the sequence. Every
member of this collection must be an instance of XdmItem
Property Detail
Count
Get the number of items in the sequence
Returns:
Simplify
Simplify an XDM value: that is, reduce it to the simplest possible form.
- If the sequence is empty, the result will be an instance of
XdmEmptySequence
- If the sequence is a single node, the result will be an instance of
XdmNode
- If it is a single atomic value, it will be an instance of
XdmAtomicValue
- If it is a map, it will be an instance of
XdmMap
- If it is an array, it will be an instance of
XdmArray
- If it is any other kind of function, it will be an instance of
XdmFunctionItem
- If it is a wrapper around a .NET object, it will be an instance of
XdmExternalObjectValue
Returns:
Method Detail
DocumentOrder
Return a new XdmValue containing the nodes present in this XdmValue, with duplicates eliminated, and sorted into document order
Returns:
GetEnumerator
Get the sequence of items in the form of an IEnumerator
Returns:
XdmItem
GetList
Get the sequence of items in the form of an IList
Returns:
XdmItem
ItemAt
Get the i'th item in the value, counting from zero.
Parameters:
i
- the item that irequired, counting the first item in the sequence as item zeroReturns:
MakeValue
Make an XDM value from a .NET object.
The supplied object may be any of the following:
- An instance of
XdmValue
(for example anXdmAtomicValue
,XdmMap
,XdmArray
orXdmNode
), which is returned unchanged - An instance of Saxon's Java class
net.sf.saxon.om.Sequence
, which is wrapped as anXdmValue
- An instance of
IDictionary
(which is wrapped as anXdmMap
using the method XdmMap.MakeMap(IDictionary)) - An array of objects, which are converted by applying these rules recursively,
and then wrapped as an
XdmArray
.
Parameters:
o
- The supplied objectReturns:
ToString
Create a string representation of the value. The is the result of serializing the value using the adaptive serialization method.
Returns:
Unwrap
Extract the underlying Saxon Sequence
object from an XdmValue
.
This method is provided for the benefit of applications that need to mix
use of the Saxon .NET API with direct use of the underlying objects
and methods offered by the Java implementation.
Returns:
Wrap
Create an XdmValue
from an underlying Saxon Sequence
object.
This method is provided for the benefit of applications that need to mix
use of the Saxon .NET API with direct use of the underlying objects
and methods offered by the Java implementation.
Parameters:
value
- An object representing an XDM value in the
underlying Saxon implementation. If the parameter is null,
the method returns null.Returns:
XdmValue
that wraps the underlying Saxon XDM value
representation.
Create a new
XdmValue
by concatenating the sequences of items in thisXdmValue
and anotherXdmValue
Neither of the input
XdmValue
objects is modified by this operationParameters:
otherValue
- The otherXdmValue
, whose items are to be appended to the items from thisXdmValue