在定义和引用消息时,通常使用如下所示的定义的targetNamespace:
<wsdl:definition targetNamespace="x" xmlns:tns="x">
<wsdl:message name="msg"></message>
<wsdl:portType name="port">
<wsdl:operation name="operation">
<wsdl:input message="tns:msg"/>
...
因此,消息名称"msg"
是在命名空间x
中定义的,该命名空间也是targetNamespace。
但是,如果我有WSDL导入,则可以指定一个不同的targetNamespace,并且可以使用该命名空间中的消息:
<wsdl:definition targetNamespace="x" xmlns:tns="x" xmlns:doc="y">
<wsdl:import location="doc.wsdl" namespace="y">
<wsdl:portType name="port">
<wsdl:operation name="operation">
<wsdl:input message="doc:msg"/>
...
带有一个额外的doc.wsdl
文件,用于在targetnamespace doc中定义消息:
<wsdl:definition targetNamespace="y" xmlns:tns="y" xmlns:doc="y">
<wsdl:message name="msg">...
在这种情况下,消息位于另一个名称空间中。
我现在想知道,合并两个WSDL文件(删除导入以生成独立版本)时,是否可以为消息保留该额外的名称空间?
<wsdl:message xmlns="y" name="msg">
或<wsdl:message name="doc:msg">
似乎不起作用,并且targetNamespace
没有message
属性。
我说的是WSDL 1.1,但我想它与2.0类似吗?