我从供应商那里收到了这个架构,并且我试图弄清楚它内部的内容。
<schema targetNamespace="http://abc.com:9080/product/services/12WebService/types/" xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<element name="Message">
<complexType>
<sequence>
<any minOccurs="0"/>
</sequence>
</complexType>
</element>
</schema>
我可以在下面的示例中合法地放入<types:Message>
元素。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:types="http://abc.com:9080/product/services/12WebService/types/">
<soapenv:Header/>
<soapenv:Body>
<types:Message>
<!-- What can go here -->
</types:Message>
</soapenv:Body>
</soapenv:Envelope>
答案 0 :(得分:1)
在message
内,您可以放置一个任意元素 - 即任何名称空间中具有任何名称的元素:
<Message xmlns="http://abc.com:9080/product/services/12WebService/types/">
<something xmlns="some namespace" . . more attributes here . . .>
. . . more sub-elements here . .
</something>
</Message>
空message
也有效(由于minOccurs="0"
):
<Message xmlns="http://abc.com:9080/product/services/12WebService/types/">
</Message>
你不能放在message
内的是多个元素 - 这是无效的:
<Message xmlns="http://abc.com:9080/product/services/12WebService/types/">
<something1 xmlns="some namespace">
</something1>
<something2 xmlns="some namespace">
</something2>
</Message>
请注意,因为未指定processContents
的{{1}}属性,默认为any
- 这意味着验证失败如果没有strict
的架构 - 或者some namespace
元素与该架构不匹配。
请参阅something
here的文档。