在Spring WS中使用Jaxb模式:解组响应时的问题



我有一个XML模式,我已经声明了所有的请求和响应对象。

-------- For Actual Object -------
<xs:complexType name="conversation">
<xs:sequence>
<xs:element name="ID" type="xs:integer"/>
<xs:element name="startDate" type="xs:dateTime"/>
<xs:element name="endDate" type="xs:dateTime"/>
<xs:element name="participants" type="xs:string" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
-------- For Request -----------
<xs:element name="GetListRequest">
<xs:complexType>
<xs:sequence>
<xs:element name="userId" type="xs:string" />
<xs:element name="date" type="xs:long" />
<xs:element name="dateTo" type="xs:long" />
</xs:sequence>
</xs:complexType>
-------- For Response -----------
</xs:element>
<xs:element name="GetListResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="conversations" type="hmp:conversation" minOccurs="0"      maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>

但是我需要创建一个新的删除请求,并且只希望删除的行数作为响应返回。因此,我创建了以下内容:

-------- For DELETION  ( I only need to retrieve the number of rows deleted) -------
<xs:element name="deleted" type="xs:integer"/>
-------- For Response -----------
<xs:element name="GetDelConversationListResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="deletes" type="hmp:deleted" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>

但是它抱怨不能解析名称hmp:deleted。我相信我需要在WSDL或其他东西中添加这个??有人能帮帮我吗?

当您说type="hmp:deleted"时,那么在您的模式中必须定义相应的类型,而您没有(您定义了一个称为deleted的元素,但不是类型)。

您应该能够做到这一点,这更简单:

<xs:element name="GetDelConversationListResponse">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="delete" type="xs:integer" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

最新更新