libUPnP 1.14.19
Data Structures | Macros | Enumerator | Variables
XML API

Data Structures

struct  _IXML_Node
 Data structure common to all types of nodes. More...
 
struct  _IXML_Document
 Data structure representing the DOM Document. More...
 
struct  _IXML_CDATASection
 Data structure representing a CDATA section node. More...
 
struct  _IXML_Element
 Data structure representing an Element node. More...
 
struct  _IXML_ATTR
 Data structure representing an Attribute node. More...
 
struct  _IXML_Text
 Data structure representing a Text node. More...
 
struct  _IXML_NodeList
 Data structure representing a list of nodes. More...
 
struct  _IXML_NamedNodeMap
 Data structure representing a list of named nodes. More...
 

Macros

#define DOMString   char *
 The type of DOM strings.
 

Variables

char * _IXML_Node::nodeName
 
char * _IXML_Node::nodeValue
 
IXML_NODE_TYPE _IXML_Node::nodeType
 
char * _IXML_Node::namespaceURI
 
char * _IXML_Node::prefix
 
char * _IXML_Node::localName
 
int _IXML_Node::readOnly
 
Nodeptr _IXML_Node::parentNode
 
Nodeptr _IXML_Node::firstChild
 
Nodeptr _IXML_Node::prevSibling
 
Nodeptr _IXML_Node::nextSibling
 
Nodeptr _IXML_Node::firstAttr
 
Docptr _IXML_Node::ownerDocument
 
IXML_Node _IXML_Document::n
 
IXML_Node _IXML_CDATASection::n
 
IXML_Node _IXML_Element::n
 
char * _IXML_Element::tagName
 
IXML_Node _IXML_ATTR::n
 
int _IXML_ATTR::specified
 
IXML_Element_IXML_ATTR::ownerElement
 
IXML_Node _IXML_Text::n
 
IXML_Node_IXML_NodeList::nodeItem
 
struct _IXML_NodeList_IXML_NodeList::next
 
IXML_Node_IXML_NamedNodeMap::nodeItem
 
struct _IXML_NamedNodeMap_IXML_NamedNodeMap::next
 

DOM Interfaces

The Document Object Model consists of a set of objects and interfaces for accessing and manipulating documents. IXML does not implement all the interfaces documented in the DOM2-Core recommendation but defines a subset of the most useful interfaces. A description of the supported interfaces and methods is presented in this section.

For a complete discussion on the object model, the object hierarchy, etc., refer to section 1.1 of the DOM2-Core recommendation.

enum  IXML_NODE_TYPE {
  eINVALID_NODE = 0 , eELEMENT_NODE = 1 , eATTRIBUTE_NODE = 2 , eTEXT_NODE = 3 ,
  eCDATA_SECTION_NODE = 4 , eENTITY_REFERENCE_NODE = 5 , eENTITY_NODE = 6 , ePROCESSING_INSTRUCTION_NODE = 7 ,
  eCOMMENT_NODE = 8 , eDOCUMENT_NODE = 9 , eDOCUMENT_TYPE_NODE = 10 , eDOCUMENT_FRAGMENT_NODE = 11 ,
  eNOTATION_NODE = 12
}
 The type of the DOM node. More...
 
enum  IXML_ERRORCODE {
  IXML_SUCCESS = 0 , IXML_INDEX_SIZE_ERR = 1 , IXML_DOMSTRING_SIZE_ERR = 2 , IXML_HIERARCHY_REQUEST_ERR = 3 ,
  IXML_WRONG_DOCUMENT_ERR = 4 , IXML_INVALID_CHARACTER_ERR = 5 , IXML_NO_DATA_ALLOWED_ERR = 6 , IXML_NO_MODIFICATION_ALLOWED_ERR = 7 ,
  IXML_NOT_FOUND_ERR = 8 , IXML_NOT_SUPPORTED_ERR = 9 , IXML_INUSE_ATTRIBUTE_ERR = 10 , IXML_INVALID_STATE_ERR = 11 ,
  IXML_SYNTAX_ERR = 12 , IXML_INVALID_MODIFICATION_ERR = 13 , IXML_NAMESPACE_ERR = 14 , IXML_INVALID_ACCESS_ERR = 15 ,
  IXML_NO_SUCH_FILE = 101 , IXML_INSUFFICIENT_MEMORY = 102 , IXML_FILE_DONE = 104 , IXML_INVALID_PARAMETER = 105 ,
  IXML_FAILED = 106 , IXML_INVALID_ITEM_NUMBER = 107
}
 Error codes returned by the XML API, see the DOM spec. More...
 
typedef struct _IXML_DocumentDocptr
 
typedef struct _IXML_NodeNodeptr
 
typedef struct _IXML_Node IXML_Node
 Data structure common to all types of nodes.
 
typedef struct _IXML_Document IXML_Document
 Data structure representing the DOM Document.
 
typedef struct _IXML_CDATASection IXML_CDATASection
 Data structure representing a CDATA section node.
 
typedef struct _IXML_Element IXML_Element
 Data structure representing an Element node.
 
typedef struct _IXML_ATTR IXML_Attr
 Data structure representing an Attribute node.
 
typedef struct _IXML_Text IXML_Text
 Data structure representing a Text node.
 
typedef struct _IXML_NodeList IXML_NodeList
 Data structure representing a list of nodes.
 
typedef struct _IXML_NamedNodeMap IXML_NamedNodeMap
 Data structure representing a list of named nodes.
 
#define DOCUMENTNODENAME   "#document"
 
#define TEXTNODENAME   "#text"
 
#define CDATANODENAME   "#cdata-section"
 

Interface Node

The Node interface forms the primary datatype for all other DOM objects. Every other interface is derived from this interface, inheriting its functionality. For more information, refer to DOM2-Core page 34. (Note: within the IXML library the NamedNodeMap and NodeList interfaces are the only interfaces that are not DOM objects and hence do not inherit from Node)

UPNP_EXPORT_SPEC const char * ixmlNode_getNodeName (IXML_Node *nodeptr)
 Returns the name of the Node, depending on what type of Node it is, in a read-only string.
 
UPNP_EXPORT_SPEC const char * ixmlNode_getNodeValue (IXML_Node *nodeptr)
 Returns the value of the Node as a string.
 
UPNP_EXPORT_SPEC int ixmlNode_setNodeValue (IXML_Node *nodeptr, const char *newNodeValue)
 Assigns a new value to a Node.
 
UPNP_EXPORT_SPEC unsigned short ixmlNode_getNodeType (IXML_Node *nodeptr)
 Retrieves the type of a Node. Note that not all possible return values are actually implemented.
 
UPNP_EXPORT_SPEC IXML_NodeixmlNode_getParentNode (IXML_Node *nodeptr)
 Retrieves the parent Node for a Node.
 
UPNP_EXPORT_SPEC IXML_NodeListixmlNode_getChildNodes (IXML_Node *nodeptr)
 Retrieves the list of children of a Node in a NodeList structure.
 
UPNP_EXPORT_SPEC IXML_NodeixmlNode_getFirstChild (IXML_Node *nodeptr)
 Retrieves the first child Node of a Node.
 
UPNP_EXPORT_SPEC IXML_NodeixmlNode_getLastChild (IXML_Node *nodeptr)
 Retrieves the last child Node of a Node.
 
UPNP_EXPORT_SPEC IXML_NodeixmlNode_getPreviousSibling (IXML_Node *nodeptr)
 Retrieves the sibling Node immediately preceding this Node.
 
UPNP_EXPORT_SPEC IXML_NodeixmlNode_getNextSibling (IXML_Node *nodeptr)
 Retrieves the sibling Node immediately following this Node.
 
UPNP_EXPORT_SPEC IXML_NamedNodeMapixmlNode_getAttributes (IXML_Node *nodeptr)
 Retrieves the attributes of a Node, if it is an Element node, in a NamedNodeMap structure.
 
UPNP_EXPORT_SPEC IXML_DocumentixmlNode_getOwnerDocument (IXML_Node *nodeptr)
 Retrieves the document object associated with this Node.
 
UPNP_EXPORT_SPEC const char * ixmlNode_getNamespaceURI (IXML_Node *nodeptr)
 Retrieves the namespace URI for a Node as a DOMString.
 
UPNP_EXPORT_SPEC const char * ixmlNode_getPrefix (IXML_Node *nodeptr)
 Retrieves the namespace prefix, if present.
 
UPNP_EXPORT_SPEC const char * ixmlNode_getLocalName (IXML_Node *nodeptr)
 Retrieves the local name of a Node, if present.
 
UPNP_EXPORT_SPEC int ixmlNode_insertBefore (IXML_Node *nodeptr, IXML_Node *newChild, IXML_Node *refChild)
 Inserts a new child Node before the existing child Node.
 
UPNP_EXPORT_SPEC int ixmlNode_replaceChild (IXML_Node *nodeptr, IXML_Node *newChild, IXML_Node *oldChild, IXML_Node **returnNode)
 Replaces an existing child Node with a new child Node in the list of children of a Node.
 
UPNP_EXPORT_SPEC int ixmlNode_removeChild (IXML_Node *nodeptr, IXML_Node *oldChild, IXML_Node **returnNode)
 Removes a child from the list of children of a Node.
 
UPNP_EXPORT_SPEC int ixmlNode_appendChild (IXML_Node *nodeptr, IXML_Node *newChild)
 Appends a child Node to the list of children of a Node.
 
UPNP_EXPORT_SPEC int ixmlNode_hasChildNodes (IXML_Node *nodeptr)
 Queries whether or not a Node has children.
 
UPNP_EXPORT_SPEC IXML_NodeixmlNode_cloneNode (IXML_Node *nodeptr, int deep)
 Clones a Node.
 
UPNP_EXPORT_SPEC int ixmlNode_hasAttributes (IXML_Node *nodeptr)
 Queries whether this Node has attributes.
 
UPNP_EXPORT_SPEC void ixmlNode_free (IXML_Node *nodeptr)
 Frees a Node and all Nodes in its subtree.
 

Interface Attr

The Attr interface represents an attribute of an Element. The document type definition (DTD) or schema usually dictate the allowable attributes and values for a particular element.

For more information, refer to the Interface Attr section in the DOM2-Core.

