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には、任意の要素を 1 つ入れることができます。つまり、任意の名前空間の任意の名前を持つ要素です。

<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属性 ofanyが指定されていないため、デフォルトは- にスキーマがない場合、または要素がそのスキーマと一致しない場合strict、検証が失敗することを意味します。some namespacesomething

any hereのドキュメントを参照してください。

于 2013-04-19T17:25:08.197 に答える