4

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

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

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

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

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

4

1 回答 1

6

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

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

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

于 2012-11-20T15:37:20.477 回答