schema验证XML文件大家听的肯定很多了,但是它仅仅能验证某些方面,比如某个元素出现的次数、某个属性是不是必须出现的等等,但是它也有不能达到的方面。例如,我要验证book这个元素的value属性,只能在“java”、“C++”这两者之内取值,而不能是另外的值,此时schema就无能为力了。
schematron就是为了类似的问题而产生的。schematron继承了schema的优点,即它也是采用了XML语法,这也是schema优于DTD的一个方面。schematron定义了一些元素:pattern、rule、assert、report以及相应属性来限制元素及属性的取值,使用XPath来定位元素位置。schematron的官方网站是www.schematron.com/要,官网上有个PPT对schematron有很详细的介绍,并且介绍了如何使用schematron实现xml的验证方法。
关于验证方法这里就要详细说一下了,schematron guide这个ppt上介绍了几种方法,对于java语言来说主要有两种。
第一方法,利用apache公司的Xalan技术,它是基于XSLT的。过程是这样:把写好的schemetron文件(后缀为.sch)与sk