В библиотеке lxml содержаться функции для проверки xml по xsd. Пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
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) |
Метод validate
возвращает False
если xml не проходит проверку по схеме. Свойство error_log
содержит список несоответствий xml схеме из xsd.