【问题标题】:What algorithm to use to validate XML against XSD?使用什么算法来针对 XSD 验证 XML?
【发布时间】:2012-11-08 15:52:12
【问题描述】:

我正在编写自己的验证 XML 解析器。 (是的,我知道这是一项非常复杂的任务,使用 libxml2 或 Xerces 等现有产品将是更明智的选择。但这不是一个选项,所以请多多包涵。)

将 XML 和 XSD 文件解析为树结构应该不是很困难。但是,我似乎无法弄清楚使用什么算法来验证 XML 树与 XSD 的对比。

我做了一些研究,但我发现的一切要么太笼统(如何编写编译器等),要么太具体(例如增量验证)。

我有一些自己的想法,但它们都相当复杂,所以在开始编写代码之前,我真的很想更加确定我的想法的有效性(不是双关语)。

提前致谢,如果您认为可以提供帮助,请随时询问更多详细信息!

【问题讨论】:

  • 这可能是一个愚蠢的问题,但你能从 Xerces 源代码中得到一些想法吗?
  • 我已经尝试查看 Xerces 和 libxml2 的源代码,但是它们(不出所料)都非常复杂,我无法“提取”我感兴趣的算法部分。谢谢你的建议:)

标签: xml validation parsing xsd


【解决方案1】:

编写 XSD 处理器并让它通过 W3C 测试套件中的 50,000 次左右的测试需要大量的工作。但是,如果您被困在根据语法验证实例的关键算法上,这是一个很好的起点:

http://www.ltg.ed.ac.uk/~ht/XML_Europe_2003.html

您还应该获得一份 Aho 和 Ullman 的副本,其中包含 Henry 引用的算法。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多