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>