UPNP_EXPORT_SPEC void ixmlAttr_free (IXML_Attr *attrNode)
 Frees an Attr node.
 

Interface CDATASection

The CDATASection is used to escape blocks of text containing characters that would otherwise be regarded as markup. CDATA sections cannot be nested. Their primary purpose is for including material such XML fragments, without needing to escape all the delimiters.

For more information, refer to the Interface CDATASection section in the DOM2-Core.

UPNP_EXPORT_SPEC void ixmlCDATASection_init (IXML_CDATASection *nodeptr)
 Initializes a CDATASection node.
 
UPNP_EXPORT_SPEC void ixmlCDATASection_free (IXML_CDATASection *nodeptr)
 Frees a CDATASection node.
 

Interface Document

The Document interface represents the entire XML document. In essence, it is the root of the document tree and provides the primary interface to the elements of the document.

For more information, refer to the Interface Document section in the DOM2Core.

UPNP_EXPORT_SPEC void ixmlDocument_init (IXML_Document *nodeptr)
 Initializes a Document node.
 
UPNP_EXPORT_SPEC int ixmlDocument_createDocumentEx (IXML_Document **doc)
 Creates a new empty Document node.
 
UPNP_EXPORT_SPEC IXML_DocumentixmlDocument_createDocument (void)
 Creates a new empty Document node.
 
UPNP_EXPORT_SPEC int ixmlDocument_createElementEx (IXML_Document *doc, const char *tagName, IXML_Element **rtElement)
 Creates a new Element node with the given tag name.
 
UPNP_EXPORT_SPEC IXML_ElementixmlDocument_createElement (IXML_Document *doc, const char *tagName)
 Creates a new Element node with the given tag name.
 
UPNP_EXPORT_SPEC int ixmlDocument_createTextNodeEx (IXML_Document *doc, const char *data, IXML_Node **textNode)
 Creates a new Text node with the given data.
 
UPNP_EXPORT_SPEC IXML_NodeixmlDocument_createTextNode (IXML_Document *doc, const char *data)
 Creates a new Text node with the given data.
 
UPNP_EXPORT_SPEC int ixmlDocument_createCDATASectionEx (IXML_Document *doc, const char *data, IXML_CDATASection **cdNode)
 Creates a new CDATASection node with given data.
 
UPNP_EXPORT_SPEC IXML_CDATASectionixmlDocument_createCDATASection (IXML_Document *doc, const char *data)
 Creates a new CDATASection node with given data.
 
UPNP_EXPORT_SPEC IXML_AttrixmlDocument_createAttribute (IXML_Document *doc, const char *name)
 Creates a new Attr node with the given name.
 
UPNP_EXPORT_SPEC int ixmlDocument_createAttributeEx (IXML_Document *doc, const char *name, IXML_Attr **attrNode)
 Creates a new Attr node with the given name.
 
UPNP_EXPORT_SPEC IXML_NodeListixmlDocument_getElementsByTagName (IXML_Document *doc, const char *tagName)
 Returns a NodeList of all Elements that match the given tag name in the order in which they were encountered in a preorder traversal of the Document tree.
 
UPNP_EXPORT_SPEC int ixmlDocument_createElementNSEx (IXML_Document *doc, const char *namespaceURI, const char *qualifiedName, IXML_Element **rtElement)
 Creates a new Element node in the given qualified name and namespace URI.
 
UPNP_EXPORT_SPEC IXML_ElementixmlDocument_createElementNS (IXML_Document *doc, const char *namespaceURI, const char *qualifiedName)
 Creates a new Element node in the given qualified name and namespace URI.
 
UPNP_EXPORT_SPEC int ixmlDocument_createAttributeNSEx (IXML_Document *doc, const char *namespaceURI, const char *qualifiedName, IXML_Attr **attrNode)
 Creates a new Attr node with the given qualified name and namespace URI.
 
UPNP_EXPORT_SPEC IXML_AttrixmlDocument_createAttributeNS (IXML_Document *doc, const char *namespaceURI, const char *qualifiedName)
 Creates a new Attribute node with the given qualified name and namespace URI.
 
UPNP_EXPORT_SPEC IXML_NodeListixmlDocument_getElementsByTagNameNS (IXML_Document *doc, const char *namespaceURI, const char *localName)
 Returns a NodeList of Elements that match the given local name and namespace URI in the order they are encountered in a preorder traversal of the Document tree.
 
UPNP_EXPORT_SPEC IXML_ElementixmlDocument_getElementById (IXML_Document *doc, const char *tagName)
 Returns the Element whose ID matches that given id.
 
UPNP_EXPORT_SPEC void ixmlDocument_free (IXML_Document *doc)
 Frees a Document object and all Nodes associated with it.
 
UPNP_EXPORT_SPEC int ixmlDocument_importNode (IXML_Document *doc, IXML_Node *importNode, int deep, IXML_Node **rtNode)
 Imports a Node from another Document into this Document.
 

Interface Element

The Element interface represents an element in an XML document. Only Elements are allowed to have attributes, which are stored in the attributes member of a Node. The Element interface extends the Node interface and adds more operations to manipulate attributes.

UPNP_EXPORT_SPEC void ixmlElement_init (IXML_Element *element)
 Initializes a IXML_Element node.
 
UPNP_EXPORT_SPEC const char * ixmlElement_getTagName (IXML_Element *element)
 Returns the name of the tag as a constant string.
 
UPNP_EXPORT_SPEC const char * ixmlElement_getAttribute (IXML_Element *element, const char *name)
 Retrieves an attribute of an Element by name.
 
UPNP_EXPORT_SPEC int ixmlElement_setAttribute (IXML_Element *element, const char *name, const char *value)
 Adds a new attribute to an Element.
 
UPNP_EXPORT_SPEC int ixmlElement_removeAttribute (IXML_Element *element, const char *name)
 Removes an attribute value by name. The attribute node is not removed.
 
UPNP_EXPORT_SPEC IXML_AttrixmlElement_getAttributeNode (IXML_Element *element, const char *name)
 Retrieves an attribute node by name. See ixmlElement_getAttributeNodeNS to retrieve an attribute node using a qualified name or namespace URI.
 
UPNP_EXPORT_SPEC int ixmlElement_setAttributeNode (IXML_Element *element, IXML_Attr *newAttr, IXML_Attr **rtAttr)
 Adds a new attribute node to an Element.
 
UPNP_EXPORT_SPEC int ixmlElement_removeAttributeNode (IXML_Element *element, IXML_Attr *oldAttr, IXML_Attr **rtAttr)
 Removes the specified attribute node from an Element.
 
UPNP_EXPORT_SPEC IXML_NodeListixmlElement_getElementsByTagName (IXML_Element *element, const char *tagName)
 Returns a NodeList of all descendant Elements with a given tag name, in the order in which they are encountered in a pre-order traversal of this Element tree.
 
UPNP_EXPORT_SPEC const char * ixmlElement_getAttributeNS (IXML_Element *element, const char *namespaceURI, const char *localname)
 Retrieves an attribute value using the local name and namespace URI.
 
UPNP_EXPORT_SPEC int ixmlElement_setAttributeNS (IXML_Element *element, const char *namespaceURI, const char *qualifiedName, const char *value)
 Adds a new attribute to an Element using the local name and namespace URI.
 
UPNP_EXPORT_SPEC int ixmlElement_removeAttributeNS (IXML_Element *element, const char *namespaceURI, const char *localName)
 Removes an attribute using the namespace URI and local name.
 
UPNP_EXPORT_SPEC IXML_AttrixmlElement_getAttributeNodeNS (IXML_Element *element, const char *namespaceURI, const char *localName)
 Retrieves an Attr node by local name and namespace URI.
 
UPNP_EXPORT_SPEC int ixmlElement_setAttributeNodeNS (IXML_Element *element, IXML_Attr *newAttr, IXML_Attr **rcAttr)
 Adds a new attribute node to the element node specified.
 
UPNP_EXPORT_SPEC IXML_NodeListixmlElement_getElementsByTagNameNS (IXML_Element *element, const char *namespaceURI, const char *localName)
 Returns a NodeList of all descendant Elements with a given local name and namespace in the order in which they are encountered in the pre-order traversal of the Element tree.
 
UPNP_EXPORT_SPEC int ixmlElement_hasAttribute (IXML_Element *element, const char *name)
 Queries whether the Element has an attribute with the given name or a default value.
 
UPNP_EXPORT_SPEC int ixmlElement_hasAttributeNS (IXML_Element *element, const char *namespaceURI, const char *localName)
 Queries whether the Element has an attribute with the given local name and namespace URI or has a default value for that attribute.
 
UPNP_EXPORT_SPEC void ixmlElement_free (IXML_Element *element)
 Frees the given Element and any subtree of the Element.
 

Interface NamedNodeMap

A NamedNodeMap object represents a list of objects that can be accessed by name. A NamedNodeMap maintains the objects in no particular order. The Node interface uses a NamedNodeMap to maintain the attributes of a node.

UPNP_EXPORT_SPEC unsigned long ixmlNamedNodeMap_getLength (IXML_NamedNodeMap *nnMap)
 Returns the number of items contained in this NamedNodeMap.
 
UPNP_EXPORT_SPEC IXML_NodeixmlNamedNodeMap_getNamedItem (IXML_NamedNodeMap *nnMap, const char *name)
 Retrieves a Node from the NamedNodeMap by name.
 
UPNP_EXPORT_SPEC IXML_NodeixmlNamedNodeMap_setNamedItem (IXML_NamedNodeMap *nnMap, IXML_Node *arg)
 Adds a new Node to the NamedNodeMap using the Node name attribute.
 
UPNP_EXPORT_SPEC IXML_NodeixmlNamedNodeMap_removeNamedItem (IXML_NamedNodeMap *nnMap, const char *name)
 Removes a Node from a NamedNodeMap specified by name.
 
UPNP_EXPORT_SPEC IXML_NodeixmlNamedNodeMap_item (IXML_NamedNodeMap *nnMap, unsigned long index)
 Retrieves the indexth item in the map. If index is greater than or equal to the number of nodes in this map, this returns NULL.
 
