Web服務說明:WSDL

每個服務都有WSDL (Web服務描述庫)檔案。 此XML檔案使用元語言來說明服務,並指定要連絡以執行服務的可用方法、引數及伺服器。

WSDL檔案產生

若要產生WSDL檔案,您必須從Web瀏覽器輸入下列URL:

https://<server>/nl/jsp/schemawsdl.jsp?schema=<schema>

替換為:

  • <server>: Adobe Campaign應用程式伺服器(nlserver web)
  • <schema>:結構描述識別金鑰(namespace:schema_name)

結構描述「xtk:queryDef」的「ExecuteQuery」方法範例

WSDL檔案是從URL產生:

https://localhost/nl/jsp/schemawsdl.jsp?schema=xtk:queryDef

WSDL說明首先會定義用來形成訊息的型別,這些訊息在「連線埠」中關聯,透過「連結」形成Web服務而連線到通訊協定。

類型

型別定義以XML結構描述為基礎。 在我們的範例中,"ExecuteQuery"方法以"s:string"字串和XML檔案(<s:complextype>)作為引數。 方法("ExecuteQueryResponse")的傳回值是XML檔案( <s:complextype>)。

<types>
<s:schema elementFormDefault="qualified" targetNamespace="urn:xtk:queryDef">
  <s:element name="ExecuteQuery">
    <s:complexType>
      <s:sequence>
        <s:element maxOccurs="1" minOccurs="1" name="sessiontoken" type="s:string"/>
        <s:element maxOccurs="1" minOccurs="1" name="entity">
          <s:complexType>
            <s:sequence>
              <s:any/>
            </s:sequence>
          </s:complexType>
        </s:element>
      </s:sequence>
    </s:complexType>
  </s:element>
  <s:element name="ExecuteQueryResponse">
    <s:complexType>
      <s:sequence>
        <s:element maxOccurs="1" minOccurs="1" name="pdomOutput">
          <s:complexType mixed="true">
            <s:sequence>
              <s:any/>
            </s:sequence>
          </s:complexType>
        </s:element>
      </s:sequence>
    </s:complexType>
  </s:element>

訊息

<message>說明要傳送的一組欄位的名稱和型別。 方法使用兩則訊息作為引數("ExecuteQueryIn")及傳回值("ExecuteQueryOut")來傳遞。

<message name="ExecuteQueryIn">
  <part element="tns:ExecuteQuery" name="parameters"/>
</message>

<message name="ExecuteQueryOut">
  <part element="tns:ExecuteQueryResponse" name="parameters"/>
</message>

連線埠型別

<porttype>會與由產生回應(「輸出」)的查詢(「輸入」)所觸發的「ExecuteQuery」作業上的訊息建立關聯。

<portType name="queryDefMethodsSoap">
  <operation name="ExecuteQuery">
    <input message="tns:ExecuteQueryIn"/>
    <output message="tns:ExecuteQueryOut"/>
  </operation>
</portType>

繫結

<binding>部分指定SOAP通訊協定( <soap:binding>)、HTTP中的資料傳輸(「傳輸」屬性的值)以及「ExecuteQuery」作業的資料格式。 SOAP信封的正文直接包含訊息區段,而不進行轉換。

<binding name="queryDefMethodsSoap" type="tns:queryDefMethodsSoap">
  <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
  <operation name="ExecuteQuery">
    <soap:operation soapAction="xtk:queryDef#ExecuteQuery" style="document"/>
    <input>
      <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:xtk:queryDef" use="literal"/>
    </input>
    <output>
      <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:xtk:queryDef" use="literal"/>
    </output>
  </operation>
</binding>

服務

<service>部分說明「XtkQueryDef」服務,其URI位於Adobe Campaign應用程式伺服器的URL上。

<service name="XtkQueryDef">
  <port binding="tns:queryDefMethodsSoap" name="queryDefMethodsSoap">
    <soap:address location="https://localhost/nl/jsp/soaprouter.jsp"/>
  </port>
</service>