mbxmlutils 1.3.0 Multi-Body XML Utils

Public Member Functions | Static Public Attributes | Private Attributes | List of all members
MBXMLUtils::DOMElementWrapper< DOMElementType > Class Template Reference

Helper class for extending DOMElement (use the function E(...)). More...

`#include <dom.h>`

## Public Member Functions

| DOMElementWrapper (DOMElementType *me_)
| Wrap DOMElement to my special element.
FQN | getTagName () const
| Get full qualified tag name.
const xercesc::DOMElement * | getFirstElementChildNamed (const FQN &name) const
| Get first child element of the specified full qualified name.
xercesc::DOMElement * | getFirstElementChildNamed (const FQN &name)
| Get first child element of the specified full qualified name.
const xercesc::DOMElement * | getNextElementSiblingNamed (const FQN &name) const
| Get next sibling element of the specified full qualified name.
xercesc::DOMElement * | getNextElementSiblingNamed (const FQN &name)
| Get next sibling element of the specified full qualified name.
const xercesc::DOMProcessingInstruction * | getFirstProcessingInstructionChildNamed (const std::string &target) const
| Get first child processing instruction of the specified target.
xercesc::DOMProcessingInstruction * | getFirstProcessingInstructionChildNamed (const std::string &target)
| Get first child processing instruction of the specified target.
void | addProcessingInstructionChildNamed (const std::string &target, const std::string &data)
| Add a processing instruction child of the specified target.
std::string | getEmbedData (const std::string &name) const
| Get the embed data named name from the current element. Returns "" if not such data exists.
void | addEmbedData (const std::string &name, const std::string &data)
const xercesc::DOMComment * | getFirstCommentChild () const
| Get first child comment.
xercesc::DOMComment * | getFirstCommentChild ()
| Get first child comment.
const xercesc::DOMText * | getFirstTextChild () const
xercesc::DOMText * | getFirstTextChild ()
template<class T >
T | getText (int r=0, int c=0) const
| Get the child text as type T.
template<class T >
void | addElementText (const FQN &name, const T &value)
bool | isDerivedFrom (const FQN &baseTypeName) const
boost::filesystem::path | getOriginalFilename (bool skipThis=false, const xercesc::DOMElement *&found=DOMElementWrapper< DOMElementType >::dummyArg) const
void | setOriginalFilename (boost::filesystem::path orgFileName=boost::filesystem::path())
boost::filesystem::path | convertPath (const boost::filesystem::path &relPath) const
int | getLineNumber () const
int | getEmbedCountNumber () const
void | setEmbedCountNumber (int embedCount)
int | getEmbedXPathCount () const
void | setEmbedXPathCount (int xPathCount)
std::string | getRootXPathExpression () const
std::vector< int > | getElementLocation () const
int | getOriginalElementLineNumber () const
| Get the line number of the original element.
void | setOriginalElementLineNumber (int lineNr)
| Set the line number of the original element.
std::string | getAttribute (const FQN &name) const
| Get attribute named name.
FQN | getAttributeQName (const FQN &name) const
| Get attribute named name of type QName.
const xercesc::DOMAttr * | getAttributeNode (const FQN &name) const
| Get attribute node named name.
xercesc::DOMAttr * | getAttributeNode (const FQN &name)
| Get attribute node named name.
template<class T >
void | setAttribute (const FQN &name, const T &value)
| Set attribute.
void | setAttribute (const FQN &name, const FQN &value)
| Set attribute of type FQN.
bool | hasAttribute (const FQN &name) const
| check if this element has a attibute named name.
void | removeAttribute (const FQN &name)
| remove from this element the attibute named name.
std::conditional< std::is_same< DOMElementType, const xercesc::DOMElement >::value, const DOMElementWrapper *, DOMElementWrapper * >::type | operator-> ()
| Treat this object as a pointer (like DOMElement*)
template<>
const DOMElement * | dummyArg
template<>
const DOMElement * | dummyArg
template<>
const xercesc::DOMElement * | dummyArg
template<>
const xercesc::DOMElement * | dummyArg

## Static Public Attributes

static const xercesc::DOMElement * | dummyArg

## Private Attributes

DOMElementType * | me

## Detailed Description

### template<typename DOMElementType>
class MBXMLUtils::DOMElementWrapper< DOMElementType >

Helper class for extending DOMElement (use the function E(...)).

## Member Function Documentation

## ◆ addEmbedData()

template<typename DOMElementType >

void MBXMLUtils::DOMElementWrapper< DOMElementType >::addEmbedData | ( | const std::string & | name,
|  | const std::string & | data
| ) |  |

Add a embed data named name to the current element holding data. If the element has already such a name embedData it is overwritten with data

## ◆ convertPath()

template<typename DOMElementType>

template path MBXMLUtils::DOMElementWrapper< DOMElementType >::convertPath | ( | const boost::filesystem::path & | relPath | ) | const

