sự khác biệt giữa XSD và WSDL là gì


177

Sự khác biệt giữa một XML Schemavà là WSDLgì?

Sự khác biệt tôi nhận thấy là WSDLcó chứa XSDvà trong WSDLchúng ta có thể khai báo các hoạt động, nhưng không phải trong XSD. Đúng không?

Câu trả lời:


176

XSD định nghĩa một lược đồ là định nghĩa về cách cấu trúc một tài liệu XML. Bạn có thể sử dụng nó để kiểm tra xem một tài liệu XML đã cho có hợp lệ không và tuân theo các quy tắc bạn đã đặt ra trong lược đồ.

WSDL là một tài liệu XML mô tả một dịch vụ web. Nó cho thấy các hoạt động có sẵn và cách dữ liệu nên được cấu trúc để gửi đến các hoạt động đó.

Các tài liệu WSDL có XSD liên quan cho thấy những gì hợp lệ để đưa vào tài liệu WSDL.


15
Câu trả lời của Paolo là chính xác. Chỉ cần tăng cường nó. Vì WSDL thực sự là XML và có thể có hoặc không có XSD để xác thực cấu trúc của nó. Associated XSD có thể là một tập tin riêng biệt và nhập khẩu trong WSDL hoặc XSD đầy đủ có thể được nhúng nội tuyến trong WSDL tập tin bản thân sử dụng <WSDL: các loại> thẻ .Để biết thêm chi tiết ibm.com/developerworks/webservices/library/ws-tip-imports
siêu tân tinh

Nếu chúng có khá nhiều thứ riêng biệt, tại sao khi tôi tạo một dịch vụ web chẳng hạn, trong Netbeans, tôi sẽ ?xsd=1tự động nhận được một URL?
CodyBugstein

211

WSDL (Ngôn ngữ mô tả dịch vụ web) mô tả dịch vụ của bạn và các hoạt động của nó - dịch vụ được gọi là gì, nó cung cấp phương thức nào, loại tham số và giá trị trả về nào mà các phương thức này có?

Đó là một mô tả về hành vi của dịch vụ - đó là chức năng.

XSD (Định nghĩa lược đồ Xml) mô tả cấu trúc tĩnh của các loại dữ liệu phức tạp được trao đổi bằng các phương thức dịch vụ đó. Nó mô tả các loại, các trường của chúng, bất kỳ hạn chế nào trên các trường đó (như độ dài tối đa hoặc mẫu biểu thức chính quy), v.v.

Đó là một mô tả về kiểu dữ liệu và do đó các thuộc tính tĩnh của dịch vụ - đó là về dữ liệu.


25
Đây là một câu trả lời tốt hơn nhiều để giải thích XSD trong bối cảnh của WSDL và không chỉ là sự khác biệt giữa hai. Để thêm, các định nghĩa XSD là một phần của WSDL trong thẻ <wsdl: type>.
airboss

Vì vậy, tôi có thể có WSDL mà không cần XSD nếu tôi không cần định nghĩa dữ liệu phức tạp?
esseara

61

XSD: Định nghĩa lược đồ XML.

XML: Ngôn ngữ đánh dấu có thể mở rộng.

WSDL: Ngôn ngữ định nghĩa dịch vụ web.

Tôi sẽ không trả lời về mặt kỹ thuật. Tôi đang nhắm mục tiêu giải thích này ở người mới bắt đầu.

Không dễ để giao tiếp giữa hai ứng dụng khác nhau được phát triển bằng hai công nghệ khác nhau. Ví dụ, một công ty ở Chicago có thể phát triển ứng dụng web bằng Java và một công ty khác ở New York có thể phát triển ứng dụng bằng C # và khi hai công ty này quyết định chia sẻ thông tin thì XML sẽ xuất hiện. Nó giúp lưu trữ và vận chuyển dữ liệu giữa hai ứng dụng khác nhau được phát triển bằng các công nghệ khác nhau. Lưu ý: Không giới hạn ở ngôn ngữ lập trình, vui lòng nghiên cứu về việc truyền tải thông tin giữa hai ứng dụng khác nhau.

