Я предполагаю, что Вы означаете использовать файлы XSD. Удивительно нет многих библиотек XML Python, которые поддерживают это. lxml делает как бы то ни было. Проверьте Проверка с lxml. Страница также перечисляет, как использовать lxml для проверки с другими типами схемы.
lxml обеспечивает etree. DTD
от тестов на http://lxml.de/api/lxml.tests.test_dtd-pysrc.html
...
root = etree.XML(_bytes("<b/>"))
dtd = etree.DTD(BytesIO("<!ELEMENT b EMPTY>"))
self.assert_(dtd.validate(root))
Пакет PyXB по адресу http://pyxb.sourceforge.net/ генерирует валидационные привязки для Python из документов по XML-схеме. Он обрабатывает почти каждую конструкцию схемы и поддерживает несколько пространств имен.
.