Python - проверка с несколькими схемами с использованием lxml - PullRequest
9 голосов
/ 30 июня 2010

Я работаю со схемой, созданной третьей стороной, и я хотел бы проверить ее с помощью lxml.Проблема заключается в том, что такая схема разбита на разные xsd-файлы, которые ссылаются на себя.

Например, файл с именем extension.xsd (основанный на «основной» схеме) имеет следующую строку:

<redefine schemaLocation="master.xsd">

Если я попытаюсь проверить его с помощью lxml (синтаксический анализ, затем XMLSchema, затем проверка другого документа, который, как я знаю, уже действителен), я получу проверку только с использованием «extension», а не «master»другими словами, проверка не проходит (потому что в файле XML есть элементы, присутствующие только в «master», а не в «extension»).

Как я могу решить (или обойти) эту проблему?Спасибо!

1 Ответ

1 голос
/ 25 февраля 2011

Если lxml не поддерживает переопределение, лучшим вариантом будет исправить это и отправить патч. :)

Если это не удастся, обходной путь будет состоять в том, чтобы самостоятельно проанализировать файл master.xsd, а затем применить изменения из extension.xsd и вывести один файл xsd с объединенной схемой.

...