XSD là một định nghĩa lược đồ. Ý tôi là, nó bảo người dùng phát triển XML của họ trong một lược đồ như vậy. Vui lòng xem hình ảnh bên dưới và vui lòng xem kỹ phần tử "load-on-startup" và loại của nó là số nguyên. Trong hình ảnh XSD, bạn có thể thấy nó có nghĩa là giá trị nguyên cho "tải khi khởi động" và do đó khi người dùng tạo XML của mình, họ đã chuyển một giá trị int cho phần tử cụ thể đó. Xin nhắc lại, XSD là một lược đồ và kiểu trong khi XML là một hình thức để giao tiếp với một ứng dụng hoặc hệ thống khác. Người ta phải xem XSD và tạo XML theo cách như vậy nếu không nó sẽ không giao tiếp với một ứng dụng hoặc hệ thống khác được phát triển với một công nghệ khác. Một công ty ở Chicago cung cấp một mẫu XSD cho một công ty ở Texas để viết hoặc tạo XML của họ theo định dạng XSD đã cho. Nếu công ty ở Texas không tuân thủ các quy tắc hoặc lược đồ được đề cập trong XSD thì không thể mong đợi thông tin chính xác từ công ty ở Chicago. Có rất nhiều việc phải làm sau câu chuyện nói trên, mà một người nghiệp dư hoặc người mới phải biết trong khi viết mã cho một số điều như tôi đã nói ở trên. Nếu bạn thực sự muốn biết những gì xảy ra sau đó thì tốt hơn là ngồi với các kỹ sư phần mềm cao cấp, những người thực sự phát triển dịch vụ web. Tiếp đến là WSDL, vui lòng theo dõi các hình ảnh và cố gắng tìm ra WSDL sẽ phù hợp với nơi nào. Nếu bạn thực sự muốn biết những gì xảy ra sau đó thì tốt hơn là ngồi với các kỹ sư phần mềm cao cấp, những người thực sự phát triển dịch vụ web. Tiếp đến là WSDL, vui lòng theo dõi các hình ảnh và cố gắng tìm ra WSDL sẽ phù hợp với nơi nào. Nếu bạn thực sự muốn biết những gì xảy ra sau đó thì tốt hơn là ngồi với các kỹ sư phần mềm cao cấp, những người thực sự phát triển dịch vụ web. Tiếp đến là WSDL, vui lòng theo dõi các hình ảnh và cố gắng tìm ra WSDL sẽ phù hợp với nơi nào.

****** / TÌM HIỂU ======== Dưới đây là một phần hình ảnh XML ========== ************ *** Một phần hình ảnh XML

****** / TÌM HIỂU ======== Dưới đây là một phần hình ảnh XSD ========== ****** / 4 ***

Hình ảnh XSD một phần

****** / TÌM HIỂU ======== Dưới đây là một phần hình ảnh WSDL ======= ****** / 4

Hình ảnh WSDL một phần

Tôi đã phải tạo một WSDL mẫu cho một dịch vụ web có tên là Book. Lưu ý, đó là XSD nhưng bạn phải gọi nó là WSDL (Ngôn ngữ định nghĩa dịch vụ web) vì nó rất đặc trưng cho Dịch vụ web. WSDL ở trên (hay nói cách khác là XSD) được tạo cho một lớp có tên Book.java và nó đã tạo ra một dịch vụ SOAP. Làm thế nào dịch vụ web SOAP tạo ra nó là một chủ đề khác nhau. Người ta phải viết một lớp Java và trước khi thực hiện nó tạo ra như một dịch vụ web, người dùng phải đảm bảo API Axis2 được cài đặt và Tomcat để lưu trữ dịch vụ web.