UPNP_EXPORT_SPEC IXML_NodeixmlNamedNodeMap_getNamedItemNS (IXML_NamedNodeMap *nnMap, const char **namespaceURI, const char *localName)
 Retrieves a Node from a NamedNodeMap specified by namespace URI and local name.
 
UPNP_EXPORT_SPEC IXML_NodeixmlNamedNodeMap_setNamedItemNS (IXML_NamedNodeMap *nnMap, IXML_Node *arg)
 Adds a new Node to the NamedNodeMap using the Node local name and namespace URI attributes.
 
UPNP_EXPORT_SPEC IXML_NodeixmlNamedNodeMap_removeNamedItemNS (IXML_NamedNodeMap *nnMap, const char *namespaceURI, const char *localName)
 Removes a Node from a NamedNodeMap specified by namespace URI and local name.
 
UPNP_EXPORT_SPEC void ixmlNamedNodeMap_free (IXML_NamedNodeMap *nnMap)
 Frees a NamedNodeMap.
 

Interface NodeList

The NodeList interface abstracts an ordered collection of nodes. Note that changes to the underlying nodes will change the nodes contained in a NodeList. The DOM2-Core refers to this as being live.

UPNP_EXPORT_SPEC IXML_NodeixmlNodeList_item (IXML_NodeList *nList, unsigned long index)
 Retrieves a Node from a NodeList specified by a numerical index.
 
UPNP_EXPORT_SPEC unsigned long ixmlNodeList_length (IXML_NodeList *nList)
 Returns the number of Nodes in a NodeList.
 
UPNP_EXPORT_SPEC void ixmlNodeList_free (IXML_NodeList *nList)
 Frees a NodeList object.
 

IXML API

The IXML API contains utility functions that are not part of the standard DOM interfaces. They include functions to create a DOM structure from a file or buffer, create an XML file from a DOM structure, and manipulate DOMString objects.

UPNP_EXPORT_SPEC char * ixmlPrintDocument (IXML_Document *doc)
 Renders a Node and all sub-elements into an XML document representation.
 
UPNP_EXPORT_SPEC char * ixmlPrintNode (IXML_Node *doc)
 Renders a Node and all sub-elements into an XML text representation.
 
UPNP_EXPORT_SPEC char * ixmlDocumenttoString (IXML_Document *doc)
 Renders a Node and all sub-elements into an XML document representation.
 
UPNP_EXPORT_SPEC char * ixmlNodetoString (IXML_Node *doc)
 Renders a Node and all sub-elements into an XML text representation. The caller is required to free the DOMString returned from this function using ixmlFreeDOMString when it is no longer required.
 
UPNP_EXPORT_SPEC void ixmlRelaxParser (char errorChar)
 Makes the XML parser more tolerant to malformed text.
 
UPNP_EXPORT_SPEC IXML_DocumentixmlParseBuffer (const char *buffer)
 Parses an XML text buffer converting it into an IXML DOM representation.
 
UPNP_EXPORT_SPEC int ixmlParseBufferEx (const char *buffer, IXML_Document **doc)
 Parses an XML text buffer converting it into an IXML DOM representation.
 
UPNP_EXPORT_SPEC IXML_DocumentixmlLoadDocument (const char *xmlFile)
 Parses an XML text file converting it into an IXML DOM representation.
 
UPNP_EXPORT_SPEC int ixmlLoadDocumentEx (const char *xmlFile, IXML_Document **doc)
 Parses an XML text file converting it into an IXML DOM representation.
 
UPNP_EXPORT_SPEC char * ixmlCloneDOMString (const char *src)
 Clones an existing DOMString.
 
UPNP_EXPORT_SPEC void ixmlFreeDOMString (char *buf)
 Frees a DOMString.
 

Detailed Description

Macro Definition Documentation

◆ DOMString

#define DOMString   char *

The type of DOM strings.

Typedef Documentation

◆ IXML_Attr

typedef struct _IXML_ATTR IXML_Attr

Data structure representing an Attribute node.

◆ IXML_CDATASection

Data structure representing a CDATA section node.

◆ IXML_Document

typedef struct _IXML_Document IXML_Document

Data structure representing the DOM Document.

◆ IXML_Element

typedef struct _IXML_Element IXML_Element

Data structure representing an Element node.

◆ IXML_NamedNodeMap

Data structure representing a list of named nodes.

◆ IXML_Node

typedef struct _IXML_Node IXML_Node

Data structure common to all types of nodes.

◆ IXML_NodeList

typedef struct _IXML_NodeList IXML_NodeList

Data structure representing a list of nodes.

◆ IXML_Text

typedef struct _IXML_Text IXML_Text

Data structure representing a Text node.

Enumeration Type Documentation

◆ IXML_ERRORCODE

Error codes returned by the XML API, see the DOM spec.

◆ IXML_NODE_TYPE

The type of the DOM node.

Function Documentation

◆ ixmlAttr_free()

UPNP_EXPORT_SPEC void ixmlAttr_free ( IXML_Attr attrNode)

Frees an Attr node.

Parameters
attrNodeThe Attr node to free.

References ixmlNode_free().

Referenced by ixmlElement_setAttributeNode(), ixmlNode_cloneAttr(), and Parser_processAttributeName().

◆ ixmlCDATASection_free()

UPNP_EXPORT_SPEC void ixmlCDATASection_free ( IXML_CDATASection nodeptr)

Frees a CDATASection node.

Parameters
nodeptrThe CDATASection node to free.

References ixmlNode_free().

Referenced by ixmlNode_cloneCDATASect().

◆ ixmlCDATASection_init()

UPNP_EXPORT_SPEC void ixmlCDATASection_init ( IXML_CDATASection nodeptr)

Initializes a CDATASection node.

Parameters
[in]nodeptrThe CDATA Section Node to iniatialize.

Referenced by ixmlNode_cloneCDATASect().

◆ ixmlCloneDOMString()

UPNP_EXPORT_SPEC char * ixmlCloneDOMString ( const char *  src)

Clones an existing DOMString.

Returns
A new DOMString that is a duplicate of the original or NULL if the operation could not be completed.
Parameters
[in]srcThe source DOMString to clone.

Referenced by addServiceTable(), GeneratePropertySet(), getElementValue(), getServiceTable(), TestClass_set_TheDomString(), UpnpExtraHeaders_set_resp(), UpnpFileInfo_set_ContentType(), UpnpStateVarComplete_set_CurrentVal(), and UpnpStateVarRequest_set_CurrentVal().

◆ ixmlDocument_createAttribute()

UPNP_EXPORT_SPEC IXML_Attr * ixmlDocument_createAttribute ( IXML_Document doc,
const char *  name 
)

Creates a new Attr node with the given name.

Returns
A pointer to the new Attr object with the nodeName attribute set to the given name, and the localName, prefix and namespaceURI set to NULL or NULL on failure.

The value of the attribute is the empty string.

Parameters
[in]docThe owner Document of the new node.
[in]nameThe name of the new attribute.

◆ ixmlDocument_createAttributeEx()

UPNP_EXPORT_SPEC int ixmlDocument_createAttributeEx ( IXML_Document doc,
const char *  name,
IXML_Attr **  attrNode 
)

Creates a new Attr node with the given name.

The ixmlDocument_createAttributeEx API differs from the ixmlDocument_createAttribute API in that it returns an error code describing the reason for failure rather than just NULL.

Returns
An integer representing one of the following:
  • IXML_SUCCESS: The operation completed successfully.
  • IXML_INVALID_PARAMETER: Either doc or name is NULL.
  • IXML_INSUFFICIENT_MEMORY: Not enough free memory exists to complete this operation.
Parameters
[in]docThe owner Document of the new node.
[in]nameThe name of the new attribute.
[out]attrNodeA pointer to a Attr where the new object will be stored.

Referenced by Parser_processAttributeName().

◆ ixmlDocument_createAttributeNS()

UPNP_EXPORT_SPEC IXML_Attr * ixmlDocument_createAttributeNS ( IXML_Document doc,
const char *  namespaceURI,
const char *  qualifiedName 
)

Creates a new Attribute node with the given qualified name and namespace URI.

Returns
A pointer to the new Attr node with the given namespaceURI and qualifiedName. The prefix and localname are extracted from the qualifiedName. The node value is empty. Or NULL on failure.
Parameters
[in]docThe owner Document of the new Attribute.
[in]namespaceURIThe namespace URI for the attribute.
[in]qualifiedNameThe qualified name of the attribute.

◆ ixmlDocument_createAttributeNSEx()

UPNP_EXPORT_SPEC int ixmlDocument_createAttributeNSEx ( IXML_Document doc,
const char *  namespaceURI,
const char *  qualifiedName,
IXML_Attr **  attrNode 
)

Creates a new Attr node with the given qualified name and namespace URI.

The ixmlDocument_createAttributeNSEx API differs from the ixmlDocument_createAttributeNS API in that it returns an error code describing the reason for failure rather than just NULL.

Returns
An integer representing one of the following:
  • IXML_SUCCESS: The operation completed successfully.
  • IXML_INVALID_PARAMETER: Either doc, namespaceURI, or qualifiedName is NULL.
  • IXML_INSUFFICIENT_MEMORY: Not enough free memory exists to complete this operation.
Parameters
[in]docThe owner Document of the new Attr.
[in]namespaceURIThe namespace URI for the attribute.
[in]qualifiedNameThe qualified name of the attribute.
[out]attrNodeA pointer to an Attr where the new object will be stored.

◆ ixmlDocument_createCDATASection()

UPNP_EXPORT_SPEC IXML_CDATASection * ixmlDocument_createCDATASection ( IXML_Document doc,
const char *  data 
)

Creates a new CDATASection node with given data.

Returns
A pointer to the new CDATASection or NULL on failure.
Parameters
[in]docThe owner Document of the new node.
[in]dataThe data to associate with the new CDATASection node.

◆ ixmlDocument_createCDATASectionEx()

UPNP_EXPORT_SPEC int ixmlDocument_createCDATASectionEx ( IXML_Document doc,
const char *  data,
IXML_CDATASection **  cdNode 
)

Creates a new CDATASection node with given data.

The ixmlDocument_createCDATASectionEx API differs from the ixmlDocument_createCDATASection API in that it returns an error code describing the reason for failure rather than just NULL.

