XML概念与解析库

XML文件解析库:(C/C++)
名称                访问接口       是否支持验证    备注
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
 

你可能感兴趣的:(c,xml,python,schema,文档,工具)