Python - 使用lxml验证多个模式

时间:2010-06-30 08:39:46

标签: python xsd lxml

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

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

<redefine schemaLocation="master.xsd">

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

如何解决(或解决)此问题?谢谢!

1 个答案:

答案 0 :(得分:1)

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

如果失败,解决方法是自己解析master.xsd文件,然后应用来自extension.xsd的更改,并输出一个带有组合模式的xsd文件。