如何使用RapidXML解析XSD文件

问题描述 投票:1回答:1

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());
xsd rapidxml
1个回答
0
投票

您的印象是错误的,访问XML的内容并根据方案进行验证是非常不同的主题 - 即使前者对后者有用。特别是轻量级和快速解析器不支持验证,快速浏览一下文档就会显示:

W3C合规性。 RapidXml不是符合W3C标准的解析器,主要是因为它忽略了DOCTYPE声明

同样,有一些完全不同的方案语言(XSD,RNG,DTD,......),即使支持一种语言也不意味着你想要的语言。

您还必须考虑到,有许多XML文件,它们只是格式良好且不符合任何方案 - 有人可能想要处理它们。

© www.soinside.com 2019 - 2024. All rights reserved.