xmltooling 3.2.4
xmltooling::XMLHelper Class Reference

A helper class for working with W3C DOM objects. More...

#include <xmltooling/util/XMLHelper.h>

Static Public Member Functions

static bool hasXSIType (const xercesc::DOMElement *e)
 Checks if the given element has an xsi:type defined for it.
 
static QNamegetXSIType (const xercesc::DOMElement *e)
 Gets the XSI type for a given element if it has one.
 
static xercesc::DOMAttr * getIdAttribute (const xercesc::DOMElement *domElement)
 Gets the ID attribute of a DOM element.
 
static const XMLObjectgetXMLObjectById (const XMLObject &tree, const XMLCh *id)
 Attempts to locate an XMLObject from this point downward in the tree whose XML ID matches the supplied value.
 
static XMLObjectgetXMLObjectById (XMLObject &tree, const XMLCh *id)
 Attempts to locate an XMLObject from this point downward in the tree whose XML ID matches the supplied value.
 
static void getNonVisiblyUsedPrefixes (const XMLObject &tree, std::map< xstring, xstring > &prefixes)
 Returns the set of non-visibly-used namespace declarations found in a tree.
 
static QNamegetNodeQName (const xercesc::DOMNode *domNode)
 Gets the QName for the given DOM node.
 
static QNamegetNodeValueAsQName (const xercesc::DOMNode *domNode)
 Constructs a QName from a node's value.
 
static bool getNodeValueAsBool (const xercesc::DOMNode *domNode, bool def)
 Returns a boolean based on a node's value.
 
static xercesc::DOMElement * appendChildElement (xercesc::DOMElement *parentElement, xercesc::DOMElement *childElement)
 Appends the child Element to the parent Element, importing the child Element into the parent's Document if needed.
 
static bool isNodeNamed (const xercesc::DOMNode *n, const XMLCh *ns, const XMLCh *local)
 Checks the qualified name of a node.
 
static xercesc::DOMElement * getFirstChildElement (const xercesc::DOMNode *n, const XMLCh *localName=0)
 Returns the first matching child element of the node if any.
 
static xercesc::DOMElement * getLastChildElement (const xercesc::DOMNode *n, const XMLCh *localName=0)
 Returns the last matching child element of the node if any.
 
static xercesc::DOMElement * getNextSiblingElement (const xercesc::DOMNode *n, const XMLCh *localName=0)
 Returns the next matching sibling element of the node if any.
 
static xercesc::DOMElement * getPreviousSiblingElement (const xercesc::DOMNode *n, const XMLCh *localName=0)
 Returns the previous matching sibling element of the node if any.
 
static xercesc::DOMElement * getFirstChildElement (const xercesc::DOMNode *n, const XMLCh *ns, const XMLCh *localName)
 Returns the first matching child element of the node if any.
 
static xercesc::DOMElement * getLastChildElement (const xercesc::DOMNode *n, const XMLCh *ns, const XMLCh *localName)
 Returns the last matching child element of the node if any.
 
static xercesc::DOMElement * getNextSiblingElement (const xercesc::DOMNode *n, const XMLCh *ns, const XMLCh *localName)
 Returns the next matching sibling element of the node if any.
 
static xercesc::DOMElement * getPreviousSiblingElement (const xercesc::DOMNode *n, const XMLCh *ns, const XMLCh *localName)
 Returns the previous matching sibling element of the node if any.
 
static XMLCh * getWholeTextContent (const xercesc::DOMElement *e)
 Returns all text content inside an element, regardless of the number of child nodes involved, up to the first child element encountered if any.
 
static const XMLCh * getTextContent (const xercesc::DOMElement *e)
 Returns the content of the first Text node found in the element, if any, acting on the assumption there can be no embedded comment, CDATA, or other interfering node types interrupting the text.
 
static std::string getAttrString (const xercesc::DOMElement *e, const char *defValue, const XMLCh *localName, const XMLCh *ns=0)
 Returns the content of the specified attribute node as a string, or the default value, if the attribute is not present.
 
static int getAttrInt (const xercesc::DOMElement *e, int defValue, const XMLCh *localName, const XMLCh *ns=0)
 Returns the content of the specified attribute node as an integer, or the default value, if the attribute is not present.
 
static bool getAttrBool (const xercesc::DOMElement *e, bool defValue, const XMLCh *localName, const XMLCh *ns=0)
 Returns the content of the specified attribute node as a boolean, or the default value, if the attribute is not present.
 
