XSD和WSDL有什么区别

时间:2009-12-23 10:36:06

标签: web-services wsdl xsd

XML SchemaWSDL之间有什么区别?

我注意到的差异是WSDL包含XSDWSDL我们可以声明操作,但不能在XSD中声明操作。这是对的吗?

8 个答案:

答案 0 :(得分:195)

WSDL (Web服务描述语言)描述了您的服务及其操作 - 调用的服务是什么,它提供哪些方法,这些方法具有哪种参数和返回值?< / p>

这是对服务行为的描述 - 它的功能。

XSD (Xml架构定义)描述了由这些服务方法交换的复杂数据类型的静态结构。它描述了类型,它们的字段,对这些字段的任何限制(如最大长度或正则表达式)等等。

这是数据类型的描述,因此是服务的静态属性 - 它是关于数据的。

答案 1 :(得分:158)

XSD定义了一个模式,它定义了如何构建XML文档。您可以使用它来检查给定的XML文档是否有效,并遵循您在模式中列出的规则。

WSDL是一个描述Web服务的XML文档。它显示了哪些操作可用以及如何构建数据以发送到这些操作。

WSDL文档有一个关联的XSD,它显示了放入WSDL文档的有效内容。

答案 2 :(得分:54)

XSD:XML架构定义。

XML:可扩展标记语言。

WSDL:Web服务定义语言。

我不打算用技术术语回答。我的目标是初学者。

使用两种不同技术开发的两种不同应用程序之间进行通信并不容易。例如,芝加哥的一家公司可能使用Java开发Web应用程序,而纽约的另一家公司可能会在C#中开发应用程序,当这两家公司决定共享信息时,XML就会出现。它有助于在使用不同技术开发的两个不同应用程序之间存储和传输数据。注意:它不仅限于编程语言,请研究两个不同应用程序之间的信息传输。

XSD是架构定义。我的意思是,它告诉用户在这样的模式中开发他们的XML。请参阅下面的图片,并请密切关注&#34; load-on-startup&#34;元素及其整数类型。在XSD图像中,您可以看到它是&#34; load-on-startup&#34;的整数值。因此,当用户创建他/她的XML时,他们将int值传递给该特定元素。提醒一下,XSD是一种架构和风格,而XML是一种与另一个应用程序或系统进行通信的形式。人们必须看到XSD并以这种方式创建XML,否则它将无法与使用不同技术开发的另一个应用程序或系统进行通信。芝加哥的一家公司为德克萨斯州的一家公司提供XSD模板,用于以给定的XSD格式编写或生成XML。如果德克萨斯州的公司未能遵守XSD中提到的那些规则或架构,那么就无法期待芝加哥公司提供正确的信息。在上述故事之后还有很多工作要做,业余爱好者或新手在编写像我上面说的那样的东西时必须知道。如果您真的想知道以后会发生什么,那么最好与实际开发Web服务的高级软件工程师坐在一起。接下来是WSDL,请关注图像并尝试确定WSDL适合的位置。

*************** ========以下是部分XML图片========== ********* ****** XML image partial

*************** ========以下是部分XSD图片========== ********* ******

XSD image partial

*************** ========下面是部分WSDL图片======= *********** **

WSDL image partial

我必须为名为Book的Web服务创建一个示例WSDL。注意,它是一个XSD,但您必须将其称为WSDL(Web服务定义语言),因为它非常特定于Web服务。下面的WSDL(或者换句话说XSD)是为一个名为Book.java的类创建的,它创建了一个SOAP服务。 SOAP Web服务如何创建它是一个不同的主题。一个人必须编写一个Java类,在执行它之前创建一个Web服务,用户必须确保安装了Axis2 API并且Tomcat要托管Web服务。

作为服务商(允许其他人(客户)访问其系统中的信息或数据的服务商)实际上通过Web服务向客户端(需要使用服务器信息或数据的人)提供完整的数据访问权限,因为世界上没有任何公司愿意为外人公开他们的数据库。像我的公司一样,决定通过Web Services提供有关产品的一些信息,因此我们必须创建XSD模板并传递给想与我们合作的少数客户。他们必须编写一些代码来完全使用给定的XSD并进行Web服务调用以从服务器获取数据并将返回的数据转换为其合适的需求,然后在其网站上显示或发布有关产品的数据或信息。一个简单的例子是飞行票预订。航空公司将允许第三方在其网站上使用航班数据进行售票。但是还有更多的东西,它只是不让第三方机票代理商出售门票,会有同步和安全到位。如果没有同步,那么超过1个客户可能有100%的机会从各种来源购买相同的机票。

我希望专家能为我的答案做出贡献。对于新手或新手来说,理解XML,XSD然后处理Web服务真的很难。

答案 3 :(得分:10)

XSD用于验证文档,并包含有关XML的元数据,而WSDL用于描述Web服务的位置和操作。

答案 4 :(得分:3)

XSD(XML模式定义)定义XML文档中的元素。它可用于验证xml文档中的元素是否符合要放置内容的描述。 虽然wsdl是描述Web服务的特定类型的XML文档。 WSDL本身遵循XSD。

答案 5 :(得分:1)

WSDL - 它包含诸如web服务提供的方法之类的操作。这些方法可以接受简单的数据类型,如int,float等,以及复杂的数据类型,如对象,向量,数组等,因此将其映射到xml使用数据类型xsd。并且基于xsd,想要从不同平台访问web服务的用户可以适当地提供数据。

参考:ayazroomy-java.blogspot.com阅读有关webservice的基础知识。

答案 6 :(得分:0)

如果有人在寻找类比,这个答案可能会有所帮助。

WSDL就像&#39; SHOW TABLE STATUS&#39; mysql中的命令。它定义了应该是XML的一部分的所有元素(请求类型,响应类型,命中请求的URL的格式等)。根据定义我的意思是: 1)请求或响应的名称 2)什么应该被视为输入,什么应该被视为输出。

XSD就像mysql中的DESC命令。它告诉所有变量及其类型,请求和响应包含的内容。

答案 7 :(得分:0)

XSD是WSDL文件的架构。 XSD包含WSDL的数据类型。 XSD中声明的元素可以在WSDL文件中使用。 我们可以对照XSD来检查WSDL,以检出Web服务WSDL是否有效。