1

我从供应商那里收到了这个模式,并试图弄清楚它里面有什么。

<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>
4

1 回答 1

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属性any,它默认为strict- 这意味着如果没有架构,则验证失败some namespace- 或者如果something元素与该架构不匹配。

any 请参阅此处的文档。

于 2013-04-19T17:25:08.197 回答