使 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>
所以我使用 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>