Convert the relative path relPath to an aboslute path by prefixing it with the path of this document. If relPath is a absolute path it is returned as it. (see also getOriginalFilename)

## ◆ getElementLocation()

template<typename DOMElementType >

template vector< int > MBXMLUtils::DOMElementWrapper< DOMElementType >::getElementLocation | ( |  | ) | const

Get a (fast) unique location identified of this element relative to the DOMDocument. Use DOMDocumentWrapper::locateElement(...) to get the same element in another document.

## ◆ getEmbedCountNumber()

template<typename DOMElementType >

template int MBXMLUtils::DOMElementWrapper< DOMElementType >::getEmbedCountNumber | ( |  | ) | const

Get the embed count. If a EmbedCount processing instruction child node exist this number is returned. If not 0 is returned.

## ◆ getEmbedXPathCount()

template<typename DOMElementType >

template int MBXMLUtils::DOMElementWrapper< DOMElementType >::getEmbedXPathCount | ( |  | ) | const

Get the embed XPath count. If a EmbedXPathCount processing instruction child node exist this number is returned. If not 0 is returned.

## ◆ getFirstTextChild() [1/2]

template<typename DOMElementType >

template const DOMText * MBXMLUtils::DOMElementWrapper< DOMElementType >::getFirstTextChild | ( |  | ) | const

Get first none empty child text or CDATA node. A empty text node (only spaces, tabs and new-lines) is interpreted as a formatting node not a content node. If, however, only empty text or CDATA nodes exist than the last empty text or CDATA node is returned. If no text or CDATA node or more then one none empty text or CDATA node exists nullptr is returned.

## ◆ getFirstTextChild() [2/2]

template<typename DOMElementType >

DOMText * MBXMLUtils::DOMElementWrapper< DOMElementType >::getFirstTextChild | ( |  | ) |

Get first none empty child text or CDATA node. A empty text node (only spaces, tabs and new-lines) is interpreted as a formatting node not a content node. If, however, only empty text or CDATA nodes exist than the last empty text or CDATA node is returned. If no text or CDATA node or more then one none empty text or CDATA node exists nullptr is returned.

## ◆ getLineNumber()

template<typename DOMElementType >

template int MBXMLUtils::DOMElementWrapper< DOMElementType >::getLineNumber | ( |  | ) | const

Get the line number. If a LineNr processing instruction child node exist this number is returned. If not the XML line number is returned.

## ◆ getOriginalFilename()

template<typename DOMElementType>

template path MBXMLUtils::DOMElementWrapper< DOMElementType >::getOriginalFilename | ( | bool | skipThis = `false`,
|  | const xercesc::DOMElement *& | found = `DOMElementWrapper< DOMElementType >::dummyArg`
| ) |  | const

Get the base URI. Returns the value of the first OriginalFileName PI define by a parent element or the document uri if no such element is found. If skipThis is false the OriginalFileName PI of this element in honored else this element is skipped and only parent elements are honored. If a OriginalFileName PI was found 'found' is set to this element else 'found' is NULL.

## ◆ getRootXPathExpression()

template<typename DOMElementType >

template string MBXMLUtils::DOMElementWrapper< DOMElementType >::getRootXPathExpression | ( |  | ) | const

Get the XPath from the root element to this element. The root element may not be the document itself if embedding has occurred. Embedding is preserved by this XPath. The output is /<root-element-name>[1]/<element-name>[<element-nr>]/<element-name>[<element-nr>] ...

## ◆ isDerivedFrom()

template<typename DOMElementType >

template bool MBXMLUtils::DOMElementWrapper< DOMElementType >::isDerivedFrom | ( | const FQN & | baseTypeName | ) | const

Check if the element is of type base Note DOMTypeInfo::isDerivedFrom is not implemented in xerces-c hence we define our one methode here.

## ◆ setEmbedCountNumber()

template<typename DOMElementType >

void MBXMLUtils::DOMElementWrapper< DOMElementType >::setEmbedCountNumber | ( | int | embedCount | ) |

Set the embed count. Is store as a processing instruction child node.

## ◆ setEmbedXPathCount()

template<typename DOMElementType >

void MBXMLUtils::DOMElementWrapper< DOMElementType >::setEmbedXPathCount | ( | int | xPathCount | ) |

Set the embed XPath count. Is store as a processing instruction child node.

## ◆ setOriginalFilename()

template<typename DOMElementType>

void MBXMLUtils::DOMElementWrapper< DOMElementType >::setOriginalFilename | ( | boost::filesystem::path | orgFileName = `boost::filesystem::path()` | ) |

Set original filename. Calls getOriginalFilename on itself and set this value to itself. This function should/must be called when a element is removed from a tree but still used after that. If orgFileName is given then its different: its just the given filename set as OriginalFileName.

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

- /mbsim-env/openmbv/mbxmlutils/mbxmlutilshelper/dom.h
- /mbsim-env/openmbv/mbxmlutils/mbxmlutilshelper/dom.cc