名称 访问接口 是否支持验证 备注
Expat SAX/Local 不清楚 Local指它还有一套自己访问模型
LibXML2 SAX/DOM 验证
TinyXml DOM 否
XML4C SAX/DOM 验证 不过用了ICU,国际化似乎更好
Xerces-C SAX/DOM 验证
XML Booster Local 不清楚 估计效率应该很高
Python自带的有ElementTree,比较常用的库是lxml,它是libxml2的py接口
关于DOM和SAX
DOM - DocumentObject Model
将整篇XML文档一次性解析并读入内存,保存为一个对象供用户访问。DOM无法处理大型XML文件。
SAX - Simple APIfor XML
SAX的XML解析方式是基于事件回调的,解析器在每遇到一个XML元素时都会产生一个事件,并执行由用户提供的处理函数。
两种常见的验证XML文档内容的工具:文档类型定义(Document Type Definitions,DTD)和XML Schema(已经成为W3C的正式推荐标准)
XML Schema文档本身也使用 XML 创建,称之为模式文档,它定义实例文档(即数据文档)的结构,各个属性的有效取值等。参见:
http://www.ibm.com/developerworks/cn/education/xml/x-valid/section5.html
http://bbs.xml.org.cn/dispbbs.asp?boardID=23&ID=11585
转载于:https://my.oschina.net/u/3485339/blog/900357