SaxonC 12.4
Saxon Processor library for C/C++, PHP and Python
Loading...
Searching...
No Matches
Public Member Functions | List of all members
XdmNode Class Reference

#include <XdmNode.h>

Inheritance diagram for XdmNode:
XdmItem XdmValue

Public Member Functions

 XdmNode (int64_t)
 
 XdmNode (XdmNode *parent, int64_t, XDM_NODE_KIND kind)
 
 XdmNode (const XdmNode &other)
 
virtual ~XdmNode ()
 Destructor.
 
virtual bool isAtomic ()
 Determine whether the item is an atomic value or some other type of item.
 
XdmItemgetHead ()
 Get the first item in the sequence.
 
XDM_NODE_KIND getNodeKind ()
 Get the kind of node.
 
const char * getNodeName ()
 
const char * getLocalName ()
 
XdmValuegetTypedValue ()
 Get the typed value of this node, as defined in XDM.
 
const char * getBaseUri ()
 Get the base URI of this node.
 
const char * getStringValue ()
 
const char * toString ()
 
XdmNodegetParent ()
 Get the parent of this node.
 
const char * getAttributeValue (const char *name)
 
int getAttributeCount ()
 Get the number of attribute node for this current node.
 
XdmNode ** getAttributeNodes (bool cache=false)
 Get array of attribute nodes of this element.
 
XdmNode ** axisNodes (EnumXdmAxis axis)
 Get the array of nodes reachable from this node via a given axis.
 
EnumXdmAxis convertEnumXdmAxis (int n)
 
int axisNodeCount ()
 
int64_t getUnderlyingValue ()
 Get the underlying JNI Java object for the XdmNode.
 
bool isNode ()
 Determine whether the item is a node or some other type of item.
 
XdmNode ** getChildren (bool cache=true)
 Get all the child nodes from the current parent node.
 
XdmNodegetChild (int i, bool cache=true)
 Get the ith child nodes from the current parent node.
 
int getChildCount ()
 Get the count of child nodes from the current node.
 
XDM_TYPE getType ()
 Get the type of the object.
 
- Public Member Functions inherited from XdmItem
 XdmItem ()
 XdmItem default constructor.
 
 XdmItem (int64_t)
 
 XdmItem (const XdmItem &item)
 Copy constructor.
 
virtual ~XdmItem ()
 Destructor.
 
virtual void incrementRefCount ()
 
virtual void decrementRefCount ()
 
virtual bool isFunction ()
 
virtual bool isMap ()
 
virtual bool isArray ()
 
XdmItemitemAt (int n)
 
int size ()
 
- Public Member Functions inherited from XdmValue
 XdmValue ()
 A default Constructor.
 
 XdmValue (const XdmValue &other)
 A copy constructor.
 
XdmValueaddXdmValueWithType (const char *tStr, const char *val)
 Add an XdmItem to the sequence.
 
void addXdmItem (XdmItem *val)
 
void addUnderlyingValue (int64_t val)
 
 XdmValue (int64_t val, bool arrFlag)
 A Constructor for handling XdmArray - Internal user only.
 
 XdmValue (int64_t val)
 A Constructor.
 
virtual ~XdmValue ()
 Destructor.
 
void releaseXdmValue ()
 
int getRefCount ()
 Get the number of references on this XdmValue.
 

Additional Inherited Members

- Protected Member Functions inherited from XdmValue
void initialize ()
 initialize this XdmValue with default values
 
- Protected Attributes inherited from XdmItem
int64_t value
 
const char * stringValue
 
const char * itemToString
 
- Protected Attributes inherited from XdmValue
char * valueType
 
XdmItem ** values
 
char * relinquished_values
 
int values_cap
 
int xdmSize
 
int refCount
 

Detailed Description

This class represents a node in the XDM data model. A Node is an XdmItem, and is therefore an XdmValue in its own right, and may also participate as one item within a sequence value.

The XdmNode interface exposes basic properties of the node, such as its name, its string value, and its typed value.

