我正在研究 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/