【问题标题】:What is the difference between XSD and WSDL?XSD 和 WSDL 有什么区别?
【发布时间】:2009-12-23 10:36:05
【问题描述】:

XML SchemaWSDL 有什么区别?

我注意到的区别是WSDL 包含XSD 并且在WSDL 中我们可以声明操作,但不能在XSD 中。对吗?

【问题讨论】:

    标签: web-services wsdl xsd


    【解决方案1】:

    WSDL(Web 服务描述语言)描述你的服务和它的操作——服务叫什么,它提供了哪些方法,这些方法有什么样的参数和返回值?

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

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

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

    【讨论】:

    • 这是在 WSDL 上下文中解释 XSD 的更好答案,而不仅仅是两者之间的区别。要补充的是,XSD 定义是 标记中 WSDL 的一部分。
    • 如果我不需要复杂的数据定义,我可以有一个没有 XSD 的 WSDL?
    【解决方案2】:

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

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

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

    【讨论】:

    • Paolo 的答案是正确的。只是增强它。因为 WSDL 实际上是 XML,可能有也可能没有 XSD 来验证它的结构。关联的 XSD 可以是单独的文件并导入到 WSDL 中,或者可以使用 标签将完整的 XSD 内嵌到 WSDL 文件本身中。更多详细信息ibm.com/developerworks/webservices/library/ws-tip-imports
    • 如果它们几乎是两个独立的东西,为什么当我在 Netbeans 中创建一个 Web 服务时,我会自动在 URL 中得到一个 ?xsd=1
    【解决方案3】:

    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图像==========********* ******

    ***************========下面是部分XSD图像==========********* ******

    ***************========下面是部分 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 服务调用以从服务商获取数据并将返回的数据转换为适合他们的需求,然后在他们的网站上显示或发布有关产品的数据或信息。一个简单的例子是 FLIGHT Ticket 预订。航空公司将允许第三方使用其网站上的航班数据进行机票销售。但是还有更多的东西,只是不让第三方机票代理卖票,会有同步和安全。如果没有同步,则有 100% 的机会超过 1 位客户可能从各种来源购买同一张机票。

    我希望专家能为我的答案做出贡献。对于新手或新手来说,理解 XML、XSD 并在 Web 服务上工作真的很困难。

    【讨论】:

    • 至少它让我知道了这些技术是如何工作的
    • 看起来内容丰富! WSDL 是“Web 服务描述语言”
    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

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

      【讨论】:

        【解决方案6】:

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

        请参阅:ayazroomy-java.blogspot.com 以了解 Web 服务的基础知识。

        【讨论】:

          【解决方案7】:

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

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

          XSD 类似于 mysql 中的 DESCRIBE 命令。它告诉请求和响应包含的所有变量及其类型。

          【讨论】:

          • mysql中的DESC不是用来排序的吗?然而 DESCRIBE 更像它。
          【解决方案8】:

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

          【讨论】:

            猜你喜欢
            • 2013-06-13
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-09-17
            • 2014-10-06
            • 2011-05-29
            • 2012-07-13
            • 2014-02-26
            相关资源
            最近更新 更多