Проверка xml по xsd на Python через lxml
В библиотеке lxmlopen in new window содержаться функции для проверки xml по xsdopen in new window. Пример кода:
from lxml import etree
# Загрузка xsd схемы
xsd_file_name = r'schema.xsd'
schema_root = etree.parse(xsd_file_name)
schema = etree.XMLSchema(schema_root)
# Загрузка xml
xml_filename = 'file.xml'
xml = etree.parse(xml_filename)
# Проверка
if not schema.validate(xml):
print(schema.error_log)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Метод validate
возвращает False
если xml не проходит проверку по схеме. Свойство error_log
содержит список несоответствий xml схеме из xsd.