Returns
An integer representing one of the following:
  • IXML_SUCCESS: The operation completed successfully.
  • IXML_INVALID_PARAMETER: Either doc or data is NULL.
  • IXML_INSUFFICIENT_MEMORY: Not enough free memory exists to complete this operation.
Parameters
[in]docThe owner Document of the new node.
[in]dataThe data to associate with the new CDATASection node.
[out]cdNodeA pointer to a Node where the new object will be stored.

Referenced by Parser_parseDocument().

◆ ixmlDocument_createDocument()

UPNP_EXPORT_SPEC IXML_Document * ixmlDocument_createDocument ( void  )

Creates a new empty Document node.

Returns
A pointer to the new Document object with the nodeName set to "#document" or NULL on failure.

References ixmlDocument_createDocumentEx().

◆ ixmlDocument_createDocumentEx()

UPNP_EXPORT_SPEC int ixmlDocument_createDocumentEx ( IXML_Document **  doc)

Creates a new empty Document node.

The ixmlDocument_createDocumentEx API differs from the ixmlDocument_createDocument API in that it returns an error code describing the reason for the failure rather than just NULL.

Returns
An integer representing one of the following:
  • IXML_SUCCESS: The operation completed successfully.
  • IXML_INSUFFICIENT_MEMORY: Not enough free memory exists to complete this operation.
Parameters
[out]docPointer to a Document where the new object will be stored.

References ixmlDocument_free(), and ixmlDocument_init().

Referenced by ixmlDocument_createDocument(), and Parser_parseDocument().

◆ ixmlDocument_createElement()

UPNP_EXPORT_SPEC IXML_Element * ixmlDocument_createElement ( IXML_Document doc,
const char *  tagName 
)

Creates a new Element node with the given tag name.

The new Element node has a nodeName of tagName and the localName, prefix, and namespaceURI set to NULL. To create an Element with a namespace, see ixmlDocument_createElementNS.

Returns
A pointer to the new Element object with the node name set to tagName, and localName, prefix and namespaceURI set to NULL, or NULL on failure.
Parameters
[in]docThe owner Document of the new node.
[in]tagNameThe tag name of the new Element node (case-sensitive).

Referenced by addToAction(), makeAction(), UpnpAddToPropertySet(), and UpnpCreatePropertySet().

◆ ixmlDocument_createElementEx()

UPNP_EXPORT_SPEC int ixmlDocument_createElementEx ( IXML_Document doc,
const char *  tagName,
IXML_Element **  rtElement 
)

Creates a new Element node with the given tag name.

The new Element node has a nodeName of tagName and the localName, prefix, and namespaceURI set to NULL. To create an Element with a namespace, see ixmlDocument_createElementNS.

The ixmlDocument_createElementEx API differs from the ixmlDocument_createElement API in that it returns an error code describing the reason for failure rather than just NULL.

Returns
An integer representing one of the following:
  • IXML_SUCCESS: The operation completed successfully.
  • IXML_INVALID_PARAMETER: Either doc or tagName is NULL.
  • IXML_INSUFFICIENT_MEMORY: Not enough free memory exists to complete this operation.
Parameters
[in]docThe owner Document of the new node.
[in]tagNameThe tag name of the new Element node.
[out]rtElementPointer to an Element where the new object will be stored.

Referenced by Parser_processElementName().

◆ ixmlDocument_createElementNS()

UPNP_EXPORT_SPEC IXML_Element * ixmlDocument_createElementNS ( IXML_Document doc,
const char *  namespaceURI,
const char *  qualifiedName 
)

Creates a new Element node in the given qualified name and namespace URI.

Returns
A pointer to the new Element object with tagName qualifiedName, prefix and localName extraced from qualfiedName, nodeName of qualfiedName, namespaceURI of namespaceURI or NULL on failure.
Parameters
[in]docThe owner Document of the new node.
[in]namespaceURIThe namespace URI for the new Element.
[in]qualifiedNameThe qualified name of the new Element.

◆ ixmlDocument_createElementNSEx()

UPNP_EXPORT_SPEC int ixmlDocument_createElementNSEx ( IXML_Document doc,
const char *  namespaceURI,
const char *  qualifiedName,
IXML_Element **  rtElement 
)

Creates a new Element node in the given qualified name and namespace URI.

The ixmlDocument_createElementNSEx API differs from the ixmlDocument_createElementNS API in that it returns an error code describing the reason for failure rather than just NULL.

Returns
An integer representing one of the following:
  • IXML_SUCCESS: The operation completed successfully.
  • IXML_INVALID_PARAMETER: Either doc, namespaceURI, or qualifiedName is NULL.
  • IXML_INSUFFICIENT_MEMORY: Not enough free memory exists to complete this operation.
Parameters
[in]docThe owner Document of the new node.
[in]namespaceURIThe namespace URI for the new Element.
[in]qualifiedNameThe qualified name of the new Element.
[out]rtElementA pointer to an Element where the new object will be stored.

◆ ixmlDocument_createTextNode()

UPNP_EXPORT_SPEC IXML_Node * ixmlDocument_createTextNode ( IXML_Document doc,
const char *  data 
)

Creates a new Text node with the given data.

Returns
A pointer to the new Node or NULL on failure.
Parameters
[in]docThe owner Document of the new node.
[in]dataThe data to associate with the new Text node. It is stored in the nodeValue field.

Referenced by addToAction(), makeAction(), UpnpAddToPropertySet(), and UpnpCreatePropertySet().

◆ ixmlDocument_createTextNodeEx()

UPNP_EXPORT_SPEC int ixmlDocument_createTextNodeEx ( IXML_Document doc,
const char *  data,
IXML_Node **  textNode 
)

Creates a new Text node with the given data.

The ixmlDocument_createTextNodeEx() API differs from the ixmlDocument_createTextNode API in that it returns an error code describing the reason for failure rather than just NULL.

Returns
An integer representing one of the following:
  • IXML_SUCCESS: The operation completed successfully.
  • IXML_INVALID_PARAMETER: Either doc or data is NULL.
  • IXML_INSUFFICIENT_MEMORY: Not enough free memory exists to complete this operation.
Parameters
[in]docThe owner Document of the new node.
[in]dataThe data to associate with the new Text node. It is stored in nodeValue field.
[out]textNodeA pointer to a Node where the new object will be stored.

Referenced by Parser_parseDocument().

◆ ixmlDocument_free()

UPNP_EXPORT_SPEC void ixmlDocument_free ( IXML_Document doc)

Frees a Document object and all Nodes associated with it.

Any Nodes extracted via any other interface function, e.g. ixmlDocument_GetElementById, become invalid after this call unless explicitly cloned.

Parameters
[in]docThe Document to free.

References ixmlNode_free().

Referenced by free_action_arg(), gena_process_notification_event(), handle_invoke_action(), ixmlDocument_createDocumentEx(), ixmlNode_newDoc(), Parser_parseDocument(), soap_device_callback(), TvDeviceStateTableInit(), UpnpRegisterRootDevice(), UpnpRegisterRootDevice2(), UpnpRegisterRootDevice4(), UpnpSendActionExAsync(), UpnpThreadDistribution(), and UpnpUnRegisterRootDeviceLowPower().

◆ ixmlDocument_getElementById()

UPNP_EXPORT_SPEC IXML_Element * ixmlDocument_getElementById ( IXML_Document doc,
const char *  tagName 
)

Returns the Element whose ID matches that given id.

Returns
A pointer to the matching Element or NULL on an error.
Parameters
[in]docThe owner Document of the Element.
[in]tagNameThe name of the Element.

◆ ixmlDocument_getElementsByTagName()

UPNP_EXPORT_SPEC IXML_NodeList * ixmlDocument_getElementsByTagName ( IXML_Document doc,
const char *  tagName 
)

Returns a NodeList of all Elements that match the given tag name in the order in which they were encountered in a preorder traversal of the Document tree.

Returns
A pointer to a NodeList containing the matching items or NULL on an error.
Parameters
[in]docThe Document to search.
[in]tagNameThe tag name to find. The special value "*" matches all tags.

Referenced by SampleUtil_GetFirstDocumentItem(), SampleUtil_GetFirstServiceList(), TvStateUpdate(), UpnpRegisterRootDevice(), UpnpRegisterRootDevice2(), and UpnpRegisterRootDevice4().

◆ ixmlDocument_getElementsByTagNameNS()

UPNP_EXPORT_SPEC IXML_NodeList * ixmlDocument_getElementsByTagNameNS ( IXML_Document doc,
const char *  namespaceURI,
const char *  localName 
)

Returns a NodeList of Elements that match the given local name and namespace URI in the order they are encountered in a preorder traversal of the Document tree.

Either namespaceURI or localName can be the special "*" character, which matches any namespace or any local name respectively.

Returns
A pointer to a NodeList containing the matching items or NULL on an error.
Parameters
[in]docThe Document to search.
[in]namespaceURIThe namespace of the elements to find or "*" to match any namespace.
[in]localNameThe local name of the elements to find or "*" to match any local name.

◆ ixmlDocument_importNode()

UPNP_EXPORT_SPEC int ixmlDocument_importNode ( IXML_Document doc,
IXML_Node importNode,
int  deep,
IXML_Node **  rtNode 
)

Imports a Node from another Document into this Document.

The returned new Node does not a have parent node (parentNode is null): it is a clone of the original Node with the ownerDocument set to doc. The source node is not altered or removed from the original document.

For all nodes, importing a node creates a node object owned by the importing document, with attribute values identical to the source node's nodeName and nodeType, plus the attributes related to namespaces (prefix, localName, and namespaceURI).

As in the cloneNode operation on a node, the source node is not altered.

The deep parameter controls whether all the children of the Node are imported.

Refer to the DOM2-Core recommendation for details on importing specific node types.

Returns
An integer representing one of the following:
  • IXML_SUCCESS: The operation completed successfully.
  • IXML_INVALID_PARAMETER: Either doc or importNode is not a valid pointer.
  • IXML_NOT_SUPPORTED_ERR: importNode is a Document, which cannot be imported.
  • IXML_FAILED: The import operation failed because the Node to be imported could not be cloned.
Parameters
[in]docThe Document into which to import.
[in]importNodeThe Node to import.
[in]deep1 to import all children of importNode or 0 to import only the root node.
[out]rtNodeA pointer to a new Node owned by doc.

