class XmlElement

Xml Element. More...

Full nameTelEngine::XmlElement
Definition#include <libs/yxml/yatexml.h>
InheritsTelEngine::XmlChild [public ], TelEngine::XmlParent [public ]
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

Public Methods

Public Static Methods

Public Members


Detailed Description

Xml Element from a Xml document

 XmlElement (const NamedList& element, bool empty, XmlParent* parent = 0)

XmlElement

Constructor

Parameters:
elementThe NamedList name represent the element name and the param the attributes
emptyFalse if has children
parentThe parent of this element

 XmlElement (const char* name, bool complete = true)

XmlElement

Constructor. Creates a new complete and empty element

Parameters:
nameThe name of the element
completeFalse to build an incomplete element

 XmlElement (const XmlElement& orig)

XmlElement

Copy constructor

Parameters:
origOriginal XmlElement

 ~XmlElement ()

~XmlElement

[virtual]

Destructor

inline const char*  tag ()

tag

[const]

Retrieve the element's tag

Returns: The element's tag

inline bool  isDefaultNs ()

isDefaultNs

[const]

Check if this element must be processed in the default namespace (its tag is not prefixed)

Returns: True if this element must be processed in the default namespace

inline const String&  unprefixedTag ()

unprefixedTag

[const]

Retrieve the element's tag unprefixed (namespace prefix removed)

Returns: The element's tag unprefixed

inline const String&  getTag ()

getTag

[const]

Retrieve the element's tag (without prefix)

Returns: Element tag

bool  getTag (const String*& tag, const String*& ns)

getTag

[const]

Retrieve the element's tag (without prefix) and namespace

Parameters:
tagPointer to element tag
nsPointer to element's namespace (may be 0 for unprefixed tags)

Returns: True if a namespace was found for the element tag or the tag is not prefixed

XmlElement*  xmlElement ()

xmlElement

[virtual]

Get an XmlElement from this XmlChild

Returns: This object

Reimplemented from XmlChild.

XmlElement*  element ()

element

[virtual]

Get an XmlElement from this XmlParent

Returns: This object

Reimplemented from XmlParent.

XmlSaxParser::Error  addChild (XmlChild* child)

addChild

[virtual]

Append a new child of this element

Parameters:
childThe child to append

Reimplemented from XmlParent.

XmlChild*  removeChild (XmlChild* child, bool delObj = true)

removeChild

[virtual]

Remove a child

Parameters:
childThe child to remove
delObjTrue to delete the object

Returns: XmlChild pointer if found and not deleted

Reimplemented from XmlParent.

void  setCompleted ()

setCompleted

[virtual]

Notification for this element that is complete

inline bool  completed ()

completed

[const]

Returns: True if this element is completed

inline bool  empty ()

empty

[const]

Returns: True if this element is empty

inline XmlElement*  parent ()

parent

[const]

Retrieve an XmlElement parent of this one

Returns: XmlElement pointer or 0

XmlParent*  getParent ()

getParent

[virtual]

Returns: The parent of this element

void  setParent (XmlParent* parent)

setParent

[virtual]

Set this element's parent. Update inherited namespaces

Returns: The parent of this element

Reimplemented from XmlChild.

const String&  getName ()

getName

[const virtual]

Returns: The name of this element

const NamedList&  getElement ()

getElement

[const virtual]

Returns: The held element

inline const ObjList&  getChildren ()

getChildren

[const]

Helper method to obtain the children list

Returns: The children list

Reimplemented from XmlParent.

inline void  clearChildren ()

clearChildren

Helper method to clear the children list

Reimplemented from XmlParent.

inline const NamedList*  inheritedNs ()

inheritedNs

[const]

Retrieve the list of inherited namespaces

Returns: The list of inherited namespaces (or 0)

void  setInheritedNs (const XmlElement* xml = 0, bool inherit = true)

setInheritedNs

Set inherited namespaces from a given element. Reset them anyway

Parameters:
xmlThe source element used to set inherited namespaces
inheritCopy element's inherited namespaces if it doesn't have a parent

void  addInheritedNs (const NamedList& list)

addInheritedNs

Add inherited namespaces from a list

Parameters:
listThe list of namespaces

inline XmlElement*  pop ()

pop

Extract the first child element

Returns: XmlElement pointer or 0

const String&  toString ()

toString

[const virtual]

Retrieve the element tag

Returns: The element tag

Reimplemented from GenObject.

void  toString (String& dump, bool escape = true, const String& indent = String::empty(), const String& origIndent = String::empty(), bool completeOnly = true, const String* auth = 0)

toString

[const]

Build (append to) a String from this XmlElement

Parameters:
dumpThe destination string
escapeTrue if the attributes values need to be escaped
indentSpaces for output
origIndentOriginal indent
completeOnlyTrue to build only if complete
authOptional list of tag and attribute names to be replaced with '***'. This parameter can be used when the result will be printed to output to avoid printing authentication data to output. The array must end with an empty string

