Dil*_*lan 30 soap wsdl web-services
我正在研究SOAP Web服务,我对Web服务很陌生.在WSDL中,我在定义中的targetNamespace元素和包含在其中的命名空间中有点混淆targetNamespace.
<definitions .... targetNamespace=" " >
<xsd:schema>
<xsd:import namespace=" " schemaLocation=""/>
</xsd:schema>
Run Code Online (Sandbox Code Playgroud)
这两个元素是什么意思,我搜索了网络上的许多文章,我无法清楚地识别出这一点.有人可以解释一下吗?
这两个得到相同的值吗?
Nam*_*ian 26
WSDL文件中的目标名称空间将是与SOAP服务本身关联的名称空间.例如,我们有一个客户服务,名称空间就像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,它们非常重要.
小智 12
我将解释使用Java类比.
命名空间就像Java命名空间.每个xml元素都在一个名称空间中.提供targetNamespace意味着在其中定义的所有元素(和类型)都在该命名空间中.它类似于包中的所有Java类.
导入的xsd将具有自己的目标命名空间,这意味着xsd中的所有元素都将位于定义的命名空间中.
wsdl中的导入就像提供指定包的java导入一样.
我希望我很清楚,乐于助人:D.
targetNamespace 是一个XML Schema"工件".当我们与不同的团队合作时,用户定义的数据类型可能会发生名称冲突.这个schema元素的属性定义了命名空间即包.按照惯例,我们使用URI/URL,但我们可以使用任何字符串..
<?xml version="1.0" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="namespace">
...
</xs:schema>
Run Code Online (Sandbox Code Playgroud)
例如:
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/beans/spring-mvc.xsd" xmlns:mvc="http://www.springframework.org/schema/mvc"
// or if the schema exist in current directory we can declare as follows
xsi:schemaLocation="http://www.springframework.org/schema/mvc spring-mvc.xsd" xmlns:mvc="http://www.springframework.org/schema/mvc"
//for import xml schema
<xsd:import schemaLocation="http://localhost:9999/ws/hello?xsd=1" namespace="http://ws.peter.com/"/>
Run Code Online (Sandbox Code Playgroud)
注意: xsi:schemaLocation表示命名空间和URL用空格分隔.并且xmlns:mvc命名空间http://www.springframework.org/schema/mvc定义为mvc别名.
例如:在spring中,bean xml架构对于不同版本的spring-beans.xsd具有相同的targetNamespace.

命名空间类比:
+---------+--------------------------------------------------------+------------------------------+------------------------+
| Context | Name | Namespace identifier | Local name |
+---------+--------------------------------------------------------+------------------------------+------------------------+
| Path | /home/user/readme.txt | /home/user (path) | readme.txt (file name) |
| XML | xmlns:xhtml="http://www.w3.org/1999/xhtml"<xhtml:body> | http://www.w3.org/1999/xhtml | body |
| Java | java.util.Date | java.util | Date |
+---------+--------------------------------------------------------+------------------------------+------------------------+
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
69509 次 |
| 最近记录: |