XMLチュートリアル

XMLホーム XMLの紹介 XML使用方法 XMLツリー XML構文 XML要素 XML属性 XML名前空間 XML表示 XML HttpRequest XMLパーサー XML DOM XML XPath XML XSLT XML XQuery XML XLink XMLバリデーター XML DTD XMLスキーマ XMLサーバー XMLの例 XMLクイズ XML証明書

XML AJAX

AJAXの紹介 AJAX XMLHttp AJAXリクエスト AJAX応答 AJAXXMLファイル AJAX PHP AJAX ASP AJAXデータベース AJAXアプリケーション AJAXの例

XML DOM

DOMの紹介 DOMノード DOMアクセス DOMノード情報 DOMノードリスト DOMトラバース DOMナビゲーション DOMは値を取得します DOM変更ノード DOM削除ノード DOM置換ノード DOM作成ノード DOM追加ノード DOMクローンノード DOMの例

XPathチュートリアル

XPathの概要 XPathノード XPath構文 XPath軸 XPath演算子 XPathの例

XSLTチュートリアル

XSLTの紹介 XSL言語 XSLT変換 XSLT <テンプレート> XSLT <値> XSLT <for-each> XSLT <ソート> XSLT <if> XSLT <選択> XSLT適用 クライアント上のXSLT サーバー上のXSLT XSLT Edit XML XSLTの例

XQueryチュートリアル

XQueryの紹介 XQueryの例 XQuery FLWOR XQuery HTML XQueryの用語 XQuery構文 XQuery追加 XQuery Select XQuery関数

XML DTD

DTDの紹介 DTDビルディングブロック DTD要素 DTD属性 DTD要素と属性 DTDエンティティ DTDの例

XSDスキーマ

XSDの概要 XSDハウツー XSD <スキーマ> XSD要素 XSD属性 XSDの制限

XSDコンプレックス

XSD要素 XSDが空です XSD要素のみ XSDテキストのみ XSD混合 XSDインジケーター XSD <任意> XSD <anyAttribute> XSD置換 XSDの例

XSDデータ

XSD文字列 XSD日付 XSD数値 XSDその他 XSDリファレンス

Webサービス

XMLサービス XML WSDL XML SOAP XML RDF XML RSS

参考文献

DOMノードタイプ DOMノード DOM NodeList DOM NamedNodeMap DOMドキュメント DOM要素 DOM属性 DOMテキスト DOM CDATA DOMコメント DOM XMLHttpRequest DOMパーサー XSLT要素 XSLT / XPath関数

XML WSDL


  • WSDLはWebサービス記述言語の略です
  • WSDLはWebサービスを記述するために使用されます
  • WSDLはXMLで記述されています
  • WSDLは、2007年6月26日からのW3C勧告です。

WSDLドキュメント

WSDLドキュメントはWebサービスについて説明しています。これらの主要な要素を使用して、サービスの場所とサービスのメソッドを指定します。

Element Description
<types> Defines the (XML Schema) data types used by the web service
<message> Defines the data elements for each operation
<portType> Describes the operations that can be performed and the messages involved.
<binding> Defines the protocol and data format for each port type

WSDLドキュメントの主な構造は次のようになります。

<definitions>

<types>
  data type definitions........
</types>

<message>
  definition of the data being communicated....
</message>

<portType>
  set of operations......
</portType>

<binding>
  protocol and data format specification....
</binding>

</definitions>


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">
  <operation name="getTerm">
    <input message="getTermRequest"/>
    <output message="getTermResponse"/>
  </operation>
</portType>

この例では、<portType>要素は「glossaryTerms」をポートの名前として定義し、「getTerm」を操作の名前として定義します。

「getTerm」操作には、「getTermRequest」という入力メッセージと「getTermResponse」という出力メッセージがあります。

<message>要素は、各メッセージの部分と関連するデータ型を定義ます


<portType>要素

<portType>要素は、Webサービス、実行可能な操作、および関連するメッセージを定義します。

要求/応答タイプは最も一般的な操作タイプですが、WSDLでは次の4つのタイプが定義されています。

Type Definition
One-way The operation can receive a message but will not return a response
Request-response The operation can receive a request and will return a response
Solicit-response The operation can send a request and will wait for a response
Notification The operation can send a message but will not wait for a response

WSDL一方向操作

一方向の操作例:

<message name="newTermValues">
  <part name="term" type="xs:string"/>
  <part name="value" type="xs:string"/>
</message>

<portType name="glossaryTerms">
  <operation name="setTerm">
    <input name="newTerm" message="newTermValues"/>
  </operation>
</portType >

上記の例では、portType "glossaryTerms"は、 "setTerm"と呼ばれる一方向の操作を定義します。

「setTerm」操作では、入力パラメーター「term」および「value」を指定した「newTermValues」メッセージを使用して、新しい用語集メッセージを入力できます。ただし、操作の出力は定義されていません。


WSDL要求/応答操作

要求/応答操作の例:

<message name="getTermRequest">
  <part name="term" type="xs:string"/>
</message>

<message name="getTermResponse">
  <part name="value" type="xs:string"/>
</message>

<portType name="glossaryTerms">
  <operation name="getTerm">
    <input message="getTermRequest"/>
    <output message="getTermResponse"/>
  </operation>
</portType>

上記の例では、portType "glossaryTerms"は、 "getTerm"と呼ばれる要求/応答操作を定義します。

「getTerm」操作には、「term」というパラメーターを持つ「getTermRequest」という入力メッセージが必要であり、「value」というパラメーターを持つ「getTermResponse」という出力メッセージが返されます。


SOAPへのWSDLバインディング

WSDLバインディングは、Webサービスのメッセージ形式とプロトコルの詳細を定義します。

要求/応答操作の例:

<message name="getTermRequest">
  <part name="term" type="xs:string"/>
</message>

<message name="getTermResponse">
  <part name="value" type="xs:string"/>
</message>

<portType name="glossaryTerms">
  <operation name="getTerm">
    <input message="getTermRequest"/>
    <output message="getTermResponse"/>
  </operation>
</portType>

<binding type="glossaryTerms" name="b1">
   <soap:binding style="document"
   transport="http://schemas.xmlsoap.org/soap/http" />
   <operation>
     <soap:operation soapAction="http://example.com/getTerm"/>
     <input><soap:body use="literal"/></input>
     <output><soap:body use="literal"/></output>
  </operation>
</binding>

バインディング要素には、名前とタイプの2つの属性があります。

name属性(任意の名前を使用できます)はバインディングの名前を定義し、type属性はバインディングのポート(この場合は「glossaryTerms」ポート)を指します。

soap:binding要素には、スタイルとトランスポートの2つの属性があります。

style属性は、「rpc」または「document」にすることができます。この場合、ドキュメントを使用します。トランスポート属性は、使用するSOAPプロトコルを定義します。この場合、HTTPを使用します。

operation要素は、portTypeが公開する各操作を定義します

操作ごとに、対応するSOAPアクションを定義する必要があります。また、入力と出力のエンコード方法も指定する必要があります。この場合、「リテラル」を使用します。