レスポンスセクションは、各オペレーションによってデフォルトで返されるレスポンスを定義しています。次のコードは、
ItemSearch
レスポンスの一部を示しています。
<xs:element name="ItemSearch
Response">
<xs:complexType>
<xs:sequence>
<xs:element ref="tns:OperationRequest" minOccurs="0" />
<xs:element ref="tns:Items" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
このレスポンスセクションは、 ItemSearch
レスポンスに2つのオプション (minOccurs
=0) 要素、 OperationRequest
と Items が含まれることを示しています。これらの要素はどちらも参照(ref
=) であるため、WSDL のさらに後方で定義されていることを意味します。
WSDL の後方では、OperationRequest
が次のように定義されています。
<xs:element name="OperationRequest"> <xs:complexType> <xs:sequence> <xs:element ref="tns:HTTPHeaders" minOccurs="0" /> <xs:element name="RequestId" type="xs:string" minOccurs="0" /> <xs:element ref="tns:Arguments" minOccurs="0" /> <xs:element ref="tns:Errors" minOccurs="0" /> <xs:element name="RequestProcessingTime" type="xs:float" minOccurs="0" maxOccurs="1" /> </xs:sequence> </xs:complexType> </xs:element>
この定義にもいくつかの参照が含まれています。1つはArguments
です。これは、WSDL のさらに後方で定義されています。リクエストの各部の定義を完全に理解するために、参照の階層を掘り下げて見ていく必要があります。要素の定義に "ref" がなくなれば定義階層の最後に到達したことがわかります。要素定義には、要素の名前である "name" と、要素の型である "type" が含まれます。型は、スキーマ(xs:)で定義されている文字列などの基本型です。次に例を示します。
<xs:element name="RequestId" type="xs:string" minOccurs="0" />
この行は、RequestId
の型が、W3C スキーマで定義されている文字列であることを定義しています。
次の例に示すレスポンス例では、RequestId
の定義がどのように行われているかがわかります。
<ItemSearch
Response xmlns="
http://ecs.amazonaws.com/AWSECommerceService/2006-09-13">
...
<OperationRequest>
...
<RequestId>0VFY0HFBRTJGRE6KES74</RequestId>
まず、RequestId
の値が文字列であることがわかります。次に、要素名がRequestId
になっています。さらに、XML階層からRequestId
の定義が、OperationRequest
要素の入れ子になっており、それはItermSearchResponse
要素のさらに入れ子になっていることがわかります。WSDL で入れ子になるのが "ref" キーワードであることに注意してください。