1 // ANNA - Anna is Not Nothingness Anymore //
3 // (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo //
5 // See project site at http://redmine.teslayout.com/projects/anna-suite //
6 // See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
9 #ifndef anna_xml_DTD_hpp
10 #define anna_xml_DTD_hpp
16 #include <anna/core/mt/Mutex.hpp>
17 #include <anna/core/RuntimeException.hpp>
26 Clase base para manejar la DTD.
28 A continuacion podemos ver un estracto de la DTD que definirias las reglas
29 de formacion del documento XML mostrado como ejemplo en Parser.
32 <?xml version="1.0" encoding="UTF-8"?>
33 <!ELEMENT xvc (broadcast, ethernet, real, unreal)>
34 <!ATTLIST xvc HeartBeat CDATA "2000">
37 <!ELEMENT broadcast (INetAddress+)>
38 <!ELEMENT INetAddress EMPTY>
39 <!ATTLIST INetAddress Address CDATA #REQUIRED>
40 <!ATTLIST INetAddress Port CDATA #REQUIRED>
43 <!ELEMENT ethernet (Input, Output)>
44 <!ATTLIST ethernet Mode (raw|ethernet) #REQUIRED>
45 <!ATTLIST ethernet VirtualAddress CDATA #REQUIRED>
46 <!ELEMENT Input EMPTY>
47 <!ATTLIST Input Device CDATA #REQUIRED>
48 <!ATTLIST Input PhysicalAccessPoint CDATA #REQUIRED>
49 <!ATTLIST Input MAC CDATA #REQUIRED>
50 <!ELEMENT Output EMPTY>
51 <!ATTLIST Output Device CDATA #REQUIRED>
52 <!ATTLIST Output PhysicalAccessPoint CDATA #REQUIRED>
53 <!ATTLIST Output MAC CDATA #REQUIRED>
64 Inicializa la DTD con un nuevo contenido.
65 \param content Contenido de la DTD, depedendiendo del tipo de DTD hara referencia
66 a un nombre de archivo, una URI o a una cadena.
68 void initialize(const char* content) throw(RuntimeException);
74 DTD() : a_handle(NULL) {;}
80 void validate(_xmlValidCtxt* context, _xmlDoc* document) const throw(RuntimeException);
81 virtual _xmlDtd* parse(const char* content) const throw(RuntimeException) = 0;