2010-06-30 74 views
9

我正在使用由第三方構建的模式,我想用lxml驗證它。問題在於這樣的模式被分割到不同的xsd文件中,這些文件引用它們自己。Python - 使用lxml驗證多個模式

例如,一個名爲「extension.xsd」(這是建立在「主」模式)文件具有類似線:

<redefine schemaLocation="master.xsd"> 

如果我嘗試與LXML(解析來驗證它,然後使用XMLSchema然後驗證另一個我知道已經有效的文檔),我只使用「extension」而不是「master」進行驗證:換句話說,驗證失敗(因爲在XML文件中只有元素存在於「master」中)不在「擴展名」中)。

我該如何解決(或解決)這個問題?謝謝!

回答

1

如果lxml不支持「重新定義」,最好的選擇是修復它並提交補丁。 :)

如果失敗,解決方法是自己解析master.xsd文件,然後應用extension.xsd中的更改,並輸出包含組合模式的單個xsd文件。