У меня есть следующий XSD, определенный для создания некоторых объектов jaxb. Хорошо работает.
<xsd:element name="Person" type="Person" />
<xsd:complexType name="Person">
<xsd:sequence>
<xsd:element name="Id" type="xsd:int" />
<xsd:element name="firstName" type="xsd:string" />
<xsd:element name="lastName" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="People">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Person" minOccurs="0" maxOccurs="unbounded"
type="Person" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Я использую Spring RowMapper для отображения строк из моей базы данных в объекты Person. Итак, я в конечном итоге
с объектом List , который является , а не объектом People. I Объект People имеет внутренний список .
Тогда в моем классе ресурсов Джерси у меня есть:
@GET
@Path("/TheListOfPeople")
public List<Person> getListOfPeople() {
List<Person> list = dao.getList();
return list;
}
Возвращаемый XML-код:
<?xml version="1.0" encoding="UTF-8" standalone="yes" >
<people>
<Person>...</Person>
<Person>...</Person>
<Person>...</Person>
<Person>...</Person>
</people>
У меня вопрос, как он делает отображение из списка на людей в XML. Кроме того, элементом является «Люди» (заглавная буква P), а не «люди» (строчная буква P). Похоже, он на самом деле не использует XSD вообще.
РЕДАКТИРОВАТЬ Это как-то связано с этим вопросом: Коллекции JAXB (Список ) Используйте Pascal Case вместо Camel Case для имен элементов