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

时间:2011-07-20 13:44:43

标签: xsd jaxb spring-ws

我有一个XML Schema,我已经声明了所有的Requests和Responses对象。

-------- 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:已删除。我相信我需要在WSDL或其他东西中添加它?有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

当你说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>