RapidXML是否能够使用其关联的模式(即XSD文件)验证/解析XML文件?我假设XML解析器能够同时执行这两个操作。如果没有,为什么认为没有必要验证/解析相关的模式?我检查了RapidXML的文档,发现没有提到schema或xsd。
我目前正在解析XML文件likeo:
rapidxml::file<> xmlFile("BeerLog.xml");
rapidxml::xml_document<> doc;
doc.parse<0>(xmlFile.data());
以下sudo-code可能会让您更好地了解我在寻找什么:
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());
您的印象是错误的,访问XML的内容并根据方案进行验证是非常不同的主题 - 即使前者对后者有用。特别是轻量级和快速解析器不支持验证,快速浏览一下文档就会显示:
W3C合规性。 RapidXml不是符合W3C标准的解析器,主要是因为它忽略了DOCTYPE声明
同样,有一些完全不同的方案语言(XSD,RNG,DTD,......),即使支持一种语言也不意味着你想要的语言。
您还必须考虑到,有许多XML文件,它们只是格式良好且不符合任何方案 - 有人可能想要处理它们。