带有和不带有导入的WSDL`message`的命名空间

时间:2018-09-12 17:20:23

标签: wsdl

在定义和引用消息时,通常使用如下所示的定义的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类似吗?

0 个答案:

没有答案