我正在生成爲不同部分提供了不同XSD的XML文檔(也就是說,某些元素的定義在某些文件中,其他元素的定義在其他文件中)。使用三個xml模式作爲lxml中的一個組合模式進行驗證?
XSD文件不互相引用。該模式是:
- http://xmlgw.companieshouse.gov.uk/v2-1/schema/Egov_ch-v2-0.xsd
- http://xmlgw.companieshouse.gov.uk/v1-1/schema/forms/FormSubmission-v1-1.xsd
- http://xmlgw.companieshouse.gov.uk/v1-1/schema/forms/CompanyIncorporation-v1-2.xsd
有沒有一種方法來驗證對所有使用LXML的模式的文件?
這裏的解決方案是而不是只是針對每個模式單獨進行驗證,因爲我遇到的問題是驗證失敗,因爲未在XSD中指定的元素。例如,針對http://xmlgw.companieshouse.gov.uk/v2-1/schema/Egov_ch-v2-0.xsd
驗證的時候,我得到的錯誤:
File "lxml.etree.pyx", line 3006, in lxml.etree._Validator.assertValid (src/lxml/lxml.etree.c:125415)
DocumentInvalid: Element '{http://xmlgw.companieshouse.gov.uk}CompanyIncorporation': No matching global element declaration available, but demanded by the strict wildcard., line 9
因爲有問題的文件包含一個{http://xmlgw.companieshouse.gov.uk}CompanyIncorporation
元素,這是不是在XSD規定進行驗證的,但在其他XSD文件之一。
你確定你不想來驗證*部分*的XML的文件反對*不同*模式,而不是*所有*模式針對*相同*文件? – 2012-03-02 16:38:26
我確定我想檢查組合文檔是否有效。 – Marcin 2012-03-02 16:41:21