我正在编写自己的验证 XML解析器. (是的,我知道这是一项非常复杂的任务,使用libxml2或Xerces等现有产品将是更明智的选择.但这不是一个选择,所以请耐心等待.) 将XML和XSD文件解析为树结构
将XML和XSD文件解析为树结构应该不是很困难.但是我似乎无法弄清楚用什么算法来验证XML树对XSD的算法.
我做了一些研究,但我发现的一切都是过于通用(如何编写编译器等)或过于具体(如增量验证).
我有一些自己的想法,但它们都相当复杂,所以在开始编码之前,我真的希望对我的想法的有效性(没有双关语)更加确定.
在此先感谢,如果您认为可以提供帮助,请随时询问更多详细信息!
在编写XSD处理器并让它通过W3C测试套件中的50,000个左右的测试时,需要花费大量的精力.但是,如果你坚持使用关键算法来验证语法实例,那么这是一个很好的起点:http://www.ltg.ed.ac.uk/~ht/XML_Europe_2003.html
您还应该获得Aho和Ullman的副本,其中包含Henry引用的算法.