Кто имел дело с libxml2, скажите, умеет он умеет парсинг с валидацией по схеме? Отсутствующая валидация настолько скудна, что я мог и прозевать такой функционал.
Есть: исходный документ, соответствующая схема.
Нужно: отпарсить документ по заданной схеме и иметь возможность получать дефолтные (заложены в схеме) значения атрибутов.
Вот такое не работает:
schema_parser_ctx = libxml2.schemaNewParserCtxt("/path/to/schema.xsd")
schema = schema_parser_ctx.schemaParse()
valid_schema = schema.schemaNewValidCtxt()
doc = libxml2.readFile("/path/to/doc.xml", None, libxml2.XML_ERR_WARNING)
doc.schemaValidateDoc(valid_schema)
# далее идет перебор элементов
Спасибо.