Sto cercando di unmarshall il seguente codice XML utilizzando JAXB:Trattare con JAXB Collezioni
<Works>
<Work>
<Composers>
<Composer>
<Name>A name</Name>
</Composer>
<Composer>
<Name>A name 2</Name>
</Composer>
</Composers>
</Work>
</Works>
Ho generato tutte le classi che utilizzano XJC. Se voglio accedere alla raccolta Compositori, devo fare questo:
List<Composer> composers = work.getComposers().getComposer();
C'è un modo che io possa fare la seguente, invece?
List<Composer> composers = work.getComposers();
apprezzo la necessità di un oggetto Compositori come derivato dal XML, ma quando si tratta in Java, avendo un POJO intermedia che memorizza le collezioni sembra un po 'ridondante.
mio XSD è:
<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>
Avete uno schema che avete usato per generare i POJO? –
Elenco compositori = work.getComposers(). GetComposer(); questo non sembra giusto. Dovrebbe restituirti solo un compositore non un elenco di compositori. Considerando che lista compositori = work.getComposers(); questo sembra corretto. –
Ho aggiunto il mio schema XSD – seedhead