Yate
|
Xml Element. More...
#include <yatexml.h>
Public Member Functions | |
XmlElement (const NamedList &element, bool empty, XmlParent *parent=0) | |
XmlElement (const char *name, bool complete=true) | |
XmlElement (const char *name, const char *value, bool complete=true) | |
XmlElement (const XmlElement &orig) | |
virtual | ~XmlElement () |
const char * | tag () const |
bool | isDefaultNs () const |
const String & | unprefixedTag () const |
void | setUnprefixedTag (const String &s) |
const String & | getTag () const |
bool | getTag (const String *&tag, const String *&ns) const |
virtual XmlElement * | xmlElement () |
virtual XmlElement * | element () |
virtual XmlSaxParser::Error | addChild (XmlChild *child) |
virtual XmlChild * | removeChild (XmlChild *child, bool delObj=true) |
virtual void | setCompleted () |
bool | completed () const |
bool | empty () const |
XmlElement * | parent () const |
virtual XmlParent * | getParent () |
virtual void | setParent (XmlParent *parent) |
virtual const String & | getName () const |
virtual const NamedList & | getElement () const |
const ObjList & | getChildren () const |
void | clearChildren () |
const NamedList * | inheritedNs () const |
void | setInheritedNs (const XmlElement *xml=0, bool inherit=true) |
void | addInheritedNs (const NamedList &list) |
XmlElement * | pop () |
virtual const String & | toString () const |
void | toString (String &dump, bool escape=true, const String &indent=String::empty(), const String &origIndent=String::empty(), bool completeOnly=true, const String *auth=0) const |
XmlElement * | findFirstChild (const String *name=0, const String *ns=0, bool noPrefix=true) const |
XmlElement * | findFirstChild (const String &name, const String *ns=0, bool noPrefix=true) const |
XmlElement * | findNextChild (const XmlElement *prev=0, const String *name=0, const String *ns=0, bool noPrefix=true) const |
XmlElement * | findNextChild (const String &name, const XmlElement *prev=0, const String *ns=0, bool noPrefix=true) const |
const String * | childText (const String &name, const String *ns=0, bool noPrefix=true) const |
XmlChild * | getFirstChild () |
const String & | getText () const |
XmlText * | setText (const char *text) |
void | addText (const char *text) |
const NamedList & | attributes () const |
unsigned int | copyAttributes (NamedList &list, const String &prefix) const |
void | setAttributes (NamedList &list, const String &prefix, bool skipPrefix=true) |
void | setAttribute (const String &name, const char *value) |
void | setAttributeValid (const String &name, const char *value) |
const char * | attribute (const String &name) const |
String * | getAttribute (const String &name) const |
bool | hasAttribute (const String &name, const String &value) const |
void | removeAttribute (const String &name) |
String * | xmlns () const |
String * | xmlnsAttribute (const String &name) const |
bool | hasXmlns (const String &ns) const |
bool | setXmlns (const String &name=String::empty(), bool addAttr=false, const String &value=String::empty()) |
Public Member Functions inherited from XmlChild | |
XmlChild () | |
virtual XmlComment * | xmlComment () |
virtual XmlCData * | xmlCData () |
virtual XmlText * | xmlText () |
virtual XmlDeclaration * | xmlDeclaration () |
virtual XmlDoctype * | xmlDoctype () |
Public Member Functions inherited from GenObject | |
GenObject () | |
virtual | ~GenObject () |
virtual bool | alive () const |
virtual void | destruct () |
virtual void * | getObject (const String &name) const |
NamedCounter * | getObjCounter () const |
NamedCounter * | setObjCounter (NamedCounter *counter) |
Public Member Functions inherited from XmlParent | |
XmlParent () | |
virtual | ~XmlParent () |
virtual XmlDocument * | document () |
virtual XmlFragment * | fragment () |
XmlChild * | addChildSafe (XmlChild *child) |
virtual void | reset () |
bool | hasChildren () const |
Static Public Member Functions | |
static bool | isXmlns (const String &str) |
static XmlElement * | param2xml (NamedString *param, const String &tag, bool copyXml=false) |
static NamedString * | xml2param (XmlElement *xml, const String *tag, bool copyXml=false) |
static void | xml2param (NamedList &list, XmlElement *parent, const String *tag, bool copyXml=false) |
Static Public Member Functions inherited from GenObject | |
static void * | getObject (const String &name, const GenObject *obj) |
static bool | getObjCounting () |
static void | setObjCounting (bool enable) |
static NamedCounter * | getObjCounter (const String &name, bool create=true) |
static ObjList & | getObjCounters () |
Static Public Attributes | |
static const String | s_ns |
static const String | s_nsPrefix |
Xml Element.
Xml Element from a Xml document
XmlElement | ( | const NamedList & | element, |
bool | empty, | ||
XmlParent * | parent = 0 |
||
) |
Constructor
element | The NamedList name represent the element name and the param the attributes |
empty | False if has children |
parent | The parent of this element |
XmlElement | ( | const char * | name, |
bool | complete = true |
||
) |
Constructor. Creates a new complete and empty element
name | The name of the element |
complete | False to build an incomplete element |
XmlElement | ( | const char * | name, |
const char * | value, | ||
bool | complete = true |
||
) |
Constructor. Create a new element with a text child
name | The name of the element |
value | Element text child value |
complete | False to build an incomplete element |
XmlElement | ( | const XmlElement & | orig | ) |
Copy constructor
orig | Original XmlElement |
|
virtual |
Destructor
|
virtual |
void addInheritedNs | ( | const NamedList & | list | ) |
Add inherited namespaces from a list
list | The list of namespaces |
void addText | ( | const char * | text | ) |
Add a text child
text | Non empty text to add |
|
inline |
Obtain an attribute value for the given name
name | The name of the attribute |
References NamedList::getValue().
|
inline |
Retrieve the list of attributes
|
inline |
Retrieve a child's text
name | Name (tag) of the child |
ns | Optional child namespace |
noPrefix | True to compare the tag without namespace prefix, false to include namespace prefix when comparing the given tag. This parameter is ignored ns is not 0 |
References XmlElement::findFirstChild(), and XmlElement::getText().
|
inlinevirtual |
Helper method to clear the children list
Reimplemented from XmlParent.
References XmlFragment::clearChildren().
|
inline |
Referenced by XmlElement::pop().
Copy element attributes to a list of parameters
list | Destination list |
prefix | Prefix to be added to each attribute name |
|
inlinevirtual |
|
inline |
|
inline |
Find the first XmlElement child of this XmlElement
name | Optional name of the child |
ns | Optional child namespace |
noPrefix | True to compare the tag without namespace prefix, false to include namespace prefix when comparing the given tag. This parameter is ignored if name is 0 or ns is not 0 |
References XmlFragment::findElement(), and XmlElement::getChildren().
Referenced by XmlElement::childText(), XmlElement::findNextChild(), and XmlElement::pop().
|
inline |
Find the first XmlElement child of this XmlElement
name | Name of the child |
ns | Optional child namespace |
noPrefix | True to compare the tag without namespace prefix, false to include namespace prefix when comparing the given tag. This parameter is ignored if name is 0 or ns is not 0 |
References XmlFragment::findElement(), and XmlElement::getChildren().
|
inline |
Finds next XmlElement child of this XmlElement
prev | Previous child |
name | Optional name of the child |
ns | Optional child namespace |
noPrefix | True to compare the tag without namespace prefix, false to include namespace prefix when comparing the given tag. This parameter is ignored if name is 0 or ns is not 0 |
References ObjList::find(), XmlFragment::findElement(), XmlElement::findFirstChild(), XmlElement::getChildren(), and ObjList::skipNext().
Referenced by XmlElement::findNextChild().
|
inline |
Finds next XmlElement child of this XmlElement
name | Name of the child |
prev | Previous child |
ns | Optional child namespace |
noPrefix | True to compare the tag without namespace prefix, false to include namespace prefix when comparing the given tag. This parameter is ignored if name is 0 or ns is not 0 |
References XmlElement::findNextChild().
Obtain an attribute value for the given name
name | The name of the attribute |
References NamedList::getParam().
Referenced by XmlElement::hasAttribute().
|
inlinevirtual |
Helper method to obtain the children list
Reimplemented from XmlParent.
References XmlFragment::getChildren().
Referenced by XmlElement::findFirstChild(), and XmlElement::findNextChild().
|
inlinevirtual |
XmlChild* getFirstChild | ( | ) |
Get first XmlChild of this XmlElement
|
inlinevirtual |
|
inlinevirtual |
|
inline |
Retrieve the element's tag (without prefix) and namespace
tag | Pointer to element tag |
ns | Pointer to element's namespace (may be 0 for unprefixed tags) |
const String& getText | ( | ) | const |
Referenced by XmlElement::childText().
Check if the element has an attribute with a requested value
name | The name of the attribute |
value | The value to check |
References XmlElement::getAttribute().
|
inline |
Verify if this element belongs to the given namespace
ns | The namespace to compare with |
References XmlElement::xmlns().
|
inline |
Retrieve the list of inherited namespaces
|
inline |
Check if this element must be processed in the default namespace (its tag is not prefixed)
|
inlinestatic |
Check if a string represents a namespace attribute name
str | The string to check |
References XmlElement::s_ns, XmlElement::s_nsPrefix, and String::startsWith().
|
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
param | The parameter to convert |
tag | XmlElement tag |
copyXml | True to copy XmlElement objects instead of just remove them from the parameter |
|
inline |
Retrieve an XmlElement parent of this one
References XmlParent::element().
|
inline |
Extract the first child element
References XmlElement::completed(), XmlElement::findFirstChild(), and XmlFragment::removeChild().
|
inline |
Remove an attribute
name | Attribute name |
References NamedList::clearParam().
Referenced by XmlElement::setAttributeValid().
|
inline |
Add or replace an attribute
name | Attribute name |
value | Attribute value |
References NamedList::setParam().
Set element attributes from a list of parameters
list | List of attributes |
prefix | Add only the attributes that start with this prefix. = If NULL, it will set as attributes the whole parameter list |
skipPrefix | Skip over the prefix when building attribute name |
|
inline |
Add or replace an attribute. Clears it if value is empty
name | Attribute name |
value | Attribute value |
References TelEngine::null(), XmlElement::removeAttribute(), and NamedList::setParam().
|
inlinevirtual |
Notification for this element that is complete
void setInheritedNs | ( | const XmlElement * | xml = 0 , |
bool | inherit = true |
||
) |
Set inherited namespaces from a given element. Reset them anyway
xml | The source element used to set inherited namespaces |
inherit | Copy element's inherited namespaces if it doesn't have a parent |
|
virtual |
Set this element's parent. Update inherited namespaces
Reimplemented from XmlChild.
XmlText* setText | ( | const char * | text | ) |
Set text for first XmlText element found in this XmlElement's children If child text element does not exist, create it and append it to the element's children.
text | Text to set to the XmlElement. If null, the first found XmlText element will be deleted. |
void setUnprefixedTag | ( | const String & | s | ) |
Set element's unprefixed tag, don't change namespace prefix
s | New element's tag |
bool setXmlns | ( | const String & | name = String::empty() , |
bool | addAttr = false , |
||
const String & | value = String::empty() |
||
) |
Set the element's namespace
name | The namespace name (element prefix). Can be the default namespace attribute name (empty means the default one) |
addAttr | True to add a non empty, not repeating, namespace attribute to the list |
value | Namespace value (ignored if addAttr is false) |
|
inline |
Retrieve the element's tag
|
inlinevirtual |
void toString | ( | String & | dump, |
bool | escape = true , |
||
const String & | indent = String::empty() , |
||
const String & | origIndent = String::empty() , |
||
bool | completeOnly = true , |
||
const String * | auth = 0 |
||
) | const |
Build (append to) a String from this XmlElement
dump | The destination string |
escape | True if the attributes values need to be escaped |
indent | Spaces for output |
origIndent | Original indent |
completeOnly | True to build only if complete |
auth | Optional 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 |
|
inline |
Retrieve the element's tag unprefixed (namespace prefix removed)
References NamedString::name().
|
static |
Build a list parameter from xml element See param2xml for more info
xml | The XML element to process |
tag | Child XmlElement tag to handle |
copyXml | True to copy XmlElement objects instead of just remove them from parent |
|
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
list | Destination list |
parent | The XML element to process |
tag | Child XmlElement tag to handle |
copyXml | True to copy XmlElement objects instead of just remove them from parent |
|
inlinevirtual |
|
inline |
Retrieve the element's namespace
References XmlElement::s_ns, XmlElement::s_nsPrefix, and XmlElement::xmlnsAttribute().
Referenced by XmlElement::hasXmlns().
Retrieve a namespace attribute. Search in parent or inherited for it
Referenced by XmlElement::xmlns().
|
static |
Default namespace attribute name
Referenced by XmlElement::isXmlns(), and XmlElement::xmlns().
|
static |
Namespace attribute name perfix
Referenced by XmlElement::isXmlns(), and XmlElement::xmlns().