Package net.sf.saxon.sapling
Class SaplingDocument
java.lang.Object
net.sf.saxon.sapling.SaplingNode
net.sf.saxon.sapling.SaplingDocument
- All Implemented Interfaces:
Source
,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 Summary
ConstructorsConstructorDescriptionCreate a sapling document node with no children and no base URISaplingDocument
(String baseUri) Create a sapling document node with no children, having a specified base URI -
Method Summary
Modifier and TypeMethodDescriptionvoid
deliver
(Receiver receiver, ParseOptions options) Send a sequence of events representing this node to a supplied Receiverint
Get the kind of node (document, element, text, comment, or processing instruction)Get the system identifier.void
send
(Processor processor, Destination destination) Send the document to an arbitrary destinationvoid
serialize
(Serializer serializer) Serialize the documentvoid
setSystemId
(String systemId) Set the system identifier for this Source.toNodeInfo
(Configuration config) Convert the sapling document to a regular document, returning theNodeInfo
object representing the document node of the resulting treeConvert the sapling document to a regular document, returning theXdmNode
object representing the document node of the resulting treewithChild
(SaplingNode... children) Add a number of child nodes to a document node, returning a new document node with additional children beyond those already present.Methods inherited from class net.sf.saxon.sapling.SaplingNode
emptyNodeList
-
Constructor Details
-
SaplingDocument
public SaplingDocument()Create a sapling document node with no children and no base URI -
SaplingDocument
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
Set the system identifier for this Source. This method is provided because it is needed to satisfy theSource
interface; however it always throws an exception, becauseSaplingDocument
is immutable.- Specified by:
setSystemId
in interfaceSource
- Parameters:
systemId
- The system identifier as a URL string.- Throws:
UnsupportedOperationException
- always
-
getSystemId
Get the system identifier. This implementation of the method returns the base URI.- Specified by:
getSystemId
in interfaceSource
- 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 classSaplingNode
- Returns:
- the kind of node, for example
Type.ELEMENT
for an element node.
-
withChild
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
Description copied from class:SaplingNode
Send a sequence of events representing this node to a supplied Receiver- Specified by:
deliver
in interfaceActiveSource
- Specified by:
deliver
in classSaplingNode
- Parameters:
receiver
- the receiver to which the events are to be sentoptions
- parse options (currently ignored)- Throws:
XPathException
- if the receiver throws an exception
-
toNodeInfo
Convert the sapling document to a regular document, returning theNodeInfo
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
Convert the sapling document to a regular document, returning theXdmNode
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
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
Send the document to an arbitrary destination- Parameters:
processor
- the s9api processordestination
- the destination to which the document will be copied.- Throws:
SaxonApiException
- if anything goes wrong
-