LINUX.ORG.RU

python и libxml2: парсинг с валидацией


0

0

Кто имел дело с 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)
# далее идет перебор элементов

Спасибо.

★★★

> Кто имел дело с libxml2, скажите, умеет он умеет парсинг с валидацией по схеме? Отсутствующая валидация настолько скудна, что я мог и прозевать такой функционал.

Она вроде только по DTD валидировать умеет.

gaa ★★
()
Ответ на: комментарий от gaa

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

kondor ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.