References ixmlDocument_setOwnerDocument(), ixmlNode_cloneNode(), and ixmlNode_getNodeType().

◆ ixmlDocument_init()

UPNP_EXPORT_SPEC void ixmlDocument_init ( IXML_Document nodeptr)

Initializes a Document node.

Parameters
[in]nodeptrThe Document node to initialize.

Referenced by ixmlDocument_createDocumentEx(), and ixmlNode_newDoc().

◆ ixmlDocumenttoString()

UPNP_EXPORT_SPEC char * ixmlDocumenttoString ( IXML_Document doc)

Renders a Node and all sub-elements into an XML document representation.

The caller is required to free the DOMString returned from this function using ixmlFreeDOMString when it is no longer required.

Note that this function can be used for any Node-derived interface. The difference between ixmlDocumenttoString and ixmlNodetoString is ixmlDocumenttoString includes the XML prolog while ixmlNodetoString only produces XML elements. An XML document is not well formed unless it includes the prolog and at least one element.

Returns
A DOMString with the XML text representation of the DOM tree or NULL on an error.
Parameters
[in]docThe root of the Node tree to render to XML text.

References ixml_membuf_append_str(), ixml_membuf_init(), and ixmlDomTreetoString().

◆ ixmlElement_free()

UPNP_EXPORT_SPEC void ixmlElement_free ( IXML_Element element)

Frees the given Element and any subtree of the Element.

Parameters
[in]elementThe Element to free.

References ixmlNode_free().

Referenced by ixmlNode_cloneElement(), and Parser_processElementName().

◆ ixmlElement_getAttribute()

UPNP_EXPORT_SPEC const char * ixmlElement_getAttribute ( IXML_Element element,
const char *  name 
)

Retrieves an attribute of an Element by name.

Returns
The value of the attribute, or NULL if that attribute does not have a specified value.
Parameters
[in]elementThe Element from which to retrieve the attribute.
[in]nameThe name of the attribute to retrieve.

◆ ixmlElement_getAttributeNode()

UPNP_EXPORT_SPEC IXML_Attr * ixmlElement_getAttributeNode ( IXML_Element element,
const char *  name 
)

Retrieves an attribute node by name. See ixmlElement_getAttributeNodeNS to retrieve an attribute node using a qualified name or namespace URI.

Returns
A pointer to the attribute matching name or NULL on if there is no such attribute.
Parameters
[in]elementThe Element from which to get the attribute node.
[in]nameThe name of the attribute node to find.

◆ ixmlElement_getAttributeNodeNS()

UPNP_EXPORT_SPEC IXML_Attr * ixmlElement_getAttributeNodeNS ( IXML_Element element,
const char *  namespaceURI,
const char *  localName 
)

Retrieves an Attr node by local name and namespace URI.

Returns
A pointer to an Attribute node with the specified attribute local name and namespace URI or NULL if there is no such attribute.
Parameters
[in]elementThe Element from which to get the attribute.
[in]namespaceURIThe namespace URI of the attribute.
[in]localNameThe local name of the attribute.

◆ ixmlElement_getAttributeNS()

UPNP_EXPORT_SPEC const char * ixmlElement_getAttributeNS ( IXML_Element element,
const char *  namespaceURI,
const char *  localname 
)

Retrieves an attribute value using the local name and namespace URI.

Returns
A DOMString representing the value of the matching attribute, or NULL if that attribute does not have the specified value.
Parameters
[in]elementThe Element from which to get the attribute value.
[in]namespaceURIThe namespace URI of the attribute.
[in]localnameThe local name of the attribute.

◆ ixmlElement_getElementsByTagName()

UPNP_EXPORT_SPEC IXML_NodeList * ixmlElement_getElementsByTagName ( IXML_Element element,
const char *  tagName 
)

Returns a NodeList of all descendant Elements with a given tag name, in the order in which they are encountered in a pre-order traversal of this Element tree.

Returns
A NodeList of the matching Elements or NULL on an error.
Parameters
[in]elementThe Element from which to start the search.
[in]tagNameThe name of the tag for which to search.

Referenced by AdvertiseAndReply(), removeServiceTable(), SampleUtil_GetFirstElementItem(), SampleUtil_GetFirstServiceList(), and TvStateUpdate().

◆ ixmlElement_getElementsByTagNameNS()

UPNP_EXPORT_SPEC IXML_NodeList * ixmlElement_getElementsByTagNameNS ( IXML_Element element,
const char *  namespaceURI,
const char *  localName 
)

Returns a NodeList of all descendant Elements with a given local name and namespace in the order in which they are encountered in the pre-order traversal of the Element tree.

Returns
A NodeList of matching Elements or NULL on an error.
Parameters
[in]elementThe Element from which to start the search.
[in]namespaceURIThe namespace URI of the Elements to find. The special value "*" matches all namespaces.
[in]localNameThe local name of the Elements to find. The special value "*" matches all local names.

◆ ixmlElement_getTagName()

UPNP_EXPORT_SPEC const char * ixmlElement_getTagName ( IXML_Element element)

Returns the name of the tag as a constant string.

Returns
The name of the Element.
Parameters
[in]elementThe Element from which to retrieve the name.

◆ ixmlElement_hasAttribute()

UPNP_EXPORT_SPEC int ixmlElement_hasAttribute ( IXML_Element element,
const char *  name 
)

Queries whether the Element has an attribute with the given name or a default value.

Returns
1 if the Element has an attribute with this name or has a default value for that attribute, otherwise 0.
Parameters
[in]elementThe Element on which to check for an attribute.
[in]nameThe name of the attribute for which to check.

◆ ixmlElement_hasAttributeNS()

UPNP_EXPORT_SPEC int ixmlElement_hasAttributeNS ( IXML_Element element,
const char *  namespaceURI,
const char *  localName 
)

Queries whether the Element has an attribute with the given local name and namespace URI or has a default value for that attribute.

Returns
1 if the Element has an attribute with the given namespace and local name or has a default value for that attribute, otherwise 0.
Parameters
[in]elementThe Element on which to check for the attribute.
[in]namespaceURIThe namespace URI of the attribute.
[in]localNameThe local name of the attribute.

◆ ixmlElement_init()

UPNP_EXPORT_SPEC void ixmlElement_init ( IXML_Element element)

Initializes a IXML_Element node.

Parameters
[in]elementThe Element to initialize.

Referenced by ixmlNode_cloneElement().

◆ ixmlElement_removeAttribute()

UPNP_EXPORT_SPEC int ixmlElement_removeAttribute ( IXML_Element element,
const char *  name 
)

Removes an attribute value by name. The attribute node is not removed.

Returns
An integer representing one of the following:
  • IXML_SUCCESS: The operation completed successfully.
  • IXML_INVALID_PARAMETER: Either element or name is NULL.
Parameters
[in]elementThe Element from which to remove the attribute.
[in]nameThe name of the attribute to remove.

◆ ixmlElement_removeAttributeNode()

UPNP_EXPORT_SPEC int ixmlElement_removeAttributeNode ( IXML_Element element,
IXML_Attr oldAttr,
IXML_Attr **  rtAttr 
)

Removes the specified attribute node from an Element.

Returns
An integer representing one of the following:
  • IXML_SUCCESS: The operation completed successfully.
  • IXML_INVALID_PARAMETER: Either element or oldAttr is NULL.
  • IXML_NOT_FOUND_ERR: oldAttr is not among the list attributes of element.
Parameters
[in]elementThe Element from which to remove the attribute.
[in]oldAttrThe attribute to remove from the Element.
[out]rtAttrA pointer to an attribute in which to place the removed attribute.

References ixmlElement_findAttributeNode().

◆ ixmlElement_removeAttributeNS()

UPNP_EXPORT_SPEC int ixmlElement_removeAttributeNS ( IXML_Element element,
const char *  namespaceURI,
const char *  localName 
)

Removes an attribute using the namespace URI and local name.

The replacing attribute has the same namespace URI and local name, as well as the original prefix.

Returns
An integer representing one of the following:
  • IXML_SUCCESS: The operation completed successfully.
  • IXML_INVALID_PARAMETER: Either element, namespaceURI, or localName is NULL.
Parameters
[in]elementThe Element from which to remove the the attribute.
[in]namespaceURIThe namespace URI of the attribute.
[in]localNameThe local name of the attribute.

◆ ixmlElement_setAttribute()

UPNP_EXPORT_SPEC int ixmlElement_setAttribute ( IXML_Element element,
const char *  name,
const char *  value 
)

Adds a new attribute to an Element.

If an attribute with the same name already exists in the element, the attribute value will be updated with the new value parameter. Otherwise, a new attribute is inserted into the element.

Returns
An integer representing of the following:
  • IXML_SUCCESS: The operation completed successfully.
  • IXML_INVALID_PARAMETER: Either element, name, or value is NULL.
  • IXML_INVALID_CHARACTER_ERR: name contains an illegal character.
  • IXML_INSUFFICIENT_MEMORY: Not enough free memory exists to complete the operation.
Parameters
[in]elementThe Element on which to set the attribute.
[in]nameThe name of the attribute.
[in]valueThe value of the attribute. Note that this is a non-parsed string and any markup must be escaped.

◆ ixmlElement_setAttributeNode()

UPNP_EXPORT_SPEC int ixmlElement_setAttributeNode ( IXML_Element element,
IXML_Attr newAttr,
IXML_Attr **  rtAttr 
)

Adds a new attribute node to an Element.

If an attribute already exists with newAttr as a name, it will be replaced with the new one and the old one will be returned in rtAttr.

Returns
If successfull, the replaced attribute node is returned in rtAttr, otherwise, NULL is returned in this pointer. The function return value is an integer representing one of the following:
  • IXML_SUCCESS: The operation completed successfully.
  • IXML_INVALID_PARAMETER: Either element or newAttr is NULL.
  • IXML_WRONG_DOCUMENT_ERR: newAttr does not belong to the same one as element.
  • IXML_INUSE_ATTRIBUTE_ERR: newAttr is already an attribute of another Element.
Parameters
[in]elementThe Element in which to add the new attribute.
[in]newAttrThe new Attr to add.
[out]rtAttrA pointer to an Attr where the old Attr will be stored. This will have a NULL if no prior node existed.

