簡體   English   中英

XSD 和 WSDL 有什么區別?

[英]What is the difference between XSD and WSDL?

XML SchemaWSDL之間有什么區別?

我注意到的不同之處在於WSDL包含XSD並且在WSDL我們可以聲明操作,但不能在XSD聲明。 那是正確的嗎?

WSDL (Web 服務描述語言)描述您的服務及其操作 - 服務被稱為什么,它提供哪些方法,這些方法具有哪些類型的參數和返回值?

它是對服務行為的描述 - 它是功能。

XSD (Xml Schema Definition)描述了由這些服務方法交換的復雜數據類型的靜態結構。 它描述了類型、它們的字段、對這些字段的任何限制(如最大長度或正則表達式模式)等等。

它是對數據類型的描述,因此是服務的靜態屬性 - 它與數據有關。

XSD 定義了一個架構,它定義了 XML 文檔的結構。 您可以使用它來檢查給定的 XML 文檔是否有效並遵循您在架構中制定的規則。

WSDL 是描述 Web 服務的 XML 文檔。 它顯示了哪些操作可用以及應如何構造數據以發送到這些操作。

WSDL 文檔有一個關聯的 XSD,用於顯示可以放入 WSDL 文檔的有效內容。

XSD:XML 架構定義。

XML:可擴展標記語言。

WSDL:Web 服務定義語言。

我不會用技術術語來回答。 我是針對初學者的這個解釋。

在使用兩種不同技術開發的兩個不同應用程序之間進行通信並不容易。 例如,芝加哥的一家公司可能使用 Java 開發 Web 應用程序,而紐約的另一家公司可能使用 C# 開發應用程序,當這兩家公司決定共享信息時,XML 就出現了。 它有助於在使用不同技術開發的兩個不同應用程序之間存儲和傳輸數據。 注意:不限於編程語言,請研究兩個不同應用程序之間的信息傳輸。

XSD 是模式定義。 我的意思是,它告訴用戶在這樣的模式中開發他們的 XML。 請看下面的圖片,請密切注意“load-on-startup”元素及其整數類型。 在 XSD 圖像中,您可以看到它是“啟動時加載”的整數值,因此當用戶創建他/她的 XML 時,他們將一個 int 值傳遞給該特定元素。 提醒一下,XSD 是一種模式和樣式,而 XML 是一種與另一個應用程序或系統進行通信的形式。 必須以這種方式查看 XSD 並創建 XML,否則它將無法與使用不同技術開發的另一個應用程序或系統進行通信。 芝加哥的一家公司為德克薩斯州的一家公司提供了一個 XSD 模板,用於以給定的 XSD 格式編寫或生成他們的 XML。 如果德克薩斯州的公司未能遵守 XSD 中提到的那些規則或模式,那么就不可能期望芝加哥公司提供正確的信息。 在上述故事之后還有很多事情要做,業余愛好者或新手在為我上面所說的某些事情編碼時必須了解這些。 如果您真的想知道以后會發生什么,那么最好與實際開發 Web 服務的高級軟件工程師坐在一起。 接下來是 WSDL,請按照圖片並嘗試找出 WSDL 適合的位置。

***************========以下是部分 XML 圖像 ============************ ***XML 圖像部分

***************========以下是部分 XSD 圖像 ==========************ ***

XSD 圖像部分

***************========以下是部分 WSDL 圖像 ========*************

WSDL 圖像部分

我必須為名為 Book 的 Web 服務創建一個示例 WSDL。 請注意,它是一個 XSD,但您必須將其稱為 WSDL(Web 服務定義語言),因為它非常特定於 Web 服務。 上面的 WSDL(或換句話說 XSD)是為一個名為 Book.java 的類創建的,它已經創建了一個 SOAP 服務。 SOAP Web 服務如何創建它是一個不同的主題。 必須編寫一個 Java 類,並在執行它之前將其創建為 Web 服務,用戶必須確保已安裝 Axis2 API 並且托管 Web 服務的 Tomcat 已就位。

作為服務商(允許其他人(客戶)從他們的系統訪問信息或數據的人)實際上讓客戶(需要使用服務商信息或數據的人)通過 Web 服務完全訪問數據,因為沒有公司在地球願意向外界公開他們的數據庫。 像我的公司一樣,決定通過 Web 服務提供有關產品的一些信息,因此我們必須創建 XSD 模板並將其傳遞給希望與我們合作的少數客戶。 他們必須編寫一些代碼來充分利用給定的 XSD 並進行 Web 服務調用以從服務商獲取數據並將返回的數據轉換為合適的需求,然后在他們的網站上顯示或發布有關產品的數據或信息。 一個簡單的例子是機票預訂。 航空公司將允許第三方使用其網站上的航班數據進行機票銷售。 但還有很多,只是不讓第三方機票代理出售機票,會有同步和安全到位。 如果沒有同步,那么 100% 以上的客戶可能會從不同來源購買同一張機票。

我希望專家們為我的答案做出貢獻。 對於新手或新手來說,理解 XML、XSD 並在 Web 服務上工作真的很困難。

XSD 用於驗證文檔,並包含有關 XML 的元數據,而 WSDL 用於描述 Web 服務位置和操作。

XSD(XML 模式定義)定義 XML 文檔中的元素。 它可用於驗證 xml 文檔中的元素是否符合要放置內容的描述。 wsdl 是描述 Web 服務的特定類型的 XML 文檔。 WSDL 本身遵循 XSD。

WSDL - 它包含諸如 Web 服務提供的方法之類的操作。這些方法可以接受簡單數據類型(例如 int、float 等)和復雜數據類型(例如對象、向量、數組等),因此將其映射到 xml 數據類型 xsd 是使用。 並且基於xsd,想要從不同平台訪問webservice的用戶可以適當地提供數據。

請參閱:ayazroomy-java.blogspot.com 以閱讀有關 Web 服務的基礎知識。

如果有人正在尋找類比,這個答案可能會有所幫助。

WSDL 就像 mysql 中的“SHOW TABLE STATUS”命令。 它定義了所有應該是 XML 一部分的元素(請求類型、響應類型、命中請求的 URL 格式等)。 根據定義,我的意思是:1)請求或響應的名稱 2)什么應該被視為輸入,什么應該被視為輸出。

XSD 就像 mysql 中的 DESCRIBE 命令。 它說明所有變量及其類型、請求和響應包含的內容。

XSD 是 WSDL 文件的架構。 XSD 包含 WSDL 的數據類型。 在 XSD 中聲明的元素在 WSDL 文件中使用是有效的。 我們可以根據 XSD 檢查 WSDL 來檢查 Web 服務 WSDL 是否有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM