我正在使用由第三方构建的模式,我想用lxml验证它。问题是这样的模式被分成不同的xsd文件,这些文件引用自己。
例如,名为“extension.xsd”的文件(基于“主”模式构建)有一行如下:
<redefine schemaLocation="master.xsd">
如果我尝试使用lxml验证它(解析,然后使用XMLSchema
然后验证另一个我知道已经有效的文档),我只能使用“extension”而不是“master”进行验证:换句话说,验证失败(因为在XML文件中,元素只出现在“master”中,而不是“extension”中。)
如何解决(或解决)此问题?谢谢!
答案 0 :(得分:1)
如果lxml不支持“重新定义”,最好的选择是修复它并提交补丁。 :)
如果失败,解决方法是自己解析master.xsd文件,然后应用来自extension.xsd的更改,并输出一个带有组合模式的xsd文件。