Reimplemented from GenObject.

inline XmlElement*  findFirstChild (const String* name = 0, const String* ns = 0)

findFirstChild

[const]

Find the first child of this XmlElement

Parameters:
nameOptional name of the child
nsOptional child namespace

Returns: The first child element meeting the requested conditions

inline XmlElement*  findNextChild (XmlElement* prev = 0, const String* name = 0, const String* ns = 0)

findNextChild

[const]

Finds next child of this XmlElement

Parameters:
prevPrevious child
nameOptional name of the child
nsOptional child namespace

Returns: The next found child if prev exists else the first

const String&  getText ()

getText

Returns: The first XmlText found in this XmlElement children

void  addText (const char* text)

addText

Add a text child

Parameters:
textNon empty text to add

inline const NamedList&  attributes ()

attributes

[const]

Retrieve the list of attributes

Returns: Element attributes

unsigned int  copyAttributes (NamedList& list, const String& prefix)

copyAttributes

[const]

Copy element attributes to a list of parameters

Parameters:
listDestination list
prefixPrefix to be added to each attribute name

Returns: The number of attributes added to the destination list

inline void  setAttribute (const String& name, const char* value)

setAttribute

Add or replace an attribute

Parameters:
nameAttribute name
valueAttribute value

inline void  setAttributeValid (const String& name, const char* value)

setAttributeValid

Add or replace an attribute. Clears it if value is empty

Parameters:
nameAttribute name
valueAttribute value

inline const char*  attribute (const String& name)

attribute

[const]

Obtain an attribute value for the given name

Parameters:
nameThe name of the attribute

Returns: Attribute value

inline String*  getAttribute (const String& name)

getAttribute

[const]

Obtain an attribute value for the given name

Parameters:
nameThe name of the attribute

Returns: String pointer or 0 if not found

inline bool  hasAttribute (const String& name, const String& value)

hasAttribute

[const]

Check if the element has an attribute with a requested value

Parameters:
nameThe name of the attribute
valueThe value to check

Returns: True if the element has an attribute with the requested value

inline void  removeAttribute (const String& name)

removeAttribute

Remove an attribute

Parameters:
nameAttribute name

inline String*  xmlns ()

xmlns

[const]

Retrieve the element's namespace

Returns: Element's namespace or 0 if not found

String*  xmlnsAttribute (const String& name)

xmlnsAttribute

[const]

Retrieve a namespace attribute. Search in parent or inherited for it

Returns: String pointer or 0 if not found

inline bool  hasXmlns (const String& ns)

hasXmlns

[const]

Verify if this element belongs to the given namespace

Parameters:
nsThe namespace to compare with

Returns: True if this element belongs to the given namespace

bool  setXmlns (const String& name = String::empty(), bool addAttr = false, const String& value = String::empty())

setXmlns

Set the element's namespace

Parameters:
nameThe namespace name (element prefix). Can be the default namespace attribute name (empty means the default one)
addAttrTrue to add a non empty, not repeating, namespace attribute to the list
valueNamespace value (ignored if addAttr is false)

Returns: True on success, false if another namespace exists with the same value

inline bool  isXmlns (const String& str)

isXmlns

[static]

Check if a string represents a namespace attribute name

Parameters:
strThe string to check

Returns: True if the given string is the default namespace attribute name or a namespace attribute name prefix

XmlElement*  param2xml (NamedString* param, const String& tag, bool copyXml = false)

param2xml

[static]

Build an XML element from a list parameter. Parameter name will be set in a 'name' attribute. Parameter value will be set in a 'value' attribute Handle NamedPointer parameters carrying DataBlock, NamedList and XmlElement objects (a 'type' attribute is added to the created element). DataBlock: Encode using BASE64 and add it as element text NamedList: The name is added as element text. The function is called again for each list parameter XmlElement: Added as child to newly created element

Parameters:
paramThe parameter to convert
tagXmlElement tag
copyXmlTrue to copy XmlElement objects instead of just remove them from the parameter

Returns: XmlElement pointer or 0 on failure

NamedString*  xml2param (XmlElement* xml, const String* tag, bool copyXml = false)

xml2param

[static]

Build a list parameter from xml element See param2xml for more info

Parameters:
xmlThe XML element to process
tagChild XmlElement tag to handle
copyXmlTrue to copy XmlElement objects instead of just remove them from parent

Returns: NamedString pointer or 0 on failure

void  xml2param (NamedList& list, XmlElement* parent, const String* tag, bool copyXml = false)

xml2param

[static]

Build and add list parameters from XML element children. Each parameter will be taken from 'name' and 'value' attributes. See param2xml for more info

Parameters:
listDestination list
parentThe XML element to process
tagChild XmlElement tag to handle
copyXmlTrue to copy XmlElement objects instead of just remove them from parent

static const String s_ns

s_ns

static const String s_nsPrefix

s_nsPrefix


Generated by: paulc on bussard on Fri Apr 1 18:17:10 2011, using kdoc 2.0a54.