创建注释以在生成的请求中显示? WSDL SOAP XML

时间:2018-07-26 13:47:45

标签: soap wsdl soapui

我正在为现有系统编写wsdl文件。我想在生成的请求中添加注释。

例如:

    <xsd:simpleType name="coffeetype">
        <xsd:restriction base="xsd:integer">
            <!--0=likescoffee,1=doesnotlikecoffe-->
            <xsd:enumeration value="0" />
            <xsd:enumeration value="1" />
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:element name="CoffeeRequestInput" nillable="false" type="tns:coffeetype" />

在生成的请求中应如下所示:(例如,在SoapUI中加载WSDL时)

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsdl="https://example.com/some.wsdl">
   <soapenv:Header/>
   <soapenv:Body>
      <!--0=likescoffee,1=doesnotlikecoffe-->
      <wsdl:CoffeeRequestInput>0</wsdl:CoffeeRequestInput>
   </soapenv:Body>
</soapenv:Envelope>

打开WSDL时可以看到这些注释,但是从该WSDL生成请求时却看不到。

已经研究了注释,但是我无法使用它们来创建所需的结果。 (可能是我这边的错误)

1 个答案:

答案 0 :(得分:1)

简而言之,您无法根据需要在请求中创建文档。但是,您可以从WSDL生成非常有用的文档。通过使用xsd:documentation标记,您可以将文档直接添加到元素中。

例如

<xsd:simpleType name="coffeetype">
    <xsd:restriction base="xsd:integer">

        <xsd:enumeration value="0" />
        <xsd:enumeration value="1" />
    </xsd:restriction>
</xsd:simpleType>
<xsd:element name="CoffeeRequestInput" nillable="false" type="tns:coffeetype">
    <xsd:annotation>
        <xsd:documentation>
          This object is the CoffeeRequestInput object isan Enumeration which can be used to determine is the user sending the request likes coffee or not. 
           Valid values for the enumeration is as follows:
           0 = like coffee
           1 = does not like coffee (probably a user not a programmer making a request).
           Some other things that you need to document goes here.
        <xsd:documentation>   
    </xsd:annotation>
</xsd:element>

然后,您可以使用Altova StyleForce,LiquidXML和OxyGen之类的软件来生成PDF,Word文档或HTML页面,这些页面将显示SOAP服务和操作,其中包括所有注释。

如果您愿意的话,可以编写自己的XLST将WSDL和XSD转换为一个简洁的HTML页面,该页面也记录了您的界面。最好的部分是,当您使用新操作更新WSDL时,文档也会随之更新。