static bool getCaseSensitive (const xercesc::DOMElement *e, bool defValue, const XMLCh *ns=0)
 Returns the value of the attribute "caseSensitive" (if present).
 
static void encode (std::ostream &os, const char *str)
 Perform XMLEncoding on the input string into the provided stream.
 
static std::string encode (const char *str)
 Perform XMLEncoding on the input string.
 
static void serialize (const xercesc::DOMNode *n, std::string &buf, bool pretty=false)
 Serializes the DOM node provided into a buffer using UTF-8 encoding and the default XML serializer available.
 
static std::ostream & serialize (const xercesc::DOMNode *n, std::ostream &out, bool pretty=false)
 Serializes the DOM node provided to a stream using UTF-8 encoding and the default XML serializer available.
 
static char * deflate (char *in, unsigned int in_len, unsigned int *out_len)
 Deflates data in accordance with RFC1951.
 
static unsigned int inflate (char *in, unsigned int in_len, std::ostream &out)
 Inflates data compressed in accordance with RFC1951 and sends the results to an output stream.
 

Detailed Description

A helper class for working with W3C DOM objects.

Member Function Documentation

◆ appendChildElement()

static xercesc::DOMElement * xmltooling::XMLHelper::appendChildElement ( xercesc::DOMElement * parentElement,
xercesc::DOMElement * childElement )
static

Appends the child Element to the parent Element, importing the child Element into the parent's Document if needed.

Parameters
parentElementthe parent Element
childElementthe child Element
Returns
the child Element that was added (may be an imported copy)

◆ deflate()

static char * xmltooling::XMLHelper::deflate ( char * in,
unsigned int in_len,
unsigned int * out_len )
static

Deflates data in accordance with RFC1951.

The caller must free the resulting buffer using delete[]

Parameters
inthe data to compress
in_lenlength of input data
out_lenwill contain the length of the resulting data
Returns
allocated buffer of out_len bytes containing deflated data

◆ encode() [1/2]

static std::string xmltooling::XMLHelper::encode ( const char * str)
static

Perform XMLEncoding on the input string.

Symbols handled: " (") < (<) > (>) & (&)

Parameters
strwhat to encode
Returns
the encoded input

◆ encode() [2/2]

static void xmltooling::XMLHelper::encode ( std::ostream & os,
const char * str )
static

Perform XMLEncoding on the input string into the provided stream.

Symbols handled: " (") < (<) > (>) & (&)

Parameters
oswhere to put the encoded string
strwhat to encode

◆ getAttrBool()

static bool xmltooling::XMLHelper::getAttrBool ( const xercesc::DOMElement * e,
bool defValue,
const XMLCh * localName,
const XMLCh * ns = 0 )
static

Returns the content of the specified attribute node as a boolean, or the default value, if the attribute is not present.

Parameters
eelement to examine (may be nullptr)
defValuedefault value to return
localNamelocal name of attribute
nsnamespace of attribute
Returns
the specified attribute's value, or the specified default

◆ getAttrInt()

static int xmltooling::XMLHelper::getAttrInt ( const xercesc::DOMElement * e,
int defValue,
const XMLCh * localName,
const XMLCh * ns = 0 )
static

Returns the content of the specified attribute node as an integer, or the default value, if the attribute is not present.

Parameters
eelement to examine (may be nullptr)
defValuedefault value to return
localNamelocal name of attribute
nsnamespace of attribute
Returns
the specified attribute's value, or the specified default

◆ getAttrString()

static std::string xmltooling::XMLHelper::getAttrString ( const xercesc::DOMElement * e,
const char * defValue,
const XMLCh * localName,
const XMLCh * ns = 0 )
static

Returns the content of the specified attribute node as a string, or the default value, if the attribute is not present.

Parameters
eelement to examine (may be nullptr)
defValuedefault value to return
localNamelocal name of attribute
nsnamespace of attribute
Returns
the specified attribute's value, or the specified default

◆ getCaseSensitive()

static bool xmltooling::XMLHelper::getCaseSensitive ( const xercesc::DOMElement * e,
bool defValue,
const XMLCh * ns = 0 )
static

Returns the value of the attribute "caseSensitive" (if present).

Also interogates the (deprecated) "ignoreCase" attribute, warning if it is encountered.

