2011-11-28 30 views
0

我有一個包含(例如)一個模式...的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」。

+0

想必MYELEMENT的類型是http://www.mynamespace.co.uk/types:mytype?你能發佈完整的模式和實例嗎? – kennethmay

+0

我已經驗證過該行爲不應該導致錯誤。任何人都不應該在乎MYELEMENT是否在模式中,即使模式是被命名的。問題是TIBCO問題。 – Erad

+0

其實我應該說的是,MYELEMENT的父母需要是「mytype」類型。 – kennethmay

回答

0

我發現它的TIBCO Designer 5.5 bug。使用5.6或更高。