References ixmlAttr_free().

Referenced by Parser_processAttributeName().

◆ ixmlElement_setAttributeNodeNS()

UPNP_EXPORT_SPEC int ixmlElement_setAttributeNodeNS ( IXML_Element element,
IXML_Attr newAttr,
IXML_Attr **  rcAttr 
)

Adds a new attribute node to the element node specified.

If an attribute with the same local name and namespace URI already exists in the Element, the existing attribute node is replaced with newAttr and the old returned in rcAttr.

Returns
The output parameter rcAttr receives the replaced attribute node if the newAttr attribute replaces an existing attribute with the same local name and namespace, otherwise rcAttr receives NULL.

The function return value is an integer representing one of the following:

  • IXML_SUCCESS: The operation completed successfully.
  • IXML_INVALID_PARAMETER: Either element or newAttr is NULL.
  • IXML_WRONG_DOCUMENT_ERR: newAttr does not belong to the same document as element.
  • IXML_INUSE_ATTRIBUTE_ERR: newAttr already is an attribute of another Element.
Parameters
[in]elementThe Element in which to add the attribute node.
[in]newAttrThe new Attr to add.
[out]rcAttrA pointer to the replaced Attr, if it exists.

◆ ixmlElement_setAttributeNS()

UPNP_EXPORT_SPEC int ixmlElement_setAttributeNS ( IXML_Element element,
const char *  namespaceURI,
const char *  qualifiedName,
const char *  value 
)

Adds a new attribute to an Element using the local name and namespace URI.

If another attribute matches the same local name and namespace, the prefix is changed to be the prefix part of the qualifiedName and the value is changed to value.

Returns
An integer representing one of the following:
  • IXML_SUCCESS: The operation completed successfully.
  • IXML_INVALID_PARAMETER: Either element, namespaceURI, qualifiedName, or value is NULL.
  • IXML_INVALID_CHARACTER_ERR: qualifiedName contains an invalid character.
  • IXML_NAMESPACE_ERR: Either the qualifiedName or namespaceURI is malformed. Refer to the DOM2-Core for possible reasons.
  • IXML_INSUFFICIENT_MEMORY: Not enough free memory exist to complete the operation.
  • IXML_FAILED: The operation could not be completed.
Parameters
[in]elementThe Element on which to set the attribute.
[in]namespaceURIThe namespace URI of the new attribute.
[in]qualifiedNameThe qualified name of the attribute.
[in]valueThe new value for the attribute.

◆ ixmlFreeDOMString()

UPNP_EXPORT_SPEC void ixmlFreeDOMString ( char *  buf)

◆ ixmlLoadDocument()

UPNP_EXPORT_SPEC IXML_Document * ixmlLoadDocument ( const char *  xmlFile)

Parses an XML text file converting it into an IXML DOM representation.

Returns
A Document if the file correctly parses or NULL on an error.
Parameters
[in]xmlFileThe filename of the XML text to convert to a Document.

References ixmlLoadDocumentEx().

◆ ixmlLoadDocumentEx()

UPNP_EXPORT_SPEC int ixmlLoadDocumentEx ( const char *  xmlFile,
IXML_Document **  doc 
)

Parses an XML text file converting it into an IXML DOM representation.

The ixmlLoadDocumentEx API differs from the ixmlLoadDocument API in that it returns a an error code representing the actual failure rather than just NULL.

Returns
An integer representing one of the following:
  • IXML_SUCCESS: The operation completed successfully.
  • IXML_INVALID_PARAMETER: The xmlFile is not a valid pointer.
  • IXML_INSUFFICIENT_MEMORY: Not enough free memory exists to complete this operation.
Parameters
[in]xmlFileThe filename of the XML text to convert to a Document.
[out]docA pointer to the Document if file correctly parses or NULL on an error.

References Parser_LoadDocument().

Referenced by ixmlLoadDocument().

◆ ixmlNamedNodeMap_free()

UPNP_EXPORT_SPEC void ixmlNamedNodeMap_free ( IXML_NamedNodeMap nnMap)

Frees a NamedNodeMap.

The Nodes inside the map are not freed, just the NamedNodeMap object.

Parameters
[in]nnMapThe NamedNodeMap to free.

Referenced by ixmlNode_getAttributes().

◆ ixmlNamedNodeMap_getLength()

UPNP_EXPORT_SPEC unsigned long ixmlNamedNodeMap_getLength ( IXML_NamedNodeMap nnMap)

Returns the number of items contained in this NamedNodeMap.

Returns
The number of nodes in this map.
Parameters
[in]nnMapThe NamedNodeMap from which to retrieve the size.

Referenced by ixmlNamedNodeMap_item().

◆ ixmlNamedNodeMap_getNamedItem()

UPNP_EXPORT_SPEC IXML_Node * ixmlNamedNodeMap_getNamedItem ( IXML_NamedNodeMap nnMap,
const char *  name 
)

Retrieves a Node from the NamedNodeMap by name.

Returns
A Node with the specified nodeName, or NULL if it does not identify any node in this map.
Parameters
[in]nnMapThe NamedNodeMap to search.
[in]nameThe name of the Node to find.

◆ ixmlNamedNodeMap_getNamedItemNS()

UPNP_EXPORT_SPEC IXML_Node * ixmlNamedNodeMap_getNamedItemNS ( IXML_NamedNodeMap nnMap,
const char **  namespaceURI,
const char *  localName 
)

Retrieves a Node from a NamedNodeMap specified by namespace URI and local name.

Returns
A pointer to the Node, if found, or NULL if it wasn't
Parameters
nnMapThe NamedNodeMap from which to remove the Node.
namespaceURIThe namespace URI of the Node to remove.
localNameThe local name of the Node to remove.

◆ ixmlNamedNodeMap_item()

UPNP_EXPORT_SPEC IXML_Node * ixmlNamedNodeMap_item ( IXML_NamedNodeMap nnMap,
unsigned long  index 
)

Retrieves the indexth item in the map. If index is greater than or equal to the number of nodes in this map, this returns NULL.

Returns
The node at the indexth position in the map, or NULL if that is not a valid index.
Parameters
[in]nnMapThe NamedNodeMap from which to remove the Node.
[in]indexThe index into the map to remove.

References ixmlNamedNodeMap_getLength().

◆ ixmlNamedNodeMap_removeNamedItem()

UPNP_EXPORT_SPEC IXML_Node * ixmlNamedNodeMap_removeNamedItem ( IXML_NamedNodeMap nnMap,
const char *  name 
)

Removes a Node from a NamedNodeMap specified by name.

Returns
A pointer to the Node, if found, or NULL if it wasn't.
Parameters
nnMapThe NamedNodeMap from which to remove the item.
nameThe name of the item to remove.

◆ ixmlNamedNodeMap_removeNamedItemNS()

UPNP_EXPORT_SPEC IXML_Node * ixmlNamedNodeMap_removeNamedItemNS ( IXML_NamedNodeMap nnMap,
const char *  namespaceURI,
const char *  localName 
)

Removes a Node from a NamedNodeMap specified by namespace URI and local name.

Returns
A pointer to the Node, if found, or NULL if it wasn't.
Parameters
nnMapThe NamedNodeMap from which to remove the Node.
namespaceURIThe namespace URI of the Node to remove.
localNameThe local name of the Node to remove.

◆ ixmlNamedNodeMap_setNamedItem()

UPNP_EXPORT_SPEC IXML_Node * ixmlNamedNodeMap_setNamedItem ( IXML_NamedNodeMap nnMap,
IXML_Node arg 
)

Adds a new Node to the NamedNodeMap using the Node name attribute.

Returns
The old Node if the new Node replaces it or NULL if the Node was not in the NamedNodeMap before.
Parameters
nnMapThe NamedNodeMap in which to add the new Node.
argThe new Node to add to the NamedNodeMap.

◆ ixmlNamedNodeMap_setNamedItemNS()

UPNP_EXPORT_SPEC IXML_Node * ixmlNamedNodeMap_setNamedItemNS ( IXML_NamedNodeMap nnMap,
IXML_Node arg 
)

Adds a new Node to the NamedNodeMap using the Node local name and namespace URI attributes.

Returns
The old Node if the new Node replaces it or NULL if the Node was not in the NamedNodeMap before.
Parameters
nnMapThe NamedNodeMap in which to add the Node.
argThe Node to add to the map.

◆ ixmlNode_appendChild()

UPNP_EXPORT_SPEC int ixmlNode_appendChild ( IXML_Node nodeptr,
IXML_Node newChild 
)

Appends a child Node to the list of children of a Node.

If newChild is already in the tree, it is removed first.

Returns
An integer representing one of the following:
  • IXML_SUCCESS: The operation completed successfully.
  • IXML_INVALID_PARAMETER: Either nodeptr or newChild is NULL.
  • IXML_HIERARCHY_REQUEST_ERR: newChild is of a type that cannot be added as a child of nodeptr or newChild is an ancestor of nodeptr.
  • IXML_WRONG_DOCUMENT_ERR: newChild was created from a different document than nodeptr.
  • IXML_NO_MODIFICATION_ALLOWED_ERR: nodeptr is a read-only Node.
Parameters
[in]nodeptrThe Node in which to append the new child.
[in]newChildThe new child to append.

References ixmlNode_allowChildren(), ixmlNode_isAncestor(), ixmlNode_isParent(), and ixmlNode_removeChild().

Referenced by addToAction(), ixmlNode_insertBefore(), makeAction(), Parser_parseDocument(), Parser_processElementName(), UpnpAddToPropertySet(), and UpnpCreatePropertySet().

◆ ixmlNode_cloneNode()

UPNP_EXPORT_SPEC IXML_Node * ixmlNode_cloneNode ( IXML_Node nodeptr,
int  deep 
)

Clones a Node.

The new Node does not have a parent. The deep parameter controls whether the subtree of the Node is also cloned.

For details on cloning specific types of Nodes, refer to the DOM2-Core recommendation.

Returns
A clone of nodeptr or NULL.
Parameters
[in]nodeptrThe Node to clone.
[in]deep1 to clone the subtree also or 0 to clone only nodeptr.

References ixmlNode_cloneAttrDirect(), and ixmlNode_cloneNodeTree().

