Python - 使用lxml验证多个模式

Ein*_*nar 9 python xsd lxml

我正在使用由第三方构建的模式,我想用lxml验证它.问题是这样的模式被分成不同的xsd文件,这些文件引用自己.

例如,名为"extension.xsd"的文件(基于"主"模式构建)具有如下行:

<redefine schemaLocation="master.xsd">
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用lxml验证它(解析,然后使用XMLSchema然后验证另一个我知道已经有效的文档),我只能使用"扩展"而不是"master"进行验证:换句话说,验证失败(因为在XML文件中只有元素存在于"master"而不是"extension"中.

我该如何解决(或解决)这个问题?谢谢!

tan*_*orm 1

如果 lxml 不支持“重新定义”,最好的选择是修复它并提交补丁。:)

如果失败,解决方法是自己解析 master.xsd 文件,然后应用 extension.xsd 中的更改,并输出具有组合架构的单个 xsd 文件。