[英]JAXB, How to unmarshal XML element as list instead of object?
我的應用程序與另一個生成XML的應用程序集成,他們給了我XSD和示例XML
我對此有一個疑問:
XSD:
<element name="IubLink">
<complexType>
<complexContent>
<extension base="xn:NrmClassXmlType">
<sequence>
<element name="attributes" minOccurs="0">
<complexType>
<all>
<element name="userLabel" minOccurs="0"/>
<element name="iubLinkUtranCell" minOccurs="0"/>
<element name="iubLinkNodeBFunction" minOccurs="0"/>
</all>
</complexType>
</element >
<choice minOccurs="0" maxOccurs="unbounded">
<element ref="xn:VsDataContainer"/>
</choice>
</sequence>
</extension>
</complexContent >
</complexType>
</element >
XML:
<un:IubLink id="Iub_RBS0087">
<un:attributes>
<un:userLabel>Iub_RBS0087</un:userLabel>
<un:iubLinkUtranCell>SubNetwork=ONRM_RootMo_R,SubNetwork=RNC04,MeContext=RNC04,ManagedElement=1,RncFunction=1,UtranCell=00871</un:iubLinkUtranCell>
<un:iubLinkUtranCell>SubNetwork=ONRM_RootMo_R,SubNetwork=RNC04,MeContext=RNC04,ManagedElement=1,RncFunction=1,UtranCell=00872</un:iubLinkUtranCell>
<un:iubLinkUtranCell>SubNetwork=ONRM_RootMo_R,SubNetwork=RNC04,MeContext=RNC04,ManagedElement=1,RncFunction=1,UtranCell=00873</un:iubLinkUtranCell>
<un:iubLinkUtranCell>SubNetwork=ONRM_RootMo_R,SubNetwork=RNC04,MeContext=RNC04,ManagedElement=1,RncFunction=1,UtranCell=00875</un:iubLinkUtranCell>
<un:iubLinkUtranCell>SubNetwork=ONRM_RootMo_R,SubNetwork=RNC04,MeContext=RNC04,ManagedElement=1,RncFunction=1,UtranCell=00876</un:iubLinkUtranCell>
<un:iubLinkUtranCell>SubNetwork=ONRM_RootMo_R,SubNetwork=RNC04,MeContext=RNC04,ManagedElement=1,RncFunction=1,UtranCell=00877</un:iubLinkUtranCell>
<un:iubLinkNodeBFunction>SubNetwork=ONRM_RootMo_R,SubNetwork=RNC04,MeContext=RBS0087,ManagedElement=1,NodeBFunction=1</un:iubLinkNodeBFunction>
</un:attributes>
<xn:VsDataContainer id="1">
<xn:attributes>
<xn:vsDataType>vsDataIubEdch</xn:vsDataType>
<xn:vsDataFormatVersion>EricssonSpecificAttributes.12.26</xn:vsDataFormatVersion>
<es:vsDataIubEdch>
<es:edchDataFrameDelayThreshold>60</es:edchDataFrameDelayThreshold>
<es:userLabel>1</es:userLabel>
</es:vsDataIubEdch>
</xn:attributes>
</xn:VsDataContainer>
在java中,我想獲取IubLinkUtranCell的列表,但是JAXB生成它的方式如下:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
})
public static class Attributes {
protected Object userLabel;
protected Object iubLinkUtranCell;
protected Object iubLinkNodeBFunction;
因此,我將所有IubLinkUtranCell作為一個對象! ,我該如何繞過它們?
您必須在yor屬性類中列出“ IubLinkNodeBFunction”:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
})
public static class Attributes {
protected Object userLabel;
@XMlElement(name = "iubLinkUtranCell")
protected List<IubLinkUtranCell> iubLinkUtranCellList;
protected Object iubLinkNodeBFunction;
並且必須創建“ IubLinkUtranCell”類,如果該類中還有其他屬性,則可以將其添加到類中以訪問它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.