Parameters
eelement to examine (may be nullptr)
defValuedefault value to return
nsnamespace of attribute
Returns
whatever "caseSensitive" or "ignoreCase" specifies, or the specified default

◆ getFirstChildElement() [1/2]

static xercesc::DOMElement * xmltooling::XMLHelper::getFirstChildElement ( const xercesc::DOMNode * n,
const XMLCh * localName = 0 )
static

Returns the first matching child element of the node if any.

Parameters
nnode to check
localNamelocal name to compare with or nullptr for any match
Returns
the first matching child node of type Element, or nullptr

◆ getFirstChildElement() [2/2]

static xercesc::DOMElement * xmltooling::XMLHelper::getFirstChildElement ( const xercesc::DOMNode * n,
const XMLCh * ns,
const XMLCh * localName )
static

Returns the first matching child element of the node if any.

Parameters
nnode to check
nsnamespace to compare with
localNamelocal name to compare with
Returns
the first matching child node of type Element, or nullptr

◆ getIdAttribute()

static xercesc::DOMAttr * xmltooling::XMLHelper::getIdAttribute ( const xercesc::DOMElement * domElement)
static

Gets the ID attribute of a DOM element.

Parameters
domElementthe DOM element
Returns
the ID attribute or null if there isn't one

◆ getLastChildElement() [1/2]

static xercesc::DOMElement * xmltooling::XMLHelper::getLastChildElement ( const xercesc::DOMNode * n,
const XMLCh * localName = 0 )
static

Returns the last matching child element of the node if any.

Parameters
nnode to check
localNamelocal name to compare with or nullptr for any match
Returns
the last matching child node of type Element, or nullptr

◆ getLastChildElement() [2/2]

static xercesc::DOMElement * xmltooling::XMLHelper::getLastChildElement ( const xercesc::DOMNode * n,
const XMLCh * ns,
const XMLCh * localName )
static

Returns the last matching child element of the node if any.

Parameters
nnode to check
nsnamespace to compare with
localNamelocal name to compare with
Returns
the last matching child node of type Element, or nullptr

◆ getNextSiblingElement() [1/2]

static xercesc::DOMElement * xmltooling::XMLHelper::getNextSiblingElement ( const xercesc::DOMNode * n,
const XMLCh * localName = 0 )
static

Returns the next matching sibling element of the node if any.

Parameters
nnode to check
localNamelocal name to compare with or nullptr for any match
Returns
the next matching sibling node of type Element, or nullptr

◆ getNextSiblingElement() [2/2]

static xercesc::DOMElement * xmltooling::XMLHelper::getNextSiblingElement ( const xercesc::DOMNode * n,
const XMLCh * ns,
const XMLCh * localName )
static

Returns the next matching sibling element of the node if any.

Parameters
nnode to check
nsnamespace to compare with
localNamelocal name to compare with
Returns
the next matching sibling node of type Element, or nullptr

◆ getNodeQName()

static QName * xmltooling::XMLHelper::getNodeQName ( const xercesc::DOMNode * domNode)
static

Gets the QName for the given DOM node.

Parameters
domNodethe DOM node
Returns
the QName for the element or null if the element was null

◆ getNodeValueAsBool()

static bool xmltooling::XMLHelper::getNodeValueAsBool ( const xercesc::DOMNode * domNode,
bool def )
static

Returns a boolean based on a node's value.

Parameters
domNodethe DOM node with a boolean (1/0/true/false) value
defvalue to return if the node is null/missing
Returns
a bool value based on the node's value, or a default value

◆ getNodeValueAsQName()

static QName * xmltooling::XMLHelper::getNodeValueAsQName ( const xercesc::DOMNode * domNode)
static

Constructs a QName from a node's value.

The caller is responsible for freeing the result.

Parameters
domNodethe DOM node with a QName value
Returns
a QName from a node's value, or null if the given node has no value

◆ getNonVisiblyUsedPrefixes()

static void xmltooling::XMLHelper::getNonVisiblyUsedPrefixes ( const XMLObject & tree,
std::map< xstring, xstring > & prefixes )
static

Returns the set of non-visibly-used namespace declarations found in a tree.

Each member of the set is a prefix/URI pair.

Parameters
treeroot of tree to search
prefixescontainer to store declarations

◆ getPreviousSiblingElement() [1/2]