Là một người phục vụ (người cho phép người khác (khách hàng) truy cập thông tin hoặc dữ liệu từ hệ thống của họ) thực sự mang lại cho khách hàng (người cần sử dụng thông tin hoặc dữ liệu của người phục vụ) truy cập hoàn toàn vào dữ liệu thông qua Dịch vụ web, bởi vì không có công ty nào trên trái đất sẵn sàng để lộ Cơ sở dữ liệu của họ cho người ngoài. Giống như công ty của tôi, đã quyết định cung cấp một số thông tin về các sản phẩm thông qua Dịch vụ web, do đó chúng tôi phải tạo mẫu XSD và truyền lại cho một số khách hàng muốn làm việc với chúng tôi. Họ phải viết một số mã để sử dụng hoàn toàn XSD đã cho và thực hiện các cuộc gọi Dịch vụ web để lấy dữ liệu từ người phục vụ và chuyển đổi dữ liệu trở lại theo yêu cầu phù hợp của họ và sau đó hiển thị hoặc xuất bản dữ liệu hoặc thông tin về sản phẩm trên trang web của họ. Một ví dụ đơn giản sẽ là đặt vé FLIGHT. Một hãng hàng không sẽ cho phép các bên thứ ba sử dụng dữ liệu chuyến bay trên trang web của họ để bán vé. Nhưng một lần nữa có nhiều hơn thế, chỉ cần không cho đại lý vé máy bay của bên thứ ba bán vé, sẽ có đồng bộ hóa và bảo mật tại chỗ. Nếu không có đồng bộ thì có 100% cơ hội hơn 1 khách hàng có thể mua cùng một vé máy bay từ nhiều nguồn khác nhau.

Tôi hy vọng các chuyên gia sẽ đóng góp cho câu trả lời của tôi. Thực sự rất khó cho người mới hoặc người mới hiểu XML, XSD và sau đó làm việc trên Dịch vụ web.


ít nhất nó đã cho tôi một gợi ý về cách thức các công nghệ này hoạt động
M BạchMburu

10

XSD là để xác thực tài liệu và chứa siêu dữ liệu về XML trong khi WSDL là để mô tả vị trí và hoạt động của dịch vụ web.


3

XSD (định nghĩa lược đồ XML) định nghĩa phần tử trong tài liệu XML. Nó có thể được sử dụng để xác minh xem các thành phần trong tài liệu xml có tuân thủ mô tả trong đó nội dung sẽ được đặt hay không. Trong khi wsdl là loại tài liệu XML cụ thể mô tả dịch vụ web. Bản thân WSDL tuân thủ XSD.


1

WSDL - Nó chứa Hoạt động như Phương thức mà dịch vụ web cung cấp. Và phương thức này có thể chấp nhận các kiểu dữ liệu đơn giản như int, float, v.v. và các kiểu dữ liệu phức tạp như đối tượng, vectơ, mảng, v.v. đã sử dụng. và dựa trên xsd, người dùng muốn truy cập dịch vụ web từ nền tảng khác nhau có thể cung cấp dữ liệu phù hợp.

Tham khảo: ayazroomy-java.blogspot.com để đọc về những điều cơ bản của dịch vụ web.


0

XSD là lược đồ cho tệp WSDL. XSD chứa các kiểu dữ liệu cho WSDL. Phần tử được khai báo trong XSD là hợp lệ để sử dụng trong tệp WSDL. Chúng tôi có thể Kiểm tra WSDL với XSD để kiểm tra dịch vụ web WSDL có hợp lệ hay không.


0

Nếu ai đó đang tìm kiếm sự tương tự, câu trả lời này có thể hữu ích.

WSDL giống như lệnh 'SHOW TABLE STATUS' trong mysql. Nó xác định tất cả các yếu tố (loại yêu cầu, loại phản hồi, định dạng của URL để đạt yêu cầu, v.v.), là một phần của XML. Theo định nghĩa tôi có nghĩa là: 1) Tên của yêu cầu hoặc phản hồi 2) Cái gì nên được coi là đầu vào, cái gì nên được coi là đầu ra.

XSD giống như lệnh DESCRIBE trong mysql. Nó cho biết tất cả các biến và loại của chúng, một yêu cầu và phản hồi chứa gì.


Không phải là DESC trong mysql được sử dụng cho thứ tự sắp xếp sao? MÔ TẢ tuy nhiên giống như nó hơn.
Mang
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.