<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      XML Web 服務技術解析:WSDL 與 SOAP 原理、應用案例一覽

      XML Web服務是一種用于在網絡上發布、發現和使用應用程序組件的技術。它基于一系列標準和協議,如WSDL、SOAP、RDF和RSS。下面是一些相關的內容:

      • WSDL(Web服務描述語言):用于描述Web服務的基于XML的語言,定義了服務的接口、操作和消息格式

      • SOAP(簡單對象訪問協議):是一種基于XML的協議,用于在網絡上交換結構化信息。它定義了消息的格式和傳輸規則,并被廣泛用于Web服務之間的通信。

      • RDF(資源描述框架):是一種描述網絡資源的框架,使用XML表示。它提供了一種統一的方式來描述資源的屬性和關系,是萬維網上語義網的基礎之一。

      • RSS(真正簡單的信息聚合):是一種用于發布網站內容的XML格式。它允許用戶訂閱網站的更新,并可以自動獲取最新的內容。RSS文件通常用于博客、新聞網站等。

      XML Web服務的特點包括:

      • 自包含和自描述:Web服務能夠描述自己的接口和功能,使其易于使用和集成到其他應用程序中。

      • 基于開放協議:Web服務使用開放的協議和標準,如HTTP和SOAP,以確保不同平臺和系統之間的互操作性。

      • 可重用的組件:Web服務提供了可重用的應用程序組件,如貨幣轉換、天氣預報等,可以被其他應用程序調用和集成。

      • 連接現有軟件:Web服務可以連接現有的軟件系統,并提供一種統一的方式來交換數據和調用功能。

      在實際應用中,您可以通過創建和部署Web服務來實現各種功能和服務,從簡單的數據轉換到復雜的業務邏輯。

      XML WSDL

      WSDL 是 Web Services Description Language 的縮寫
      WSDL 用于描述 Web 服務
      WSDL 以 XML 形式編寫
      WSDL 文檔
      WSDL 文檔描述了一個 Web 服務。它指定了服務的位置以及服務的方法,使用以下主要元素:

      元素 描述
      定義 Web 服務 使用的 (XML Schema) 數據類型
      為每個操作定義數據元素
      描述可執行操作和所涉及的消息。
      為每個端口類型定義協議和數據格式

      WSDL 文檔的主要結構如下:

      `<definitions>`
      
      `<types>`
        數據類型定義........
      `</types>`
      
      `<message>`
        傳輸的數據定義....
      `</message>`
      
      `<portType>`
        一組操作......
      `</portType>`
      
      `<binding>`
        協議和數據格式規范....
      `</binding>`
      
      `</definitions>`
      

      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 定義了四種類型:

      類型 定義
      One-way 該操作可以接收消息,但不會返回響應
      Request-response 該操作可以接收請求,并將返回響應
      Solicit-response 該操作可以發送請求,并將等待響應
      Notification 該操作可以發送消息,但不會等待響應
      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" 操作允許使用 "newTermValues" 消息輸入新術語消息,其中包括輸入參數 "term" 和 "value"。但是,沒有為操作定義輸出。

      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" 的輸入消息,其中包含名為 "term" 的參數,并將返回一個名為 "getTermResponse" 的輸出消息,其中包含名為 "value" 的參數。

      WSDL 綁定到 SOAP

      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>`
      

      binding 元素具有兩個屬性 - nametype

      name 屬性(您可以使用任何名稱)定義綁定的名稱,type 屬性指向綁定的端口,在本例中為 "glossaryTerms" 端口。

      soap:binding 元素具有兩個屬性 - styletransport

      style 屬性可以是 "rpc" 或 "document"。在這種情況下,我們使用 documenttransport 屬性定義要使用的 SOAP 協議。在這種情況下,我們使用 HTTP

      operation 元素定義了 portType 公開的每個操作。

      對于每個操作,必須定義相應的 SOAP 動作。您還必須指定如何編碼輸入和輸出。在本例中,我們使用 "literal"。

      XML SOAP

      SOAP 是 Simple Object Access Protocol 的縮寫
      SOAP 是一種應用通信協議
      SOAP 是用于發送和接收消息的格式
      SOAP 是平臺無關的
      SOAP 基于 XML
      為什么使用 SOAP?
      Web 應用程序 能夠在 互聯網 上進行通信是非常重要的。

      應用程序 之間進行通信的最佳方式是通過 HTTP,因為 HTTP 受到所有 互聯網 瀏覽器和服務器的支持。SOAP 就是為了實現這一點而創建的。

      SOAP 提供了一種在運行在不同操作系統、使用不同技術和編程語言的 應用程序 之間進行通信的方式。

      SOAP 構建塊
      SOAP 消息是一個普通的 XML 文檔,包含以下元素:

      一個 Envelope 元素,用于標識 XML 文檔作為 SOAP 消息
      一個包含頭信息的 Header 元素
      一個包含調用和響應信息的 Body 元素
      一個包含錯誤和狀態信息的 Fault 元素
      以上所有元素都聲明在 SOAP 信封的默認命名空間中

      語法規則
      以下是一些重要的語法規則:

      SOAP 消息必須使用 XML 進行編碼
      SOAP 消息必須使用 SOAP Envelope 命名空間
      SOAP 消息不能包含 DTD 引用
      SOAP 消息不能包含 XML 處理指令

      該命名空間將 Envelope 定義為 SOAP Envelope

      如果使用了不同的命名空間,應用程序 將生成錯誤并丟棄消息。

      encodingStyle 屬性
      encodingStyle 屬性用于定義文檔中使用的數據類型。該屬性可以出現在任何 SOAP 元素上,并應用于該元素及其所有子元素。

      SOAP 消息沒有默認編碼。

      SOAP Header 元素
      可選的 SOAP Header 元素包含關于 SOAP 消息的應用程序特定信息(如身份驗證、支付等)。

      如果存在 Header 元素,則必須將其放在 Envelope 元素的第一個子元素位置。

      注意:Header 元素的所有直接子元素必須是命名空間限定的。

      SOAP 在默認命名空間中定義了三個屬性。這些屬性是:mustUnderstandactorencodingStyle

      SOAP Header 中定義的屬性定義了接收者應該如何處理 SOAP 消息。

      mustUnderstand 屬性
      SOAP mustUnderstand 屬性可用于指示接收者是否必須處理頭部條目。

      如果將 mustUnderstand="1" 添加到 Header 元素的子元素中,表示處理 Header 的接收者必須識別該元素。如果接收者不識別該元素,則在處理 Header 時將失敗。

      語法
      soap:mustUnderstand="0|1"

      actor 屬性
      SOAP 消息可能通過沿著消息路徑傳遞不同的端點從發送方傳遞到

      接收方。然而,SOAP 消息的不是所有部分都可能是針對最終端點的,而是可能針對消息路徑上的一個或多個端點。

      SOAP actor 屬性用于將 Header 元素定向到特定端點。

      語法
      soap:actor="URI"

      encodingStyle 屬性
      encodingStyle 屬性用于定義文檔中使用的數據類型。該屬性可以出現在任何 SOAP 元素上,它將應用于該元素的內容及其所有子元素。

      SOAP 消息沒有默認編碼。

      語法
      soap:encodingStyle="URI"

      SOAP Body 元素
      必需的 SOAP Body 元素包含了消息的實際 SOAP 消息,用于消息的最終端點。

      SOAP Body 元素的直接子元素可以是命名空間限定的。

      示例

      <soap:Envelope

      </m:GetPrice>
      </soap:Body>

      </soap:Envelope>
      上面的示例請求了蘋果的價格。請注意,上面的 m:GetPriceItem 元素是應用程序特定的元素。它們不屬于 SOAP 命名空間

      SOAP Fault 元素
      可選的 SOAP Fault 元素用于指示錯誤消息。

      SOAP Fault 元素包含了 SOAP 消息的錯誤和狀態信息。

      如果存在 Fault 元素,它必須作為 Body 元素的子元素出現。Fault 元素只能在 SOAP 消息中出現一次。

      SOAP Fault 元素具有以下子元素:

      子元素 描述
      <faultcode> 用于標識錯誤的代碼
      <faultstring> 錯誤的人類可讀的解釋
      <faultactor> 導致錯誤發生的信息
      <detail> 包含與 Body 元素相關的應用程序特定錯誤信息

      SOAP 錯誤代碼
      當描述錯誤時,faultcode 元素中必須使用以下定義的 faultcode 值:

      錯誤 描述
      VersionMismatchSOAP Envelope 元素的命名空間中找到無效的命名空間
      MustUnderstand Header 元素的立即子元素,mustUnderstand 屬性設置為 "1",未被理解
      Client 消息格式不正確或包含不正確的信息
      Server 服務器出現問題,因此消息無法繼續進行

      HTTP 協議
      HTTP 通過 TCP/IP 進行通信。HTTP 客戶端使用 TCP 連接到 HTTP 服務器。建立連接后,客戶端可以向服務器發送 HTTP 請求消息:

      POST /item HTTP/1.1
      Host: 189.123.255.239
      Content-Type: text/plain
      Content-Length: 200
      

      然后,服務器處理請求并將 HTTP 響應發送回客戶端。響應包含指示請求狀態的狀態代碼:

      200 OK
      Content-Type: text/plain
      Content-Length: 200
      

      在上面的示例中,服務器返回了狀態代碼 200。這是 HTTP 的標準成功代碼。

      如果服務器無法解碼請求,則可能返回以下內容:

      400 Bad Request
      Content-Length: 0
      

      SOAP 綁定

      SOAP 規范定義了 SOAP 消息的結構,但未定義它們如何交換。這一空白由所謂的 "SOAP 綁定" 填補。SOAP 綁定是允許使用傳輸協議有效地交換 SOAP 消息的機制。

      大多數 SOAP 實現提供了常見傳輸協議的綁定,例如 HTTPSMTP

      HTTP 是同步的并且被廣泛使用。SOAP HTTP 請求至少指定了兩個 HTTP 頭部:Content-TypeContent-Length

      SMTP 是異步的,通常在最后一種情況或特殊情況下使用。

      JavaSOAP 實現通常為 JMSJava 消息系統)協議提供了特定的綁定。

      Content-Type

      SOAP 請求和響應的 Content-Type 頭部定義了消息的 MIME 類型以及用于請求或響應的 XML 主體的字符編碼(可選)。

      Content-Type: MIMEType; charset=character-encoding
      

      示例

      POST /item HTTP/1.1
      Content-Type: application/soap+xml; charset=utf-8
      

      Content-Length

      SOAP 請求和響應的 Content-Length 頭部指定了請求或響應的主體中的字節數。

      Content-Length: bytes
      

      示例

      POST /item HTTP/1.1
      Content-Type: application/soap+xml; charset=utf-8
      Content-Length: 250
      

      最后

      為了方便其他設備和平臺的小伙伴觀看往期文章:

      微信公眾號搜索:Let us Coding,關注后即可獲取最新文章推送

      看完如果覺得有幫助,歡迎點贊、收藏、關注

      posted @ 2024-05-31 21:48  小萬哥丶  閱讀(972)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 舟曲县| 性奴sm虐辱暴力视频网站| 97色伦97色伦国产| 亚洲AV无码AV在线影院| 麻豆精产国品一二三产| 久久精品无码一区二区小草| 亚洲精品无码日韩国产不卡av| 中文字幕日韩国产精品| 日韩在线视频观看免费网站| 精品久久人人妻人人做精品| 国产精品久久自在自线不卡| 天天躁日日躁狠狠躁中文字幕| 97se亚洲综合自在线| 元氏县| 国产成人av大片大片| 国产成人精品永久免费视频| 国产卡一卡二卡三免费入口| 国产福利在线观看免费第一福利| 一本一道av无码中文字幕麻豆| 国产白丝无码免费视频| 中国女人内谢69xxxx| 精品亚洲没码中文字幕| 99久久er热在这里只有精品99| 悠悠人体艺术视频在线播放| 成人免费AA片在线观看| 东京热一精品无码av| 国产成人欧美日本在线观看| 国内自拍第一区二区三区| 黑人巨大videos极度另类| 中文字幕成人精品久久不卡| 起碰免费公开97在线视频| 国内精品久久久久电影院| 免费观看全黄做爰大片| 伊人无码精品久久一区二区| 国产成人高清亚洲综合| 亚洲国产婷婷综合在线精品| 国产一区二区日韩在线| 亚洲精品97久久中文字幕无码| 国产果冻豆传媒麻婆精东| 久久综合免费一区二区三区| 国产精品人人爽人人做我的可爱|