我試圖用JAXB來解讀以下XML:與JAXB集合處理
<Works>
<Work>
<Composers>
<Composer>
<Name>A name</Name>
</Composer>
<Composer>
<Name>A name 2</Name>
</Composer>
</Composers>
</Work>
</Works>
我已經生成的所有使用XJC的類。如果我想訪問作曲家系列,我必須這樣做:
List<Composer> composers = work.getComposers().getComposer();
有沒有什麼辦法可以做以下代替?
List<Composer> composers = work.getComposers();
我很欣賞的作曲家對象的需要,因爲它從XML導出,但在Java打交道時,具有存儲集合中間POJO似乎有點多餘。
我的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>
您有用於生成POJO的模式嗎? –
列表 composers = work.getComposers()。getComposer();這看起來不正確。它應該只返回一個作曲家而不是作曲家名單。鑑於列表 composers = work.getComposers();這看起來正確。 –
我已經添加了我的XSD模式 – seedhead