Note that node identity cannot be inferred from object identity. The same node may be represented by different XdmNode instances at different times, or even at the same time. The equals() method on this class can be used to test for node identity.

Constructor & Destructor Documentation

◆ XdmNode() [1/2]

XdmNode::XdmNode ( int64_t  obj)

XdmNode constructor created as a wrapper around an existing Saxon Java object XdmNode constructor created from a JNI Java object. This is for internal use only

Parameters
obj- The internal Java object for the XdmNode is wrapped here in the C++ XdmNode

◆ XdmNode() [2/2]

XdmNode::XdmNode ( XdmNode parent,
int64_t  obj,
XDM_NODE_KIND  kind 
)

XdmNode constructor created as a wrapper around an existing Saxon Java object XdmNode constructor created from a JNI Java object. This is for internal use only

Parameters
parent- The parent XdmNode to this node object
obj- The internal Java object for the XdmNode is wrapped here in the C++ XdmNode
kind- The kind of node, for example XdmNodeKind::ELEMENT or XdmNodeKind::ATTRIBUTE

◆ ~XdmNode()

XdmNode::~XdmNode ( )
virtual

Destructor.

Destructor for XdmNode

Member Function Documentation

◆ axisNodeCount()

int XdmNode::axisNodeCount ( )

Get the count of nodes in the nodeAxis array. Cached from the last call to nodeAxis

◆ axisNodes()

XdmNode ** XdmNode::axisNodes ( EnumXdmAxis  axis)

Get the array of nodes reachable from this node via a given axis.

Parameters
axis- identifies which axis is to be navigated. Axis options are as follows: ANCESTOR = 0, ANCESTOR_OR_SELF = 1, ATTRIBUTE = 2, CHILD = 3, DESCENDANT = 4, DESCENDANT_OR_SELF = 5, FOLLOWING = 6, FOLLOWING_SIBLING = 7, NAMESPACE = 8, PARENT = 9, PRECEDING = 10, PRECEDING_SIBLING = 11, SELF = 12
Returns
an array of nodes on the specified axis, starting from this node as the context node. The nodes are returned in axis order, that is, in document order for a forwards axis and in reverse document order for a reverse axis.

◆ getAttributeCount()

int XdmNode::getAttributeCount ( )

Get the number of attribute node for this current node.

Returns
returns the number of attributes on this node, other return zero if this node has no attributes or is not an element.

◆ getAttributeNodes()

XdmNode ** XdmNode::getAttributeNodes ( bool  cache = false)

Get array of attribute nodes of this element.

Parameters
cache- true to cache the attribute nodes for future use. User os responsible for memory management for the attribute nodes.
Returns
NULL if this node is not an element, or if this element has no attribute with the specified name. Otherwise return the attribute nodes as a pointer array.

◆ getAttributeValue()

const char * XdmNode::getAttributeValue ( const char *  name)

Get the string value of a named attribute (in no namespace) of this element

Parameters
namethe name of the required attribute, interpreted as a no-namespace name
Returns
NULL if this node is not an element, or if this element has no attribute with the specified name. Otherwise return the string value of the selected attribute node.

◆ getBaseUri()

const char * XdmNode::getBaseUri ( )

Get the base URI of this node.

Returns
the base URI, as defined in the XDM model. The value may be null if no base URI is known for the node, for example if the tree was built from a StreamSource with no associated URI, or if the node has no parent.

◆ getChild()

XdmNode * XdmNode::getChild ( int  i,
bool  cache = true 
)

Get the ith child nodes from the current parent node.

Returns
a pointer to the ith child node

◆ getChildCount()

int XdmNode::getChildCount ( )

Get the count of child nodes from the current node.

Returns
int for the count of child nodes

◆ getChildren()

XdmNode ** XdmNode::getChildren ( bool  cache = true)

Get all the child nodes from the current parent node.

Returns
pointer array of XdmNode objects

◆ getHead()

