| WSDL ドキュメントの主な構造は次のようになります:
<定義>
<タイプ>
データ型定義....
</types>
<message>
通信されるデータの定義....
</message>
<portType>
一連の操作....
</portType>
<binding>
プロトコルとデータ形式の仕様....
</binding>
</defiations>
WSDL ドキュメントには、拡張要素などの他の要素や、複数の Web サービスを組み合わせることができるサービス要素を含めることができます。定義は 1 つの WSDL ドキュメントに結合されます。
WSDL port
<portType> 要素は、最も重要な WSDL 要素です。
Web サービス、実行できる操作、および関連メッセージを記述することができます。
<portType> 要素は、従来のプログラミング言語の関数ライブラリ (またはモジュール、クラス) と比較できます。
WSDL メッセージ
<message> 要素は、操作のデータ要素を定義します。
各メッセージは 1 つ以上の部分で構成されます。これらのコンポーネントは、従来のプログラミング言語の関数呼び出しのパラメーターと比較できます。
WSDL types
<types>要素は、Webサービスで使用されるデータ型を定義します。
プラットフォームの中立性を最大限に高めるために、WSDL は XML スキーマ構文を使用してデータ型を定義します。
WSDL Bindings
<binding> 要素は、各ポートのメッセージ形式とプロトコルの詳細を定義します。
WSDL の例
これは、WSDL ドキュメントの簡略化されたスニペットです:
<message name="getTermRequest">
<part name="term" type="xs:string"/>
</message>
<message name="getTermResponse">
<part name="value" type="xs:string"/>
</message>
<portType name="glossaryTerms">
<オペレーション名="getTerm">
<入力メッセージ="getTermRequest"/>
<出力メッセージ="getTermResponse"/>
</operation>
</portType>
この例では、<portType>要素は、特定のポートの名前として「glossaryTerms」を定義し、特定のオペレーションの名前として「getTerm」を定義します。
オペレーション「getTerm」には、「getTermRequest」という名前の入力メッセージと、「getTermResponse」という名前の出力メッセージがあります。
<message> 要素は、各メッセージの parts と、関連付けられたデータ型を定義します。
従来のプログラミングと比較すると、glossaryTerms は関数ライブラリであり、「getTerm」は入力パラメータ「getTermRequest」と戻りパラメータ getTermResponse を持つ関数です。