您需要能够使用您提供的Map
中的MapAdapter
来注释link,因此您需要创建一个子类。
所以我有几个要解组的XML。
一个XML可能看起来像这样:
<TABLE>
<RECORDS>
<RECORD>
<DOC_ID>some value</DOC_ID>
<ENTITY_ID>some value</ENTITY_ID>
...more entries
</RECORD>
<RECORD>
<DOC_ID>some value</DOC_ID>
<ENTITY_ID>some value</ENTITY_ID>
...more entries
</RECORD>
</RECORDS>
</TABLE>
另一个XML也可能看起来像这样:
<TABLE>
<RECORDS>
<RECORD>
<SUB_ID>some value</SUB_ID>
<CASE_DOC_ID>some value</CASE_DOC_ID>
...more entries
</RECORD>
<RECORD>
<SUB_ID>some value</SUB_ID>
<CASE_DOC_ID>some value</CASE_DOC_ID>
...more entries
</RECORD>
</RECORDS>
</TABLE>
每个XML始终以TABLE为根,RECORDS作为子级,RECORD作为孙级,只是RECORD中的数据不同。
我不想要封送任何东西,只是封送并获取数据。
在我的表类中]
@XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "TABLE") public class Table { @XmlJavaTypeAdapter(MapAdapter.class) private Map<String, String> RECORDS; public Map<String, String> getMap() { return RECORDS; } public void setMap(Map<String, String> record) { this.RECORDS = record; }
}
我从此链接中获取了MapAdapter:JAXB Marshal and Unmarshal Map to/from <key>value</key>
我的问题是这样的:我希望能够获得记录中的每个标签名称(DOC_ID / SUB_ID或XML中的任何名称),并且当我传递XML时,它的每个值都为字符串,但我不确定该如何处理。] >
向我指出正确方向的任何帮助将不胜感激。
编辑:
2个新问题!我意识到我可能需要所有记录的地图列表。
因此,我有两个要解组的XML。一个XML可能看起来像这样:
@XmlJavaTypeAdapter(MapAdapter.class)
public class Record extends HashMap<String, String> {
}
然后,您的Table类非常简单,尽管您需要使用@XmlElementWrapper
进行注释才能获得额外的XML级别。
您需要能够使用您提供的Map
中的MapAdapter
来注释link,因此您需要创建一个子类。