XdmItem * XdmNode::getHead ( )
virtual

Get the first item in the sequence.

Returns
XdmItem or nullptr if sequence is empty

Reimplemented from XdmItem.

◆ getLocalName()

const char * XdmNode::getLocalName ( )

Get the local name of the node. The caller does not need to deallocate memory.

Returns
the name of the node. In the case of unnamed nodes (for example, text and comment nodes) return nullptr.

◆ getNodeKind()

XDM_NODE_KIND XdmNode::getNodeKind ( )

Get the kind of node.

Returns
the kind of node, for example XdmNodeKind::ELEMENT or XdmNodeKind::ATTRIBUTE

◆ getNodeName()

const char * XdmNode::getNodeName ( )

Get the name of the node, as a string in the form of a EQName. The caller does not need to deallocate memory.

Returns
the name of the node. In the case of unnamed nodes (for example, text and comment nodes) return NULL.

◆ getParent()

XdmNode * XdmNode::getParent ( )

Get the parent of this node.

Returns
the parent of this node (a document or element node), or NULL if this node has no parent.

◆ getStringValue()

const char * XdmNode::getStringValue ( )
virtual

Get the string value of the item. For a node, this gets the string value of the node. The caller should deallocate memory using delete For an atomic value, it has the same effect as casting the value to a string. In all cases the result is the same as applying the XPath string() function.

For atomic values, the result is the same as the result of calling toString. This is not the case for nodes, where toString returns an XML serialization of the node.

Returns
the result of converting the item to a string.
Remarks
the SaxonProcessor argument has been removed from release version 1.2.1

Reimplemented from XdmItem.

◆ getType()

XDM_TYPE XdmNode::getType ( )
inlinevirtual

Get the type of the object.

Returns
XDM_TYPE - Type of the XdmItem

Reimplemented from XdmItem.

◆ getTypedValue()

XdmValue * XdmNode::getTypedValue ( )

Get the typed value of this node, as defined in XDM.

Returns
the typed value. If the typed value is a single atomic value, this will be returned as an instance of XdmAtomicValue

◆ getUnderlyingValue()

int64_t XdmNode::getUnderlyingValue ( )
inlinevirtual

Get the underlying JNI Java object for the XdmNode.

Returns
jobject - The unwrapped JNI object for the XdmNode

Reimplemented from XdmItem.

◆ isAtomic()

bool XdmNode::isAtomic ( )
virtual

Determine whether the item is an atomic value or some other type of item.

Returns
true if the item is an atomic value, false if it is a node or a function (including maps and arrays)

Reimplemented from XdmItem.

◆ isNode()

bool XdmNode::isNode ( )
inlinevirtual

Determine whether the item is a node or some other type of item.

Returns
true if the item is a node, false if it is an atomic value or a function (including maps and arrays)

Reimplemented from XdmItem.

◆ toString()

const char * XdmNode::toString ( )
virtual

The toString() method returns a simple XML serialization of the node with defaulted serialization parameters. The caller should deallocate memory using delete

In the case of an element node, the result will be a well-formed XML document serialized as defined in the W3C XSLT/XQuery serialization specification, using options method="xml", indent="yes", omit-xml-declaration="yes".

In the case of a document node, the result will be a well-formed XML document provided that the document node contains exactly one element child, and no text node children. In other cases it will be a well-formed external general parsed entity.

In the case of an attribute node, the output is a string in the form name="value". The name will use the original namespace prefix.

In the case of a namespace node, the output is a string in the form of a namespace declaration, that is xmlns="uri" or xmlns:pre="uri".

Other nodes, such as text nodes, comments, and processing instructions, are represented as they would appear in lexical XML. Note: this means that in the case of text nodes, special characters such as & and < are output in escaped form. To get the unescaped string value of a text node, use getStringValue() instead.

Returns
a simple XML serialization of the node. Under error conditions the method may return an error message which will always begin with the label "Error: ".

Reimplemented from XdmItem.


The documentation for this class was generated from the following files: