WSDL の構造

トピック

通常、Binding セグメントと Service セグメントは、WSDL リリースのたびに変更になるということはありません。Definitions セグメントでは、WSDL バージョンだけが変更になります。そのため、WSDL を読むときは、Request Definitions (リクエスト定義) セグメントと Response Definitions (レスポンス定義) セグメントを読むのに多くの時間を費やすことになります。

Definitions

WSDL の Definitions セクションは、WSDL 全体で使用されるネームスペース、サービスの名前を定義します。Product Advertising API の WSDL のコーディングの一部を次に示します。

<?xml version="1.0" encoding="UTF-8" ?> 
<definitions
  xmlns="http://schemas.xmlsoap.org/wsdl/" 
  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
  xmlns:xs="http://www.w3.org/2001/XMLSchema" 
  xmlns:tns="http://ecs.amazonaws.com/
  AWSECommerceService/2006-09-13"
  targetNamespace="http://ecs.amazonaws.com/
  AWSECommerceService/2006-09-13">

この例は次のことを示しています。

  • デフォルトのネームスペースは xmlns="http://schemas.xmlsoap.org/wsdl/"

  • 使われる SOAP ネームスペースは xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"

  • 使われるスキーマは xmlns:xs="http://www.w3.org/2001/XMLSchema"

  • Product Advertising API WSDLネームスペースは is "http://ecs.amazonaws.com/AWSECommerceService/2006-09-13"

    最後の日付はバージョン番号です。これは、WSDL が公開された日付です。

  • TargetNamespace は "http://ecs.amazonaws.com/AWSECommerceService/2006-09-13" です。

    TargetNamespace は、WSDL が自身を(ターゲットとして)参照できるようにするための XML スキーマ規約です。TargetNamespace の値は、Product Advertising API WSDL ネームスペースです。

ネームスペース

ネームスペースは、その中で名前が一意となるパラメータとオペレーションの集まりです。ネームスペースを使用する利点は、ネームスペース xs を参照するだけで、WSDL が文字列などの用語を定義できることです。また、パラメータの前にネームスペースを追加することで、名前が重複する危険を回避することができます。

各ネームスペース宣言は "xmlns:" (XML namespace:)で始まり、その後にネームスペースの短縮形が続きます。例えば、次のネームスペース宣言では、xsがスキーマのURLの短縮形になります。

xmlns:xs="http://www.w3.org/2001/XMLSchema"

WSDL の残りの部分全体で、ネームスペースの短縮形でパラメータが定義されることがわかります。

type="xs:string"
ref="tns:HTTPHeaders"

これらの短縮形により、パラメータを定義するネームスペースが提供されます。

バージョン

Product Advertising API では、使用する WSDL のバージョンを指定できます。この機能を使用することで、Product Advertising API の WSDL に対する今後の拡張や変更が無条件でアプリケーションに適用されるのを避けることができます。例えば、Product Advertising API で WSDL に新しい要素が追加された場合、古い Product Advertising API の WSDL に対して検証を行うアプリケーションが影響を受けます。

Product Advertising API の WSDL のバージョン名は、使用が開始された日付を基にしています。WSDL のバージョンは、Product Advertising API の WSDL ネームスペース宣言で指定します。前の例では、WSDL のバージョンは 2006-09-13 です。

xmlns:tns="http://ecs.amazonaws.com/
  AWSECommerceService/2006-09-13"

実際には、ここで指定する日付は WSDL のファイル名です。

AWSECommerceServiceディレクトリには、Product Advertising API の全てのバージョンの WSDL が格納されています。REST リクエストのVersionパラメータで、使用する WSDL のバージョンを指定します。デフォルトのバージョンは 2005-10-05 です。最新バージョンなど、別のバージョンの WSDL を使用する場合は、REST などの各リクエストで指定する必要があります。

http://ecs.amazonaws.com/onca/xml?
Service=AWSECommerceService&
AWSAccessKeyId=[AWS アクセスキー ID]
&Operation=ItemSearch&
SearchIndex=Books&
Author=Steve%20Davenport&
Version=2006-09-13
[注]注意

本バージョンの『Product Advertising API 開発者ガイド』には、本書の発行日現在における WSDL の全ての機能を説明しています。デフォルトの WSDL を含む古い WSDL については、AWS リソースセンターhttp://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=5にある本書の旧バージョンを参照してください。

SOAP リクエストは、常に WSDL バージョンを含むネームスペースを指定します。将来の WSDL 変更による問題を回避するために、SOAP アプリケーションでは WSDL バージョンを必ず指定してください。