ANNA Suite  2020b
Multipurpose development suite for Telco applications
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
anna::xml::Parser Class Reference

#include <Parser.hpp>

Inheritance diagram for anna::xml::Parser:
Inheritance graph
[legend]
Collaboration diagram for anna::xml::Parser:
Collaboration graph
[legend]

Public Member Functions

 Parser ()
 
virtual ~Parser ()
 
const NodegetRoot () const
 
const Nodeapply (const Document &document) noexcept(false)
 
const Nodeapply (const Document &document, const DTD &dtd) noexcept(false)
 
- Public Member Functions inherited from anna::Mutex
 Mutex (const Mode::_v mode=Mode::Recursive)
 
virtual ~Mutex ()
 
virtual void lock () noexcept(false)
 
virtual void unlock ()
 
bool trylock () noexcept(false)
 
 operator const pthread_mutex_t * () const
 

Protected Member Functions

virtual void reset ()
 
void setupEncoding (_xmlDoc *document)
 
const char * decode (const unsigned char *source)
 
void attributes (Node *node, _xmlAttr *attribute) noexcept(false)
 
void children (Node *node, _xmlNode *xmlNode) noexcept(false)
 
- Protected Member Functions inherited from anna::Safe
 Safe ()
 

Protected Attributes

Nodea_root
 

Detailed Description

Analizador de documentos XML.

Analiza la expresion contenida en un documento XML, opcionalmente puede validar la estructura mediante una DTD suministrada a tal efecto, y devuelve un arbol de nodos que resulta muy facil de usar.

Ejemplo de documento XML:

<xvc HeartBeat="20000">
<broadcast>
<INetAddress Address="204.152.65.15" Port="2000"/>
<INetAddress Address="204.152.65.47" Port="2002"/>
</broadcast>
<ethernet Mode="raw" VirtualAddress="1.1.1.100">
<Input Device="/dev/qfe" PhysicalAccessPoint="2" MAC="8:0:20:9e:ee:21"/>
<Output Device="/dev/qfe" PhysicalAccessPoint="2" MAC="8:0:20:9e:ee:c9"/>
</ethernet>
</xvc>

Donde los nodos (Ver Node) broadcast y ethernet son hijos del nodo xvc. De la misma forma los nodos Input y Output son hijos de ethernet.

Cada nodo XML puede tener una serie indeterminada de atributos (Ver Attribute) que completan su significado. Por ejemplo Device, PhysicalAccessPoint y MAC son atributos de los nodos Input y Output.

Constructor & Destructor Documentation

◆ Parser()

anna::xml::Parser::Parser ( )

Constructor.

◆ ~Parser()

virtual anna::xml::Parser::~Parser ( )
virtual

Destructor.

Member Function Documentation

◆ apply() [1/2]

const Node* anna::xml::Parser::apply ( const Document document)
noexcept

Analiza el documento XML recibido como parametro.

Parameters
documentDocumento XML que deseamos analizar.
Returns
El nodo raiz del arbol XML correspondiente al documento analizado.
Warning
  • La instancia del documento debe estar correctamente inicializada.
  • El nodo devuelto no puede ser usado despues del invocar a destructor de este Parser.
See also
Document::initialize

◆ apply() [2/2]

const Node* anna::xml::Parser::apply ( const Document document,
const DTD dtd 
)
noexcept

Analiza el archivo XML recibido como parametro, y verifica que cumpla las reglas establecidas por la DTD.

Parameters
documentDocumento XML que deseamos analizar.
dtdDTD que debe cumplir el documento XML.
Returns
El nodo raiz del arbol XML correspondiente al resultado del analisis.
Warning
  • La instancia de la DTD y el documento deben estar correctamente inicializadas.
  • El nodo devuelto no puede ser usado despues del invocar a destructor de este Parser.
See also
DTD::initialize
Document::initialize

◆ attributes()

void anna::xml::Parser::attributes ( Node node,
_xmlAttr *  attribute 
)
protectednoexcept
Warning
Exclusivamente uso interno.

◆ children()

void anna::xml::Parser::children ( Node node,
_xmlNode *  xmlNode 
)
protectednoexcept
Warning
Exclusivamente uso interno.

◆ decode()

const char* anna::xml::Parser::decode ( const unsigned char *  source)
protected

Si fuera necesario traduce el texto contenido por el parámetro recibido al conjunto de caracteres indicado por el documento XML que estamos tratando.

Parameters
sourceTexto expresado en el conjunto de caracteres particular.
Returns
Una cadena expresada en UTF-8.

◆ getRoot()

const Node* anna::xml::Parser::getRoot ( ) const
inline

Devuelve el nodo raiz de la expresion XML analizada. Puede ser NULL.

Returns
El nodo raiz de la expresion XML analizada. Puede ser NULL.
Warning
  • El resultado de este metodo solo sera valido despues de invocar a alguno de los metodo apply.
  • El nodo devuelto no puede ser usado despues del invocar a destructor de este Parser.
84 { return a_root; }
Node * a_root
Definition: Parser.hpp:117
Here is the call graph for this function:

◆ reset()

virtual void anna::xml::Parser::reset ( )
protectedvirtual

Inicializa el contenido del nodo asociado al ultimo Parser::apply.

Warning
Se invoca automaticamente desde el numero de ANNA.xml

◆ setupEncoding()

void anna::xml::Parser::setupEncoding ( _xmlDoc *  document)
protected

Comprueba si se requieren operaciones de traducción del conjunto de caracteres.

Member Data Documentation

◆ a_root

Node* anna::xml::Parser::a_root
protected

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