Referenced by ixmlDocument_importNode().

◆ ixmlNode_free()

UPNP_EXPORT_SPEC void ixmlNode_free ( IXML_Node nodeptr)

Frees a Node and all Nodes in its subtree.

Parameters
[in]nodeptrThe Node tree to free. Before it is freed, the handler set by ixmlSetBeforeFree will be called, the order will be top-down.

References ixmlNode_freeSingleNode().

Referenced by ixmlAttr_free(), ixmlCDATASection_free(), ixmlDocument_free(), ixmlElement_free(), ixmlNode_cloneTextNode(), and ixmlNode_removeChild().

◆ ixmlNode_getAttributes()

UPNP_EXPORT_SPEC IXML_NamedNodeMap * ixmlNode_getAttributes ( IXML_Node nodeptr)

Retrieves the attributes of a Node, if it is an Element node, in a NamedNodeMap structure.

Returns
A NamedNodeMap of the attributes or NULL.
Parameters
[in]nodeptrThe Node from which to retrieve the attributes.

References ixmlNamedNodeMap_addToNamedNodeMap(), ixmlNamedNodeMap_free(), and ixmlNamedNodeMap_init().

◆ ixmlNode_getChildNodes()

UPNP_EXPORT_SPEC IXML_NodeList * ixmlNode_getChildNodes ( IXML_Node nodeptr)

Retrieves the list of children of a Node in a NodeList structure.

If a Node has no children, ixmlNode_getChildNodes returns a NodeList structure that contains no Nodes.

Returns
A NodeList of the children of the Node.
Parameters
[in]nodeptrThe Node from which to retrieve the children.

References ixmlNodeList_addToNodeList(), ixmlNodeList_free(), and ixmlNodeList_init().

Referenced by printNodes().

◆ ixmlNode_getFirstChild()

UPNP_EXPORT_SPEC IXML_Node * ixmlNode_getFirstChild ( IXML_Node nodeptr)

◆ ixmlNode_getLastChild()

UPNP_EXPORT_SPEC IXML_Node * ixmlNode_getLastChild ( IXML_Node nodeptr)

Retrieves the last child Node of a Node.

Returns
A pointer to the last child Node or NULL if the Node does not have any children.
Parameters
[in]nodeptrThe Node from which to retrieve the last child.

◆ ixmlNode_getLocalName()

UPNP_EXPORT_SPEC const char * ixmlNode_getLocalName ( IXML_Node nodeptr)

Retrieves the local name of a Node, if present.

The local name is the tag name without the namespace prefix. Only Nodes of type eELEMENT_NODE or eATTRIBUTE_NODE can have a local name. Nodes created through the Document interface will only contain a local name if created using ixmlDocument_createElementNS.

Returns
A DOMString representing the local name of the Element or NULL.
Parameters
[in]nodeptrThe Node from which to retrieve the local name.

Referenced by check_soap_request(), ixmlNode_getElementsByTagNameNS(), and ixmlNode_getElementsByTagNameNSRecursive().

◆ ixmlNode_getNamespaceURI()

UPNP_EXPORT_SPEC const char * ixmlNode_getNamespaceURI ( IXML_Node nodeptr)

Retrieves the namespace URI for a Node as a DOMString.

Only Nodes of type eELEMENT_NODE or eATTRIBUTE_NODE can have a namespace URI. Nodes created through the Document interface will only contain a namespace if created using ixmlDocument_createElementNS.

Returns
A DOMString representing the URI of the namespace or NULL.
Parameters
[in]nodeptrThe Node for which to retrieve the namespace.

References DOMString.

Referenced by check_soap_request(), ixmlNode_getElementsByTagNameNS(), and ixmlNode_getElementsByTagNameNSRecursive().

◆ ixmlNode_getNextSibling()

UPNP_EXPORT_SPEC IXML_Node * ixmlNode_getNextSibling ( IXML_Node nodeptr)

Retrieves the sibling Node immediately following this Node.

Returns
A pointer to the next sibling Node or NULL if no such Node exists.
Parameters
[in]nodeptrThe Node from which to retrieve the next sibling.

Referenced by AdvertiseAndReply(), getSubElement(), ixmlDocument_setOwnerDocument(), ixmlNode_getElementsByTagNameNSRecursive(), ixmlNode_getElementsByTagNameRecursive(), and ixmlPrintDomTreeRecursive().

◆ ixmlNode_getNodeName()

UPNP_EXPORT_SPEC const char * ixmlNode_getNodeName ( IXML_Node nodeptr)

Returns the name of the Node, depending on what type of Node it is, in a read-only string.

Refer to the table in the DOM2-Core for a description of the node names for various interfaces.

Returns
A constant DOMString of the node name.
Parameters
[in]nodeptrPointer to the node to retrieve the name.

Referenced by AdvertiseAndReply(), getSubElement(), ixmlDomTreetoString(), ixmlNode_getElementsByTagName(), ixmlNode_getElementsByTagNameRecursive(), ixmlPrintDomTree(), ixmlPrintDomTreeRecursive(), and printNodes().

◆ ixmlNode_getNodeType()

UPNP_EXPORT_SPEC unsigned short ixmlNode_getNodeType ( IXML_Node nodeptr)

Retrieves the type of a Node. Note that not all possible return values are actually implemented.

Returns
An enum IXML_NODE_TYPE representing the type of the Node.
Parameters
[in]nodeptrThe Node from which to retrieve the type.

Referenced by check_soap_request(), getElementValue(), getSubElement(), ixmlDocument_importNode(), ixmlDomTreetoString(), ixmlNode_getElementsByTagName(), ixmlNode_getElementsByTagNameNS(), ixmlNode_getElementsByTagNameNSRecursive(), ixmlNode_getElementsByTagNameRecursive(), ixmlPrintDomTree(), ixmlPrintDomTreeRecursive(), printNodes(), and SampleUtil_GetElementValue().

◆ ixmlNode_getNodeValue()

UPNP_EXPORT_SPEC const char * ixmlNode_getNodeValue ( IXML_Node nodeptr)

Returns the value of the Node as a string.

Note that this string is not a copy and modifying it will modify the value of the Node.

Returns
A DOMString of the Node value.
Parameters
[in]nodeptrPointer to the Node to retrieve the value.

Referenced by AdvertiseAndReply(), getElementValue(), handle_query_variable(), ixmlDomTreetoString(), ixmlPrintDomTree(), ixmlPrintDomTreeRecursive(), printNodes(), SampleUtil_GetElementValue(), SampleUtil_GetFirstDocumentItem(), and SampleUtil_GetFirstElementItem().

◆ ixmlNode_getOwnerDocument()

UPNP_EXPORT_SPEC IXML_Document * ixmlNode_getOwnerDocument ( IXML_Node nodeptr)

Retrieves the document object associated with this Node.

This owner document Node allows other Nodes to be created in the context of this document. Note that Document nodes do not have an owner document.

Returns
A pointer to the owning Document or NULL, if the Node does not have an owner.
Parameters
[in]nodeptrThe Node from which to retrieve the owner document.

◆ ixmlNode_getParentNode()

UPNP_EXPORT_SPEC IXML_Node * ixmlNode_getParentNode ( IXML_Node nodeptr)

Retrieves the parent Node for a Node.

Returns
A pointer to the parent Node or NULL if the Node has no parent.
Parameters
[in]nodeptrThe Node from which to retrieve the parent.

◆ ixmlNode_getPrefix()

UPNP_EXPORT_SPEC const char * ixmlNode_getPrefix ( IXML_Node nodeptr)

Retrieves the namespace prefix, if present.

The prefix is the name used as an alias for the namespace URI for this element. Only Nodes of type eELEMENT_NODE or eATTRIBUTE_NODE can have a prefix. Nodes created through the Document interface will only contain a prefix if created using ixmlDocument_createElementNS.

Returns
A DOMString representing the namespace prefix or NULL.
Parameters
nodeptrThe Node from which to retrieve the prefix.

References DOMString.

◆ ixmlNode_getPreviousSibling()

UPNP_EXPORT_SPEC IXML_Node * ixmlNode_getPreviousSibling ( IXML_Node nodeptr)

Retrieves the sibling Node immediately preceding this Node.

Returns
A pointer to the previous sibling Node or NULL if no such Node exists.
Parameters
[in]nodeptrThe Node for which to retrieve the previous sibling.

◆ ixmlNode_hasAttributes()

UPNP_EXPORT_SPEC int ixmlNode_hasAttributes ( IXML_Node nodeptr)

Queries whether this Node has attributes.

Note that only Element nodes have attributes.

Returns
1 if the Node has attributes otherwise 0.
Parameters
[in]nodeptrThe Node to query for attributes.

◆ ixmlNode_hasChildNodes()

UPNP_EXPORT_SPEC int ixmlNode_hasChildNodes ( IXML_Node nodeptr)

Queries whether or not a Node has children.

Returns
1 if the Node has one or more children otherwise 0.
Parameters
[in]nodeptrThe Node to query for children.

◆ ixmlNode_insertBefore()

UPNP_EXPORT_SPEC int ixmlNode_insertBefore ( IXML_Node nodeptr,
IXML_Node newChild,
IXML_Node refChild 
)

Inserts a new child Node before the existing child Node.

refChild can be NULL, which inserts newChild at the end of the list of children. Note that the Node (or Nodes) in newChild must already be owned by the owner document (or have no owner at all) of nodeptr for insertion. If not, the Node (or Nodes) must be imported into the document using ixmlDocument_importNode. If newChild is already in the tree, it is removed first.

Returns
An integer representing one of the following:
  • IXML_SUCCESS: The operation completed successfully.
  • IXML_INVALID_PARAMETER: Either nodeptr or newChild is NULL.
  • IXML_HIERARCHY_REQUEST_ERR: The type of the Node does not allow children of the type of newChild.
  • IXML_WRONG_DOCUMENT_ERR: newChild has an owner document that does not match the owner of nodeptr.
  • IXML_NO_MODIFICATION_ALLOWED_ERR: nodeptr is read-only or the parent of the Node being inserted is read-only.
  • IXML_NOT_FOUND_ERR: refChild is not a child of nodeptr.
