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

时间:2015-02-27 14:10:14

标签: java xml maven soap xsd

所以我使用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这样的简单类型,而不适用于我的机器类型等自定义类型。

1 个答案:

答案 0 :(得分:2)

从你的问题我认为这应该有效:

<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>