Class XdmValue

  • All Implemented Interfaces:
    java.lang.Iterable<XdmItem>
    Direct Known Subclasses:
    XdmEmptySequence, XdmItem

    public class XdmValue
    extends java.lang.Object
    implements java.lang.Iterable<XdmItem>
    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 a sequence of length one will always be an instance of XdmItem.

    Similarly, a zero-length sequence may be represented as an instance of XdmEmptySequence, but there is no guarantee that every sequence of length zero will always be an instance of XdmEmptySequence.

    Since:
    9.0
    • Constructor Detail

      • XdmValue

        protected XdmValue()
      • XdmValue

        public XdmValue​(java.lang.Iterable<XdmItem> items)
        Create an XdmValue as a sequence of XdmItem objects
        Parameters:
        items - a sequence of XdmItem objects. Note that if this is supplied as a list or similar collection, subsequent changes to the list/collection will have no effect on the XdmValue.
        Since:
        9.0.0.4
    • Method Detail

      • append

        public XdmValue append​(XdmValue otherValue)
        Create a new XdmValue by concatenating the contents of this XdmValue and another XdmValue. The two input XdmValue objects are unaffected by this operation
        Parameters:
        otherValue - the value to be appended
        Returns:
        a new XdmValue containing the concatenation of the two input XdmValue objects
        Since:
        9.2
      • size

        public int size()
        Get the number of items in the sequence
        Returns:
        the number of items in the value
        Throws:
        SaxonApiUncheckedException - if the value is lazily evaluated and the delayed evaluation fails with a dynamic error.
      • itemAt

        public XdmItem itemAt​(int n)
                       throws java.lang.IndexOutOfBoundsException,
                              SaxonApiUncheckedException
        Get the n'th item in the value, counting from zero.
        Parameters:
        n - the item that is required, counting the first item in the sequence as item zero
        Returns:
        the n'th item in the sequence making up the value, counting from zero
        Throws:
        java.lang.IndexOutOfBoundsException - if n is less than zero or greater than or equal to the number of items in the value
        SaxonApiUncheckedException - if the value is lazily evaluated and the delayed evaluation fails with a dynamic error.
      • getUnderlyingValue

        public ValueRepresentation<? extends Item> 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.
        Returns:
        the underlying implementation object representing the value