Estoy intentando Resolver referencia el siguiente código XML utilizando JAXB:Tratar con JAXB Colecciones
<Works>
<Work>
<Composers>
<Composer>
<Name>A name</Name>
</Composer>
<Composer>
<Name>A name 2</Name>
</Composer>
</Composers>
</Work>
</Works>
He generado todas las clases utilizando XJC. Si quiero acceder a la colección Compositores, tengo que hacer esto:
List<Composer> composers = work.getComposers().getComposer();
¿Hay alguna manera de que pueda hacer lo siguiente en su lugar?
List<Composer> composers = work.getComposers();
aprecio la necesidad de un objeto Compositores, ya que deriva del XML, pero cuando se trata en Java, que tiene un POJO intermedia que almacena las colecciones parece un poco redundante.
Mi XSD es:
<xsd:complexType name="Works">
<xsd:sequence>
<xsd:element name="Work" type="Work" maxOccurs="unbounded" minOccurs="0"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Work">
<xsd:sequence>
<xsd:element name="Composers" type="Composers"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Composers">
<xsd:sequence>
<xsd:element name="Composer" type="Composer" maxOccurs="unbounded" minOccurs="0"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Composer">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
¿Tiene un esquema que utilizó para generar los POJO? –
List composers = work.getComposers(). GetComposer(); esto no se ve bien Debería devolverte solo un compositor, no una lista de compositores. Mientras que List composers = work.getComposers(); esto parece correcto. –
He agregado mi esquema XSD – seedhead