summaryrefslogtreecommitdiff
path: root/src
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 /src
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
Diffstat (limited to 'src')
-rw-r--r--src/xmlmenu.cpp13
-rw-r--r--src/xmlmenu.h3
2 files changed, 15 insertions, 1 deletions
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);