我正在学习SOAP Web服务,我对Web服务真的很新.在WSDL中,我在定义中的targetNamespace元素和xsd:schema中包含的命名空间中有一点混乱.
<definitions .... targetNamespace=" " > <xsd:schema> <xsd:import namespace=" " schemaLocation=""/> </xsd:schema>
这两个元素是什么意思,我在网络上搜索了许多文章,我无法清楚地识别这一点.有人可以解释一下吗
这两个是否得到相同的值?
解决方法
WSDL文件中的目标命名空间将是与SOAP服务本身相关联的名称空间.例如,我们有一个客户服务,命名空间将像http://www.acme.com/Customer/V1/CustomerService.
XSD导入部分指定您要导入的XSD的命名空间. XSD文件将包含服务将发送的数据,即它包含将被序列化为XML并且作为请求和响应上下传送的对象定义. XSD还可以包含WSDL暴露的操作.
WSDL可以导入一个或多个XSD文件,每个XSD都有自己的命名空间. XSD将包含一个命名空间,如:
> GetCustomerRequest> http://www.acme.com/Customer/V1/GetCustomerRequest这将定义GetCustomerRequest操作的数据结构.
> http://www.acme.com/Customer/V1/CustomerObject对于CustomerObject,这将定义CustomerObject的数据结构.
命名空间有点像Java包,它们只允许您定义对象的层次结构.要了解的一件重要的事情是,您可能有两个客户对象属于您的销售系统,例如属于您的CRM系统.通过将它们放在单独的命名空间中,只要具有唯一的命名空间,就可以在同一服务中使用两个Customer对象.
通常,这些命名空间也将构成SOA目录的一部分,并将它们定义为SOA治理标准的一部分.如果您想成功做SOA,它们很重要.