web-services - WSDL 中的 targetNamespace 和命名空间

标签 web-services soap wsdl

我正在研究 SOAP Web 服务,而且我对 Web 服务非常陌生。在 WSDL 中,我对 targetNamespace 有点困惑。定义中的元素和namespace包含在 xsd:schema 中.

<definitions .... targetNamespace=" " >

<xsd:schema>
<xsd:import namespace=" " schemaLocation=""/>
</xsd:schema>

这两个元素是什么意思,我在网上搜索了很多文章,但我无法清楚地识别出这一点。任何人都可以请解释我吗?

这两个得到相同的值吗?

最佳答案

WSDL 文件中的目标 namespace 将是与 SOAP 服务本身相关联的 namespace 。例如,我们有一个客户服务,命名空间类似于 http://www.acme.com/Customer/V1/CustomerService .

XSD 导入部分是您指定要导入的 XSD 的命名空间的地方。 XSD 文件将包含服务将发送的数据,即它包含将被序列化为 XML 并作为请求和响应上下发送的对象定义。 XSD 还可以包含 WSDL 将公开的操作。

一个 WSDL 可以导入一个或多个 XSD 文件,每个 XSD 都有自己的命名空间。 XSD 将包含一个命名空间,例如:

  • http://www.acme.com/Customer/V1/GetCustomerRequest对于 GetCustomerRequest,这将定义 GetCustomerRequest 操作的数据结构。
  • http://www.acme.com/Customer/V1/CustomerObject对于 CustomerObject,这将定义 CustomerObject 的数据结构。

  • 命名空间有点像 Java 包,它们只是允许您定义对象的层次结构。需要理解的一件重要事情是,您可能有两个 Customer 对象,一个属于您的销售系统,另一个属于您的 CRM 系统。通过将它们放置在单独的命名空间中,您将能够在同一服务中使用这两个 Customer 对象,只要它们具有唯一的命名空间。

    通常,这些命名空间也将构成 SOA 目录的一部分,定义它们将成为您的 SOA 治理标准的一部分。如果您想成功地进行 SOA,它们很重要。

    关于web-services - WSDL 中的 targetNamespace 和命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28008214/

    相关文章:

    android - 使用 edittext 和按钮从 android eclipse 使用 web 服务

    c# - 将派生类作为基类传递给 Web 服务方法

    php - 在 PHP 7.4 中生成 SOAP 数组

    java - 没有端点 java 异常

    java - 如何在 MySQL 数据库中保留 SOAP 消息 - 使用 Axis Client

    perl - 如何更改在 perl 中生成 SOAP::Lite 请求的 xml 元素的顺序?

    web-services - 调用 GetListItems Web 服务的 SharePoint SoapServerException

    java - wsgen 使用 @WebMethod 生成 WSDL 但忽略 @WebParam

    api - 如何使用 WSDL 格式的 Ideone API

    java - 在 Eclipse 中生成 RESTful Web 服务客户端