我有一个包含(例如)的架构......
<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 时,我收到以下错误:
引起:org.xml.sax.SAXException:验证错误:#cvc-elt.3.1 元素“{http://www.mynamespace.co.uk/types}MYELEMENT”不可为空。({com.tibco.xml.validation}COMPLEX_E_ELEMENT_NOT_NILLABLE)
这是在 TIBCO 5.5 设计器中执行的 SOAP 调用。我了解 TIBCO 并不是世界上最知名的工具;我真正想摆脱这个问题的是错误是否是预期的行为(可能是因为元素具有定义的命名空间???)。
我会认为processContents="skip"
应该允许任何事情通过?
只是为了完成信息,名称空间http://www.mynamespace.co.uk/types可用于 SOAP 接收器。无论是否在模式中定义了“MYELEMENT”,无论是否使用 ,我都会收到此错误nillable="true"
。我从客户那里收到 XML,因此无法从 MYELEMENT 中删除 xsi:nil = "true"。