diff options
Diffstat (limited to 'src/xmlmenu.cpp')
-rw-r--r-- | src/xmlmenu.cpp | 13 |
1 files changed, 12 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 ); |