1.3.4. WSDLサンプル(DOCUMENT)

1.3.4.1. 概要

XMLマッピングでWSDL(SOAPBindingはDOCUMENT)を利用したサンプルです。
SOAPBinding形式はDOCUMENTです。 wsdlファイルは下記の通りです:
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns:tns="urn:demoServiceSource" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:ns2="http://demo" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" name="Regist" targetNamespace="urn:demoServiceSource">
  <types>
    <schema targetNamespace="http://demo" xmlns:tns="http://demo" xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://www.w3.org/2001/XMLSchema">
      <element name="inElement" type="tns:complexT"/>
      <element name="outElement" type="tns:simpleT"/>
      <complexType name="complexT">
        <sequence minOccurs="1" maxOccurs="unbounded">
          <element ref="tns:A"/>
        </sequence>
      </complexType>
      <element name="A" type="string"/>
      <simpleType name="simpleT">
        <restriction base="string">
          <length value="6"/>
        </restriction>
      </simpleType>
    </schema>
  </types>
  <message name="inputMsg">
    <part name="in" element="ns2:inElement"/>
  </message>
  <message name="outputMsg">
    <part name="out" element="ns2:outElement"/>
  </message>
  <portType name="Regist">
    <operation name="Operation">
      <input message="tns:inputMsg"/>
      <output message="tns:outputMsg"/>
    </operation>
  </portType>
  <binding name="RegistBinding" type="tns:Regist">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="Operation">
      <soap:operation soapAction=""/>
      <input>
        <soap:body use="literal" namespace="urn:demoServiceSource"/>
      </input>
      <output>
        <soap:body use="literal" namespace="urn:demoServiceSource"/>
      </output>
    </operation>
  </binding>
  <service name="Regist">
    <port name="RegistPort" binding="tns:RegistBinding">
      <soap:address location="http://localhost/Regist"/>
    </port>
  </service>
</definitions>
選択可能なルート要素の形式は以下の通りです。 その中で、{inputMsg}inElementと{outputMsg}outElementを指定された場合、各messageのpartタグをルートとして、ツリーを作成します。
Source Schemaファイルのルート要素は{inputMsg}inElement。
Target Schemaファイルのルート要素は{outputMsg}outElement。
次のように線を結びます。Sourceファイル中のA要素の値をTargetファイル中のoutElement要素に代入することを表します。


図1.3.4.1-1

生成されたXSLTSource Codeは次の通りです。


図1.3.4.1-2


1.3.4.2. 構成

表1.3.4.2-1
Sample_WSDL_DOCUMENT プロジェクト名
schema/source.wsdl ソーススキーマファイル
schema/target.wsdl ターゲットスキーマファイル
xsl/wsdl_element.xsl wsdl_element.xmfから生成したXSLファイル
wsdl_element.xmf {inputMsg}inElementをソーススキーマのルート要素として、{outputMsg}outElementをターゲットスキーマのルート要素として、作成したXMLマッピングファイル


1.3.4.3. 実行手順

  1. サンプルプロジェクト Sample_WSDL_DOCUMENT.zip をインポートします。
  2. ナビゲーターの中から、XMLマッピングファイル(wsdl_element.xmf)を選択してダブルクリックすると、XMLマッピングエディタが開きます。

1.3.4.4. 注意事項

特になし。