static xercesc::DOMElement * xmltooling::XMLHelper::getPreviousSiblingElement ( const xercesc::DOMNode * n,
const XMLCh * localName = 0 )
static

Returns the previous matching sibling element of the node if any.

Parameters
nnode to check
localNamelocal name to compare with or nullptr for any match
Returns
the previous matching sibling node of type Element, or nullptr

◆ getPreviousSiblingElement() [2/2]

static xercesc::DOMElement * xmltooling::XMLHelper::getPreviousSiblingElement ( const xercesc::DOMNode * n,
const XMLCh * ns,
const XMLCh * localName )
static

Returns the previous matching sibling element of the node if any.

Parameters
nnode to check
nsnamespace to compare with
localNamelocal name to compare with
Returns
the previous matching sibling node of type Element, or nullptr

◆ getTextContent()

static const XMLCh * xmltooling::XMLHelper::getTextContent ( const xercesc::DOMElement * e)
static

Returns the content of the first Text node found in the element, if any, acting on the assumption there can be no embedded comment, CDATA, or other interfering node types interrupting the text.

Parameters
eelement to examine
Returns
the content of the first Text node found, or nullptr

◆ getWholeTextContent()

static XMLCh * xmltooling::XMLHelper::getWholeTextContent ( const xercesc::DOMElement * e)
static

Returns all text content inside an element, regardless of the number of child nodes involved, up to the first child element encountered if any.

Because this may require merging data, the text is returned in a separately allocated buffer the caller must free using delete[].

Parameters
ethe element
Returns
an array allocated with new[] containing the text

◆ getXMLObjectById() [1/2]

static const XMLObject * xmltooling::XMLHelper::getXMLObjectById ( const XMLObject & tree,
const XMLCh * id )
static

Attempts to locate an XMLObject from this point downward in the tree whose XML ID matches the supplied value.

Parameters
treeroot of tree to search
idID value to locate
Returns
XMLObject in the tree with a matching ID value, or nullptr

◆ getXMLObjectById() [2/2]

static XMLObject * xmltooling::XMLHelper::getXMLObjectById ( XMLObject & tree,
const XMLCh * id )
static

Attempts to locate an XMLObject from this point downward in the tree whose XML ID matches the supplied value.

Parameters
treeroot of tree to search
idID value to locate
Returns
XMLObject in the tree with a matching ID value, or nullptr

◆ getXSIType()

static QName * xmltooling::XMLHelper::getXSIType ( const xercesc::DOMElement * e)
static

Gets the XSI type for a given element if it has one.

The caller is responsible for freeing the result.

Parameters
ethe element
Returns
the type or null

◆ hasXSIType()

static bool xmltooling::XMLHelper::hasXSIType ( const xercesc::DOMElement * e)
static

Checks if the given element has an xsi:type defined for it.

Parameters
ethe DOM element
Returns
true if there is a type, false if not

◆ inflate()

static unsigned int xmltooling::XMLHelper::inflate ( char * in,
unsigned int in_len,
std::ostream & out )
static

Inflates data compressed in accordance with RFC1951 and sends the results to an output stream.

Parameters
inthe data to inflate
in_lenlength of input data
outreference to output stream to receive data
Returns
number of bytes written to stream

◆ isNodeNamed()

static bool xmltooling::XMLHelper::isNodeNamed ( const xercesc::DOMNode * n,
const XMLCh * ns,
const XMLCh * local )
static

Checks the qualified name of a node.

Parameters
nnode to check
nsnamespace to compare with
locallocal name to compare with
Returns
true iff the node's qualified name matches the other parameters

◆ serialize() [1/2]

static std::ostream & xmltooling::XMLHelper::serialize ( const xercesc::DOMNode * n,
std::ostream & out,
bool pretty = false )
static

Serializes the DOM node provided to a stream using UTF-8 encoding and the default XML serializer available.

No manipulation or formatting is applied.

Parameters
nnode to serialize
outstream to serialize element into
prettyenable pretty printing if supported
Returns
reference to output stream

◆ serialize() [2/2]

static void xmltooling::XMLHelper::serialize ( const xercesc::DOMNode * n,
std::string & buf,
bool pretty = false )
static

Serializes the DOM node provided into a buffer using UTF-8 encoding and the default XML serializer available.

No manipulation or formatting is applied.

Parameters
nnode to serialize
bufbuffer to serialize element into
prettyenable pretty printing if supported

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