使用默认值缩短WSDL语法

时间:2012-11-15 16:42:16

标签: soap wsdl

我是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客户端库读取,该库具有非常有限的功能。

0 个答案:

没有答案