在lxml中,可以使用etree
模块中的Schematron
类来实现XML文档的Schematron验证。以下是一个简单的示例代码:
from lxml import etree
# 定义Schematron验证规则
schematron = etree.Schematron(etree.XML('''<schema xmlns="http://purl.oclc.org/dsdl/schematron">
<pattern>
<rule context="book">
<assert test="title">Every book must have a title.</assert>
</rule>
</pattern>
</schema>'''))
# 加载XML文档
xml_doc = etree.parse('books.xml')
# 进行Schematron验证
validation_result = schematron.validate(xml_doc)
# 输出验证结果
if validation_result:
print("XML文档通过Schematron验证")
else:
print("XML文档未通过Schematron验证")
在上面的示例中,首先定义了一个Schematron验证规则,然后使用Schematron
类加载这个规则。接着加载了一个XML文档books.xml
,并调用validate
方法对其进行Schematron验证。最后根据验证结果输出相应的信息。
需要注意的是,要使用etree.Schematron
类,需要确保安装了lxml
库。