<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>XdmValue</title> <meta name="keywords" content="Saxon.Api.XdmValue class"> <link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style"> </head> <body> <div style="width:20%; float:left; background-color:#c1cede; overflow:auto; height:100%"> <h2>Saxon.Api</h2> <div style="position:relative; height:4pt"> <p>Class <a href="DocumentBuilder.html">DocumentBuilder</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="DomDestination.html">DomDestination</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="DynamicContext.html">DynamicContext</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="DynamicError.html">DynamicError</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="EmptyEnumerator.html">EmptyEnumerator</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="ExtensionFunctionCall.html">ExtensionFunctionCall</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="ExtensionFunctionDefinition.html">ExtensionFunctionDefinition</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="NullDestination.html">NullDestination</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="Processor.html">Processor</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="QName.html">QName</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="SchemaManager.html">SchemaManager</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="SchemaValidator.html">SchemaValidator</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="Serializer.html">Serializer</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="StaticContext.html">StaticContext</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="StaticError.html">StaticError</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="TextWriterDestination.html">TextWriterDestination</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XPathCompiler.html">XPathCompiler</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XPathExecutable.html">XPathExecutable</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XPathSelector.html">XPathSelector</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XQueryCompiler.html">XQueryCompiler</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XQueryEvaluator.html">XQueryEvaluator</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XQueryExecutable.html">XQueryExecutable</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XdmAnyFunctionType.html">XdmAnyFunctionType</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XdmAnyItemType.html">XdmAnyItemType</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XdmAnyNodeType.html">XdmAnyNodeType</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XdmAtomicType.html">XdmAtomicType</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XdmAtomicValue.html">XdmAtomicValue</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XdmDestination.html">XdmDestination</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XdmEmptySequence.html">XdmEmptySequence</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XdmFunctionItem.html">XdmFunctionItem</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XdmItem.html">XdmItem</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XdmItemType.html">XdmItemType</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XdmNode.html">XdmNode</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XdmNodeKind.html">XdmNodeKind</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XdmSequenceType.html">XdmSequenceType</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XdmValue.html">XdmValue</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XmlDestination.html">XmlDestination</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XsltCompiler.html">XsltCompiler</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XsltExecutable.html">XsltExecutable</a></p> </div> <div style="position:relative; height:4pt"> <p>Class <a href="XsltTransformer.html">XsltTransformer</a></p> </div> <div style="position:relative; height:4pt"> <p>Enum <a href="RecoveryPolicy.html">RecoveryPolicy</a></p> </div> <div style="position:relative; height:4pt"> <p>Enum <a href="SchemaValidationMode.html">SchemaValidationMode</a></p> </div> <div style="position:relative; height:4pt"> <p>Enum <a href="TreeModel.html">TreeModel</a></p> </div> <div style="position:relative; height:4pt"> <p>Enum <a href="WhitespacePolicy.html">WhitespacePolicy</a></p> </div> <div style="position:relative; height:4pt"> <p>Enum <a href="XdmAxis.html">XdmAxis</a></p> </div> <div style="position:relative; height:4pt"> <p>Interface <a href="IMessageListener.html">IMessageListener</a></p> </div> <div style="position:relative; height:4pt"> <p>Interface <a href="IQueryResolver.html">IQueryResolver</a></p> </div> <div style="position:relative; height:4pt"> <p>Interface <a href="IResultDocumentHandler.html">IResultDocumentHandler</a></p> </div> <div style="position:relative; height:4pt"> <p>Interface <a href="IXdmEnumerator.html">IXdmEnumerator</a></p> </div> <div style="position:relative; height:4pt"> <p>Interface <a href="IXmlLocation.html">IXmlLocation</a></p> </div> <div style="position:relative; height:4pt"> <p>Interface <a href="SchemaResolver.html">SchemaResolver</a></p> </div> </div> <div style="width:5%; float:left; background-color:#e4eef0; overflow:auto; height:100%"> </div> <div style="float:left; width:75%; overflow:auto; height:100%;"> <h2><font size="-1">Saxon.Api</font><br>Class XdmValue </h2> <hr> <dl> <dt><pre>public class XdmValue</pre></dt> <dt> implements IEnumerable</dt> </dl> <dl> <dd> <p> 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. </p> <p>An <code>XdmValue</code> is immutable. </p> <p>A sequence consisting of a single item <i>may</i> be represented as an instance of <code>XdmItem</code>, which is a subtype of <code>XdmValue</code>. However, there is no guarantee that all single-item sequences will be instances of <code>XdmItem</code>: if you want to ensure this, use the <code>Simplify</code> property. </p> <p>There are various ways of creating an <code>XdmValue</code>. To create an atomic value, use one of the constructors on <code>XdmAtomicValue</code> (which is a subtype of <code>XdmValue</code>). To construct an <code>XdmNode</code> (another subtype) by parsing an XML document, or by wrapping a DOM document, use a <code>DocumentBuilder</code>. To create a sequence of values, use the <code>Append</code> method on this class to form a list from individual items or sublists. </p> <p>An <code>dmValue</code> is also returned as the result of evaluating a query using the XQuery and XPath interfaces. </p> <p>The subtype <code>XdmEmptySequence</code> represents an empty sequence: an <code>XdmValue</code> of length zero. Again, there is no guarantee that every empty sequence will be represented as an instance of <code>XdmEmptySequence</code>, unless you use the <code>Simplify</code> property. </p> </dd> </dl> <hr><a name="constructor_summary"></a><table border="1" width="100%" cellpadding="3" cellspacing="0" summary=""> <tr border="#ccccff" class="TableHeadingColor"> <th align="left" colspan="2"><font size="+2"><b>Constructor Summary</b></font></th> </tr> <tr bgcolor="white" class="TableRowColor"> <td><code><b><a href="#XdmValue(System.Collections.IEnumerable)">XdmValue</a></b>(System.Collections.IEnumerable items)</code><p> Create a value from a collection of items </p> </td> </tr> </table> <a name="property_summary"></a><table border="1" width="100%" cellpadding="3" cellspacing="0" summary=""> <tr border="#ccccff" class="TableHeadingColor"> <th align="left" colspan="2"><font size="+2"><b>Property Summary</b></font></th> </tr> <tr bgcolor="white" class="TableRowColor"> <td align="right" valign="top" width="1%"><code> <a href="http://msdn.microsoft.com/en-us/library/system.int32(VS.80).aspx">int</a></code></td> <td><code><b><a href="#Count">Count</a></b></code><p> Get the number of items in the sequence </p> </td> </tr> <tr bgcolor="white" class="TableRowColor"> <td align="right" valign="top" width="1%"><code> <a href="XdmValue.html">XdmValue</a></code></td> <td><code><b><a href="#Simplify">Simplify</a></b></code><p> Simplify a value: that is, reduce it to the simplest possible form. If the sequence is empty, the result will be an instance of <code>XdmEmptySequence</code>. If the sequence is a single node, the result will be an instance of <code>XdmNode</code>; if it is a single atomic value, it will be an instance of <code>XdmAtomicValue</code>. </p> </td> </tr> </table> <a name="method_summary"></a><table border="1" width="100%" cellpadding="3" cellspacing="0" summary=""> <tr border="#ccccff" class="TableHeadingColor"> <th align="left" colspan="2"><font size="+2"><b>Method Summary</b></font></th> </tr> <tr bgcolor="white" class="TableRowColor"> <td align="right" valign="top" width="1%"><code> <a href="XdmValue.html">XdmValue</a></code></td> <td><code><b><a href="#Append(Saxon.Api.XdmValue)">Append</a></b>(<a href="XdmValue.html">XdmValue</a> otherValue)</code><p> Create a new XdmValue by concatenating the sequences of items in this XdmValue and another XdmValue </p> </td> </tr> <tr bgcolor="white" class="TableRowColor"> <td align="right" valign="top" width="1%">static<code> <a href="XdmValue.html">XdmValue</a></code></td> <td><code><b><a href="#Wrap(net.sf.saxon.om.ValueRepresentation)">Wrap</a></b>(<a href="../../../javadoc/net/sf/saxon/om/ValueRepresentation.html">net.sf.saxon.om.ValueRepresentation</a> value)</code><p> Create an XdmValue from an underlying Saxon ValueRepresentation 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. </p> </td> </tr> <tr bgcolor="white" class="TableRowColor"> <td align="right" valign="top" width="1%"><code> ValueRepresentation</code></td> <td><code><b><a href="#Unwrap()">Unwrap</a></b>()</code><p> Extract the underlying Saxon ValueRepresentation 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. </p> </td> </tr> <tr bgcolor="white" class="TableRowColor"> <td align="right" valign="top" width="1%"><code> <a href="http://msdn.microsoft.com/en-us/library/system.collections.ilist(VS.80).aspx">IList</a></code></td> <td><code><b><a href="#GetList()">GetList</a></b>()</code><p> Get the sequence of items in the form of an <code>IList</code> </p> </td> </tr> <tr bgcolor="white" class="TableRowColor"> <td align="right" valign="top" width="1%"><code> <a href="http://msdn.microsoft.com/en-us/library/system.collections.ienumerator(VS.80).aspx">IEnumerator</a></code></td> <td><code><b><a href="#GetEnumerator()">GetEnumerator</a></b>()</code><p> Get the sequence of items in the form of an <code>IXdmEnumerator</code> </p> </td> </tr> </table> <a name="constructor_detail"></a><table border="1" width="100%" cellpadding="3" cellspacing="0" summary=""> <tr border="#ccccff" class="TableHeadingColor"> <th align="left" colspan="2"><font size="+2"><b>Constructor Detail</b></font></th> </tr> </table><a name="XdmValue(System.Collections.IEnumerable)"></a><h3>XdmValue</h3><pre>public <b>XdmValue</b>(System.Collections.IEnumerable items)</pre><dl> <dd> <p> Create a value from a collection of items </p><b>Parameters:</b><dl> <dt><code>items</code> - </dt> <dd>An enumerable collection providing the items to make up the sequence. Every member of this collection must be an instance of <code>XdmItem</code> </dd> </dl> </dd> </dl> <hr><a name="property_detail"></a><table border="1" width="100%" cellpadding="3" cellspacing="0" summary=""> <tr border="#ccccff" class="TableHeadingColor"> <th align="left" colspan="2"><font size="+2"><b>Property Detail</b></font></th> </tr> </table><a name="Count"></a><h3>Count</h3><pre>public <a href="http://msdn.microsoft.com/en-us/library/system.int32(VS.80).aspx">int</a> <b>Count</b> {get; }</pre><dl> <dd> <p> Get the number of items in the sequence </p> <dl> <dt>returns</dt> <dd> The number of items in the sequence </dd> </dl> </dd> </dl> <hr><a name="Simplify"></a><h3>Simplify</h3><pre>public <a href="XdmValue.html">XdmValue</a> <b>Simplify</b> {get; }</pre><dl> <dd> <p> Simplify a value: that is, reduce it to the simplest possible form. If the sequence is empty, the result will be an instance of <code>XdmEmptySequence</code>. If the sequence is a single node, the result will be an instance of <code>XdmNode</code>; if it is a single atomic value, it will be an instance of <code>XdmAtomicValue</code>. </p> </dd> </dl> <hr><a name="method_detail"></a><table border="1" width="100%" cellpadding="3" cellspacing="0" summary=""> <tr border="#ccccff" class="TableHeadingColor"> <th align="left" colspan="2"><font size="+2"><b>Method Detail</b></font></th> </tr> </table><a name="Append(Saxon.Api.XdmValue)"></a><h3>Append</h3><pre>public <a href="XdmValue.html">XdmValue</a> <b>Append</b>(<a href="XdmValue.html">XdmValue</a> otherValue)</pre><dl> <dd> <p> Create a new XdmValue by concatenating the sequences of items in this XdmValue and another XdmValue </p> <p> Neither of the input XdmValue objects is modified by this operation </p><b>Parameters:</b><dl> <dt><code>otherValue</code> - </dt> <dd> The other XdmValue, whose items are to be appended to the items from this XdmValue </dd> </dl> </dd> </dl> <hr><a name="Wrap(net.sf.saxon.om.ValueRepresentation)"></a><h3>Wrap</h3><pre>public static <a href="XdmValue.html">XdmValue</a> <b>Wrap</b>(<a href="../../../javadoc/net/sf/saxon/om/ValueRepresentation.html">net.sf.saxon.om.ValueRepresentation</a> value)</pre><dl> <dd> <p> Create an XdmValue from an underlying Saxon ValueRepresentation 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. </p><b>Parameters:</b><dl> <dt><code>value</code> - </dt> <dd>An object representing an XDM value in the underlying Saxon implementation. If the parameter is null, the method returns null. </dd> </dl> <dl> <dt>returns</dt> <dd>An XdmValue that wraps the underlying Saxon value representation. </dd> </dl> </dd> </dl> <hr><a name="Unwrap()"></a><h3>Unwrap</h3><pre>public ValueRepresentation <b>Unwrap</b>()</pre><dl> <dd> <p> Extract the underlying Saxon ValueRepresentation 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. </p> <dl> <dt>returns</dt> <dd>An object representing the XDM value in the underlying Saxon implementation. </dd> </dl> </dd> </dl> <hr><a name="GetList()"></a><h3>GetList</h3><pre>public <a href="http://msdn.microsoft.com/en-us/library/system.collections.ilist(VS.80).aspx">IList</a> <b>GetList</b>()</pre><dl> <dd> <p> Get the sequence of items in the form of an <code>IList</code> </p> <dl> <dt>returns</dt> <dd> The list of items making up this value. Each item in the list will be an object of type <code>XdmItem</code> </dd> </dl> </dd> </dl> <hr><a name="GetEnumerator()"></a><h3>GetEnumerator</h3><pre>public <a href="http://msdn.microsoft.com/en-us/library/system.collections.ienumerator(VS.80).aspx">IEnumerator</a> <b>GetEnumerator</b>()</pre><dl> <dd> <p> Get the sequence of items in the form of an <code>IXdmEnumerator</code> </p> <dl> <dt>returns</dt> <dd> An enumeration over the list of items making up this value. Each item in the list will be an object of type <code>XdmItem</code> </dd> </dl> </dd> </dl> <hr> </div> </body> </html>