0

我是 WSDL 语法的新手,所以我只是以非常基本的方式使用它,例如

<message name="ping_Request">
</message>
<message name="ping_Response">
  <part name="response" type="xsd:string" />
</message>

<message name="auth_Request">
  <part name="username" type="xsd:string" />
  <part name="password" type="xsd:string" />
</message>
<message name="auth_Response">
  <part name="response" type="xsd:string" />
</message>

<portType name="ping_PortType">
  <operation name="ping">
    <input message="tns:ping_Request" />
    <output message="tns:ping_Response" />
  </operation>
</portType>

<portType name="auth_PortType">
  <operation name="auth">
    <input message="tns:auth_Request" />
    <output message="tns:auth_Response" />
  </operation>
</portType>

<binding name="auth_Binding" type="tns:auth_PortType">
  <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
  <operation name="auth">
    <soap:operation soapAction="auth"/>
    <input>
      <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:auth_NameSpace"/>
    </input>
    <output>
      <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:auth_NameSpace"/>
    </output>
  </operation>
</binding>

<service name="info_Service">
  <port binding="tns:ping_Binding" name="ping_Port">
    <soap:address location="https://service.example.com/info/info.php"/>
  </port> 
  <port binding="tns:auth_Binding" name="auth_Port">
    <soap:address location="https://service.example.com/info/info.php"/>
  </port> 
</service>

我发现我自己为任何新功能复制和粘贴这些块,只修改相关的关键字,因此即使对于相对较少的功能,我最终也会得到相当长的 WSDL。

通过使用 WSDL 默认值,是否可以通过删除不必要或重复的参数来将这种语法缩短到最低限度?

注意:此 WSDL 必须由 VB6 soap 客户端库读取,它的功能非常有限。

4

0 回答 0