Parameters
[in]nodeptrThe parent of the Node before which to insert the new child.
[in]newChildThe Node to insert into the tree.
[in]refChildThe reference child where the new Node should be inserted. The new Node will appear directly before the reference child.

References ixmlNode_allowChildren(), ixmlNode_appendChild(), ixmlNode_isAncestor(), ixmlNode_isParent(), and ixmlNode_removeChild().

Referenced by ixmlNode_replaceChild().

◆ ixmlNode_removeChild()

UPNP_EXPORT_SPEC int ixmlNode_removeChild ( IXML_Node nodeptr,
IXML_Node oldChild,
IXML_Node **  returnNode 
)

Removes a child from the list of children of a Node.

returnNode will contain the oldChild Node, appropriately removed from the tree (i.e. it will no longer have an owner document).

Returns
An integer representing one of the following:
  • IXML_SUCCESS: The operation completed successfully.
  • IXML_INVALID_PARAMETER: Either nodeptr or oldChild is NULL.
  • IXML_NO_MODIFICATION_ALLOWED_ERR: nodeptr or its parent is read-only.
  • IXML_NOT_FOUND_ERR: oldChild is not among the children of nodeptr.
Parameters
[in]nodeptrThe parent of the child to remove.
[in]oldChildThe child Node to remove.
[out]returnNodePointer to a Node to place the removed oldChild Node.

References ixmlNode_free(), and ixmlNode_isParent().

Referenced by ixmlNode_appendChild(), ixmlNode_insertBefore(), and ixmlNode_replaceChild().

◆ ixmlNode_replaceChild()

UPNP_EXPORT_SPEC int ixmlNode_replaceChild ( IXML_Node nodeptr,
IXML_Node newChild,
IXML_Node oldChild,
IXML_Node **  returnNode 
)

Replaces an existing child Node with a new child Node in the list of children of a Node.

If newChild is already in the tree, it will first be removed. returnNode will contain the oldChild Node, appropriately removed from the tree (i.e. it will no longer have an owner document).

Returns
An integer representing one of the following:
  • IXML_SUCCESS: The operation completed successfully.
  • IXML_INVALID_PARAMTER: Either nodeptr, newChild, or oldChild is NULL.
  • IXML_HIERARCHY_REQUEST_ERR: The newChild is not a type of Node that can be inserted into this tree or newChild is an ancestor of nodePtr.
  • IXML_WRONG_DOCUMENT_ERR: newChild was created from a different document than nodeptr.
  • IXML_NO_MODIFICATION_ALLOWED_ERR: nodeptr or its parent is read-only.
  • IXML_NOT_FOUND_ERR: oldChild is not a child of nodeptr.
Parameters
[in]nodeptrThe parent of the Node which contains the child to replace.
[in]newChildThe child with which to replace oldChild.
[in]oldChildThe child to replace with newChild.
[out]returnNodePointer to a Node to place the removed oldChild Node.

References ixmlNode_allowChildren(), ixmlNode_insertBefore(), ixmlNode_isAncestor(), ixmlNode_isParent(), and ixmlNode_removeChild().

◆ ixmlNode_setNodeValue()

UPNP_EXPORT_SPEC int ixmlNode_setNodeValue ( IXML_Node nodeptr,
const char *  newNodeValue 
)

Assigns a new value to a Node.

The newNodeValue string is duplicated and stored in the Node so that the original does not have to persist past this call.

Returns
An integer representing one of the following:
  • IXML_SUCCESS: The operation completed successfully.
  • IXML_INVALID_PARAMETER: The Node * is not a valid pointer.
  • IXML_INSUFFICIENT_MEMORY: Not enough free memory exists to complete this operation.
Parameters
[in]nodeptrThe Node to which to assign a new value.
[in]newNodeValueThe new value of the Node.

Referenced by ixmlNode_cloneAttr(), ixmlNode_cloneCDATASect(), ixmlNode_cloneElement(), ixmlNode_cloneTextNode(), and ixmlNode_setNodeProperties().

◆ ixmlNodeList_free()

UPNP_EXPORT_SPEC void ixmlNodeList_free ( IXML_NodeList nList)

Frees a NodeList object.

Since the underlying Nodes are references, they are not freed using this operation. This only frees the NodeList object.

Parameters
[in]nListThe NodeList to free.

Referenced by AdvertiseAndReply(), ixmlNode_getChildNodes(), removeServiceTable(), SampleUtil_FindAndParseService(), SampleUtil_GetFirstDocumentItem(), SampleUtil_GetFirstElementItem(), SampleUtil_GetFirstServiceList(), TvStateUpdate(), and UpnpUnRegisterRootDeviceLowPower().

◆ ixmlNodeList_item()

UPNP_EXPORT_SPEC IXML_Node * ixmlNodeList_item ( IXML_NodeList nList,
unsigned long  index 
)

Retrieves a Node from a NodeList specified by a numerical index.

Returns
A pointer to a Node or NULL if there was an error.
Parameters
[in]nListThe NodeList from which to retrieve the Node.
[in]indexThe index into the NodeList to retrieve.

References ixmlNodeList_length().

Referenced by AdvertiseAndReply(), printNodes(), SampleUtil_FindAndParseService(), SampleUtil_GetFirstDocumentItem(), SampleUtil_GetFirstElementItem(), SampleUtil_GetFirstServiceList(), and TvStateUpdate().

◆ ixmlNodeList_length()

UPNP_EXPORT_SPEC unsigned long ixmlNodeList_length ( IXML_NodeList nList)

Returns the number of Nodes in a NodeList.

Returns
The number of Nodes in the NodeList.
Parameters
[in]nListThe NodeList for which to retrieve the number of Nodes.

Referenced by ixmlNodeList_item(), removeServiceTable(), SampleUtil_FindAndParseService(), SampleUtil_GetFirstServiceList(), and TvStateUpdate().

◆ ixmlNodetoString()

UPNP_EXPORT_SPEC char * ixmlNodetoString ( IXML_Node doc)

Renders a Node and all sub-elements into an XML text representation. The caller is required to free the DOMString returned from this function using ixmlFreeDOMString when it is no longer required.

Note that this function can be used for any Node-derived interface. The difference between ixmlNodetoString and ixmlDocumenttoString is ixmlNodetoString does not include the XML prolog, it only produces XML elements.

Returns
A DOMString with the XML text representation of the DOM tree or NULL on an error.
Parameters
[in]docThe root of the Node tree to render to XML text.

References ixml_membuf_init(), and ixmlDomTreetoString().

◆ ixmlParseBuffer()

UPNP_EXPORT_SPEC IXML_Document * ixmlParseBuffer ( const char *  buffer)

Parses an XML text buffer converting it into an IXML DOM representation.

Returns
A Document if the buffer correctly parses or NULL on an error.
Parameters
[in]bufferThe buffer that contains the XML text to convert to a Document.

References ixmlParseBufferEx().

◆ ixmlParseBufferEx()

UPNP_EXPORT_SPEC int ixmlParseBufferEx ( const char *  buffer,
IXML_Document **  doc 
)

Parses an XML text buffer converting it into an IXML DOM representation.

The ixmlParseBufferEx API differs from the ixmlParseBuffer API in that it returns an error code representing the actual failure rather than just NULL.

Returns
An integer representing one of the following:
  • IXML_SUCCESS: The operation completed successfully.
  • IXML_INVALID_PARAMETER: The buffer is not a valid pointer.
  • IXML_INSUFFICIENT_MEMORY: Not enough free memory exists to complete this operation.
Parameters
[in]bufferThe buffer that contains the XML text to convert to a Document.
[out]docA point to store the Document if file correctly parses or NULL on an error.

References Parser_LoadDocument().

Referenced by addToAction(), gena_process_notification_event(), handle_invoke_action(), ixmlParseBuffer(), makeAction(), soap_device_callback(), UpnpAddToPropertySet(), UpnpCreatePropertySet(), UpnpDownloadXmlDoc(), UpnpSendActionAsync(), and UpnpSendActionExAsync().

◆ ixmlPrintDocument()

UPNP_EXPORT_SPEC char * ixmlPrintDocument ( IXML_Document doc)

Renders a Node and all sub-elements into an XML document representation.

The caller is required to free the DOMString returned from this function using ixmlFreeDOMString when it is no longer required.

Note that this function can be used for any Node-derived interface. The difference between ixmlPrintDocument and ixmlPrintNode is ixmlPrintDocument includes the XML prolog while ixmlPrintNode only produces XML elements. An XML document is not well formed unless it includes the prolog and at least one element.

This function introduces lots of white space to print the DOMString in readable format.

Returns
A DOMString with the XML document representation of the DOM tree or NULL on an error.
Parameters
[in]docThe document node to print.

References ixml_membuf_append_str(), ixml_membuf_init(), and ixmlPrintDomTree().

◆ ixmlPrintNode()

UPNP_EXPORT_SPEC char * ixmlPrintNode ( IXML_Node doc)

Renders a Node and all sub-elements into an XML text representation.

The caller is required to free the DOMString returned from this function using ixmlFreeDOMString when it is no longer required.

Note that this function can be used for any Node-derived interface. A similar ixmlPrintDocument function is defined to avoid casting when printing whole documents. This function introduces lots of white space to print the DOMString in readable format.

Returns
A DOMString with the XML text representation of the DOM tree or NULL on an error.
Parameters
[in]docThe root of the Node tree to render to XML text.

References ixml_membuf_init(), and ixmlPrintDomTree().

Referenced by genaInitNotifyExt(), genaNotifyAllExt(), handle_invoke_action(), SampleUtil_PrintEvent(), send_action_response(), UpnpDownloadXmlDoc(), UpnpSendActionAsync(), and UpnpSendActionExAsync().

◆ ixmlRelaxParser()

UPNP_EXPORT_SPEC void ixmlRelaxParser ( char  errorChar)

Makes the XML parser more tolerant to malformed text.

Parameters
[in]errorCharIf errorChar is 0 (default), the parser is strict about XML encoding : invalid UTF-8 sequences or "&" entities are rejected, and the parsing aborts.

If errorChar is not 0, the parser is relaxed: invalid UTF-8 characters are replaced by the errorChar, and invalid "&" entities are left untranslated. The parsing is then allowed to continue.

References Parser_setErrorChar().