RapidXML是否具有使用关联的架构(即XSD文件)验证/解析XML文件的功能?我当时假设XML解析器可以同时完成这两项工作。如果不是,为什么认为没有必要验证/解析关联的架构?我检查了RapidXML的文档,发现没有提及架构或xsd。
我目前正在像这样解析XML文件:
rapidxml::file<> xmlFile("BeerLog.xml");
rapidxml::xml_document<> doc;
doc.parse<0>(xmlFile.data());
以下sudo代码可能会让您对我正在寻找的内容有更好的了解:
rapidxml::file<> xmlFile("BeerLog.xml", "BeerLog.xsd");
甚至:
rapidxml::file<> xmlFile("BeerLog.xml");
rapidxml::file<> xsdFile("BeerLog.xsd");
rapidxml::xml_document<> doc;
doc.parse_with_schema<0>(xsdFile.data(), xmlFile.data());
答案 0 :(得分:0)
您的印象是错误的,访问XML的内容和针对方案进行验证是截然不同的主题,即使前者对后者有用。尤其是轻量级且快速的解析器不支持验证,而快速浏览一下文档就会发现:
符合W3C。 RapidXml不是W3C兼容的解析器,主要是因为它忽略DOCTYPE声明
还考虑到,存在非常不同的方案语言(XSD,RNG,DTD等),即使支持一种也不意味着它就是您想要的一种。
您还必须考虑到,有很多XML文件,它们的格式正确且不符合任何方案-仍然有人可能要对其进行处理。