使 soap 响应显示带有 xsd 文件的自定义对象列表

make a soap response show a list of custom objects with xsd file

所以我使用 Spring Maven Java 创建了自己的 SOAP 服务。我能够创建一个自定义对象 "Machine" 来显示机器的主机名和 IP 地址。因为有多台机器,我的目标是显示机器列表,而不是只显示一台机器。

我的 xsd 文件:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://company.be/cloudtool/backendProofOfConcept"
targetNamespace="http://company.be/cloudtool/backendProofOfConcept"
elementFormDefault="qualified">

<xs:element name="getDevicesRequest">
    <xs:complexType>
        <!-- This one isn't used -->
    </xs:complexType>
</xs:element>

<xs:element name="getDevicesResponse">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="machine" type="tns:machine" />
        </xs:sequence>
    </xs:complexType>
</xs:element> -->

<xs:complexType name="machine">
    <xs:sequence>
        <xs:element name="hostname" type="xs:string" />
        <xs:element name="primaryip" type="xs:string" />
    </xs:sequence>
</xs:complexType>  

当我使用 soapUI 对此进行测试时,我得到以下输出: http://i.stack.imgur.com/MKPXd.png

但我希望它在列表中显示每台机器的主机名和 IP。我发现了以下 list example 但这似乎只适用于像 int 或 string 这样的简单类型,而不适用于像我的机器类型这样的自定义类型。

根据你的问题,我认为这应该有效:

<xs:element name="getDevicesResponse">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="machine" type="tns:machine" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
    </xs:complexType>
</xs:element>