summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsvntobi <svntobi@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f>2007-08-19 13:21:59 +0000
committersvntobi <svntobi@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f>2007-08-19 13:21:59 +0000
commitd1c550f6f31628b3fa08721d8f129394492afc2a (patch)
tree4690bb478eadb5f714d5ad2b4147daa882247c52
parent248072c1071d4ca39a54246c892759817e9d53e1 (diff)
downloadvdr-plugin-menuorg-d1c550f6f31628b3fa08721d8f129394492afc2a.tar.gz
vdr-plugin-menuorg-d1c550f6f31628b3fa08721d8f129394492afc2a.tar.bz2
dropped command element from dtd and embedded dtd into XmlMenu
git-svn-id: file:///home/tobias/sandbox/vdr/--/vdr-pkg/vdr-pkg/submenu/trunk@5823 cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f
-rw-r--r--menuorg.dtd22
-rw-r--r--src/xmlmenu.cpp13
-rw-r--r--src/xmlmenu.h3
3 files changed, 20 insertions, 18 deletions
diff --git a/menuorg.dtd b/menuorg.dtd
index cb7b6a2..576c9c8 100644
--- a/menuorg.dtd
+++ b/menuorg.dtd
@@ -19,22 +19,10 @@
$Id$
-->
-<!ELEMENT menu ((menu | system | plugin | command)+)>
-<!ATTLIST menu
- name CDATA #REQUIRED
->
+<!ELEMENT menus ((menu | system | plugin)+)>
+<!ELEMENT menu ((menu | system | plugin)+)>
+<!ATTLIST menu name CDATA #REQUIRED>
<!ELEMENT system EMPTY>
-<!ATTLIST system
- name CDATA #REQUIRED
->
+<!ATTLIST system name CDATA #REQUIRED>
<!ELEMENT plugin EMPTY>
-<!ATTLIST plugin
- name CDATA #REQUIRED
->
-<!ELEMENT command EMPTY>
-<!ATTLIST command
- name CDATA #REQUIRED
- execute CDATA #REQUIRED
- confirm (yes | no) #IMPLIED
->
-<!ELEMENT menus ((menu | system | plugin | command)+)>
+<!ATTLIST plugin name CDATA #REQUIRED>
diff --git a/src/xmlmenu.cpp b/src/xmlmenu.cpp
index b118bc4..04a8f8f 100644
--- a/src/xmlmenu.cpp
+++ b/src/xmlmenu.cpp
@@ -31,6 +31,15 @@
using namespace xmlpp;
using namespace std;
+const string XmlMenu::_dtd =
+ "<!ELEMENT menus ((menu | system | plugin)+)>\n"
+ "<!ELEMENT menu ((menu | system | plugin)+)>\n"
+ "<!ATTLIST menu name CDATA #REQUIRED>\n"
+ "<!ELEMENT system EMPTY>\n"
+ "<!ATTLIST system name CDATA #REQUIRED>\n"
+ "<!ELEMENT plugin EMPTY>\n"
+ "<!ATTLIST plugin name CDATA #REQUIRED>\n";
+
MenuNode* XmlMenu::LoadXmlMenu(string menuFileName, string schemaFileName)
{
MenuNode* menuRoot = new MenuNode();
@@ -43,7 +52,9 @@ MenuNode* XmlMenu::LoadXmlMenu(string menuFileName, string schemaFileName)
parser.set_substitute_entities();
parser.parse_file(menuFileName);
- DtdValidator validator(schemaFileName);
+ DtdValidator validator;
+ validator.parse_memory(_dtd);
+
Document *pDoc = parser.get_document();
validator.validate( pDoc );
diff --git a/src/xmlmenu.h b/src/xmlmenu.h
index f8da182..4bf8160 100644
--- a/src/xmlmenu.h
+++ b/src/xmlmenu.h
@@ -31,6 +31,9 @@ namespace xmlpp { class Element; }
class XmlMenu
{
+ private:
+ static const std::string _dtd;
+
public:
MenuNode* LoadXmlMenu(std::string menuFileName, std::string schemaFileName);