Staram się wycofać następujące XML przy użyciu JAXB:czynienia z JAXB Kolekcje
<Works>
<Work>
<Composers>
<Composer>
<Name>A name</Name>
</Composer>
<Composer>
<Name>A name 2</Name>
</Composer>
</Composers>
</Work>
</Works>
mam generowane wszystkich klas korzystających XJC. Jeśli chcę uzyskać dostęp do kolekcji Kompozytorów, muszę to zrobić:
List<Composer> composers = work.getComposers().getComposer();
Czy mogę zamiast tego wykonać następujące czynności?
List<Composer> composers = work.getComposers();
doceniam potrzebę obiektu kompozytorów, jak to wynika z XML, ale gdy mamy do czynienia w Javie, mające pośredni POJO który przechowuje zbiory wydaje się nieco zbędny.
Moje XSD jest:
<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>
Czy masz schemat, który został użyty do wygenerowania POJO? –
Lista composers = work.getComposers(). GetComposer(); to nie wygląda dobrze. Powinien powrócić ci tylko jeden kompozytor, a nie lista kompozytorów. Natomiast lista composers = work.getComposers(); to wygląda na poprawne. –
Dodałem mój schemat XSD – seedhead