Автоматическая проверка XSD

Согласно документации lxml "DTD извлекается автоматически на основе DOCTYPE проанализированного документа. Все, что вам нужно сделать, это использовать анализатор, в котором включена проверка DTD".

http://lxml.de/validation.html#validation-at-parse-time

Однако, если вы хотите выполнить проверку по XML-схеме, вам необходимо явно сослаться на нее.

Мне интересно, почему это так, и я хотел бы знать, есть ли библиотека или функция, которая может это сделать. Или даже объяснение, как это сделать самому. Проблема в том, что существует много способов сослаться на XSD, и мне нужно поддерживать их все.

Проверка не является проблемой. Проблема заключается в том, как определить схемы для проверки. В идеале это также будет обрабатывать встроенные схемы.

Обновление:

Вот пример.

simpletest.xsd:



  

simpletest.xml:


foo

Я хотел бы сделать что-то вроде следующего:

>>> parser = etree.XMLParser(xsd_validation=True)
>>> tree = etree.parse("simpletest.xml", parser)

9
задан Jono 24 March 2012 в 14:12
поделиться