Soapui请求中如何指定数据类型

How to specify data type in Soapui request

我的 SOAPUI 请求中有以下部分,我正试图将其传递给 Web 服务进行测试:

<DataList>
    <!--Zero or more repetitions:-->
    <Element/>
</DataList>

元素列表可以是 WSDL 定义中指定的 2 种不同类型,我的问题是如何指定 DataList 的数据类型?

这里是定义的序列:

<xsd:sequence>
<xsd:element minOccurs="0" name="DataList" nillable="true" type="ns:tDataValues"/>
</xsd:sequence>

这里是定义的序列类型:

<xsd:complexType name="tDataValues">
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="unbounded" name="Element" nillable="true" type="ns:Data_Value"/>
</xsd:sequence>
</xsd:complexType>

这里定义了 2 种类型:

<xsd:complexType name="DataValue1">
<xsd:complexContent>
<xsd:extension base="ns:Data_Value">
<xsd:sequence>
<xsd:element minOccurs="0" name="FieldValue1" nillable="true" type="xsd:long"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="DataValue2">
<xsd:complexContent>
<xsd:extension base="ns:Data_Value">
<xsd:sequence>
<xsd:element minOccurs="0" name="FieldValue2" nillable="true" type="xsd:long"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>

我们能够通过在 soap 请求中执行以下操作来为我们的应用解决此问题。在我们的例子中,'value' 元素有不止一种类型:

<value xsi:type="xs:string" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">foo</value>

这可能需要服务器代码能够处理。在我们的例子中,我们的应用程序是一个 JEE 5 应用程序,使用 JAXB/JAXWS 来处理网络服务调用。