我有一個包含(例如)一個模式...的xsi:當一個xs內解析零驗證失敗:任何
<xsd:complexType name="mytype">
<xsd:sequence>
<xsd:any maxOccurs="unbounded" processContents="skip"/>
</xsd:sequence>
</xsd:complexType>
...和含有該元件的一些XML ...
<MYELEMENT xmlns = "http://www.mynamespace.co.uk/types" xsi:nil = "true"/>
...我有一個期望返回'mytype'的SOAP調用。當我回來XML含有上述,我得到以下錯誤:
caused by: org.xml.sax.SAXException: validation error: #cvc-elt.3.1 Element "{http://www.mynamespace.co.uk/types}MYELEMENT" is not nillable. ({com.tibco.xml.validation}COMPLEX_E_ELEMENT_NOT_NILLABLE)
這是TIBCO 5.5 Designer中進行SOAP調用。我知道TIBCO並不是世界上最知名的工具,我真正想從這個問題中得出錯誤是否是預期的行爲(也許是因爲元素具有已定義的命名空間???)或者不是。
我會認爲processContents="skip"
應該允許任何事情通過?
只是爲了完成信息,名稱空間http://www.mynamespace.co.uk/types可用於SOAP接收器。無論是否在架構中定義'MYELEMENT',無論是否帶有nillable="true"
,我都會收到此錯誤。我正在接收客戶的XML,因此無法從MYELEMENT中刪除xsi:nil =「true」。
想必MYELEMENT的類型是http://www.mynamespace.co.uk/types:mytype?你能發佈完整的模式和實例嗎? – kennethmay
我已經驗證過該行爲不應該導致錯誤。任何人都不應該在乎MYELEMENT是否在模式中,即使模式是被命名的。問題是TIBCO問題。 – Erad
其實我應該說的是,MYELEMENT的父母需要是「mytype」類型。 – kennethmay