在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
庫。