Class SaplingDocument

java.lang.Object
net.sf.saxon.sapling.SaplingNode
net.sf.saxon.sapling.SaplingDocument
All Implemented Interfaces:
Source, ActiveSource

public class SaplingDocument extends SaplingNode implements ActiveSource
A document node in a sapling tree. A document node may have a sequence of children, each of which is an element, text, comment, or processing-instruction node. A document node has an optional base URI.

Like all sapling nodes, a SaplingDocument is immutable. All operations such as adding children deliver a new document node. A sapling node generally exists only transiently during tree construction; to make use of the constructed tree, it will usually be converted to a regular tree when construction is complete, using toXdmNode(Processor) or toNodeInfo(Configuration).

SaplingDocument implements Source, and a sapling document can therefore be supplied in most Saxon interfaces that expect a Source. However, third-party software that expects a Source as input is unlikely to recognize this class, unless explicitly stated to the contrary.

  • Constructor Details

    • SaplingDocument

      public SaplingDocument()
      Create a sapling document node with no children and no base URI
    • SaplingDocument

      public SaplingDocument(String baseUri)
      Create a sapling document node with no children, having a specified base URI
      Parameters:
      baseUri - the base URI of the document node
  • Method Details

    • setSystemId

      public void setSystemId(String systemId)
      Set the system identifier for this Source. This method is provided because it is needed to satisfy the Source interface; however it always throws an exception, because SaplingDocument is immutable.
      Specified by:
      setSystemId in interface Source
      Parameters:
      systemId - The system identifier as a URL string.
      Throws:
      UnsupportedOperationException - always
    • getSystemId

      public String getSystemId()
      Get the system identifier. This implementation of the method returns the base URI.
      Specified by:
      getSystemId in interface Source
      Returns:
      The base URI of the document.
    • getNodeKind

      public int getNodeKind()
      Description copied from class: SaplingNode
      Get the kind of node (document, element, text, comment, or processing instruction)
      Specified by:
      getNodeKind in class SaplingNode
      Returns:
      the kind of node, for example Type.ELEMENT for an element node.
    • withChild

      public SaplingDocument withChild(SaplingNode... children)
      Add a number of child nodes to a document node, returning a new document node with additional children beyond those already present. The target document is not modified, neither are the added children.
      Parameters:
      children - The nodes to be added as children. The supplied nodes are added in order after any existing children.
      Returns:
      the new parent document node
      Throws:
      IllegalArgumentException - if any of the nodes supplied as an argument is a document node.
    • deliver

      public void deliver(Receiver receiver, ParseOptions options) throws XPathException
      Description copied from class: SaplingNode
      Send a sequence of events representing this node to a supplied Receiver
      Specified by:
      deliver in interface ActiveSource
      Specified by:
      deliver in class SaplingNode
      Parameters:
      receiver - the receiver to which the events are to be sent
      options - parse options (currently ignored)
      Throws:
      XPathException - if the receiver throws an exception
    • toNodeInfo

      public NodeInfo toNodeInfo(Configuration config) throws XPathException
      Convert the sapling document to a regular document, returning the NodeInfo object representing the document node of the resulting tree
      Parameters:
      config - the Saxon Configuration
      Returns:
      the document node at the root of the constructed tree. The implementation model for the tree will be the default tree model of the Configuration
      Throws:
      XPathException - if construction fails; this could happen if constraints have been violated
    • toXdmNode

      public XdmNode toXdmNode(Processor processor) throws SaxonApiException
      Convert the sapling document to a regular document, returning the XdmNode object representing the document node of the resulting tree
      Parameters:
      processor - the s9api Processor object that is to own the resulting tree
      Returns:
      the document node at the root of the constructed tree. The implementation model for the tree will be the default tree model of the Processor's Configuration
      Throws:
      SaxonApiException - if construction fails; this could happen if constraints have been violated
    • serialize

      public void serialize(Serializer serializer) throws SaxonApiException
      Serialize the document
      Parameters:
      serializer - the serializer to be used; the serialized representation of the node will be written to the serializer's destination.
      Throws:
      SaxonApiException - if anything goes wrong
    • send

      public void send(Processor processor, Destination destination) throws SaxonApiException
      Send the document to an arbitrary destination
      Parameters:
      processor - the s9api processor
      destination - the destination to which the document will be copied.
      Throws:
      SaxonApiException - if anything goes wrong