## Saxon.Api

Class DocumentBuilder

Class DomDestination

Class DynamicContext

Class DynamicError

Class EmptyEnumerator

Class ExtensionFunctionCall

Class ExtensionFunctionDefinition

Class NullDestination

Class Processor

Class QName

Class SchemaManager

Class SchemaValidator

Class Serializer

Class StaticContext

Class StaticError

Class TextWriterDestination

Class XPathCompiler

Class XPathExecutable

Class XPathSelector

Class XQueryCompiler

Class XQueryEvaluator

Class XQueryExecutable

Class XdmAnyFunctionType

Class XdmAnyItemType

Class XdmAnyNodeType

Class XdmAtomicType

Class XdmAtomicValue

Class XdmDestination

Class XdmEmptySequence

Class XdmFunctionItem

Class XdmItem

Class XdmItemType

Class XdmNode

Class XdmNodeKind

Class XdmSequenceType

Class XdmValue

Class XmlDestination

Class XsltCompiler

Class XsltExecutable

Class XsltTransformer

Enum RecoveryPolicy

Enum SchemaValidationMode

Enum TreeModel

Enum WhitespacePolicy

Enum XdmAxis

Interface IMessageListener

Interface IQueryResolver

Interface IResultDocumentHandler

Interface IXdmEnumerator

Interface IXmlLocation

Interface SchemaResolver

## Saxon.Api
Class XdmValue

    public class XdmValue

implements IEnumerable

  An 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.
`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

### 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.

### Unwrap

    public 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`