Saxon.Api

Class DocumentBuilder

Class DomDestination

Class DynamicContext

Class DynamicError

Class EmptyEnumerator

Class ExtensionFunctionCall

Class ExtensionFunctionDefinition

Class InvalidityHandlerWrapper

Class NamespaceConstant

Class NullDestination

Class Processor

Class QName

Class SchemaManager

Class SchemaValidator

Class Serializer

Class StandardLogger

Class StaticContext

Class StaticError

Class TextWriterDestination

Class WhitespacePolicy

Class XPathCompiler

Class XPathExecutable

Class XPathSelector

Class XQueryCompiler

Class XQueryEvaluator

Class XQueryExecutable

Class XdmAnyFunctionType

Class XdmAnyItemType

Class XdmAnyNodeType

Class XdmArray

Class XdmAtomicType

Class XdmAtomicValue

Class XdmDestination

  - Class TreeProtector

Class XdmEmptySequence

Class XdmExternalObjectValue

Class XdmFunctionItem

Class XdmItem

Class XdmItemType

Class XdmMap

Class XdmNode

Class XdmNodeKind

Class XdmSequenceType

Class XdmValue

Class XmlDestination

Class Xslt30Transformer

Class XsltCompiler

Class XsltExecutable

  - Class ParameterDetails

Class XsltPackage

Class XsltTransformer

Enum RecoveryPolicy

Enum SchemaValidationMode

Enum TreeModel

Enum XdmAxis

Interface IInvalidityHandler

Interface IMessageListener

Interface IQueryResolver

Interface IResultDocumentHandler

Interface IXdmEnumerator

Interface IXmlLocation

Interface SchemaResolver

 

Saxon.Api
Class XdmValue

Direct Known Subclasses
XdmEmptySequence, XdmItem

public class XdmValue
implements IEnumerable

A value in the XDM data model. A value is a sequence of zero or more items, each item being either an atomic value or a node.

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 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 Append method on this class to form a list from individual items or sublists.

An dmValue 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(System.Collections.IEnumerable items)

Create a value from a collection of items

 
Property Summary
 int Count

Get the number of items in the sequence

 XdmValue Simplify

Simplify a 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.

 
Method Summary
 XdmValue Append(XdmValue otherValue)

Create a new XdmValue by concatenating the sequences of items in this XdmValue and another XdmValue

static XdmValue Wrap(net.sf.saxon.om.Sequence value)

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.

static XdmValue MakeValue(object o)

Make an XDM value from a .Net object. The supplied object may be any of the following An instance of XdmValue (for example an XdmAtomicValue, XdmMap, XdmArray or XdmNode), an instance of IDictionary which is wrapped as an XdmMap, an instance and array which is wrapped as an XdmArray.

 net.sf.saxon.om.Sequence 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.

 IList GetList()

Get the sequence of items in the form of an IList

 IEnumerator GetEnumerator()

Get the sequence of items in the form of an IXdmEnumerator

 
Constructor Detail

XdmValue

public XdmValue(System.Collections.IEnumerable items)

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

public int Count {get; }

Get the number of items in the sequence

Returns:
The number of items in the sequence. Note that for a single item (including a map or an array) this always returns 1 (one).

Simplify

public XdmValue Simplify {get; }

Simplify a 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.


Method Detail

Append

public XdmValue Append(XdmValue otherValue)

Create a new XdmValue by concatenating the sequences of items in this XdmValue and another XdmValue

Neither of the input XdmValue objects is modified by this operation

Parameters:
otherValue -
The other XdmValue, whose items are to be appended to the items from this XdmValue

Wrap

public static XdmValue Wrap(net.sf.saxon.om.Sequence value)

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:
An XdmValue that wraps the underlying Saxon value representation.

MakeValue

public static XdmValue MakeValue(object o)

Make an XDM value from a .Net object. The supplied object may be any of the following An instance of XdmValue (for example an XdmAtomicValue, XdmMap, XdmArray or XdmNode), an instance of IDictionary which is wrapped as an XdmMap, an instance and array which is wrapped as an XdmArray.

Parameters:
o -
The supplied object
Returns:
the result of conversion if successful

Unwrap

public net.sf.saxon.om.Sequence 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:
An object representing the XDM value in the underlying Saxon implementation.

GetList

public IList GetList()

Get the sequence of items in the form of an IList

Returns:
The list of items making up this value. Each item in the list will be an object of type XdmItem

GetEnumerator

public IEnumerator GetEnumerator()

Get the sequence of items in the form of an IXdmEnumerator

Returns:
An enumeration over the list of items making up this value. Each item in the list will be an object of type XdmItem