Использование схемы Jaxb со Spring WS: проблемы, возникающие при удалении ответа - PullRequest
1 голос
/ 20 июля 2011

У меня есть схема 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: удалено.Я считаю, что мне нужно добавить это в WSDL или что-то ??Может кто-нибудь, пожалуйста, помогите ??

1 Ответ

1 голос
/ 20 июля 2011

Когда вы говорите 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>
...