【发布时间】:2016-09-14 09:05:03
【问题描述】:
我正在尝试使用 JAXB 编组一些数据。我的问题如下:
我有一个 Frame 类,其中包含信号图。
@XmlRootElement(name = "frame")
@XmlAccessorType(XmlAccessType.FIELD)
public class Frame extends V_Element {
@XmlElementWrapper(name = "signals")
private Map<Signal, Double> signals;
}
到目前为止,XML 输出是:
<frame id="ee61b926-a1ca-4462-ac58-77d3ac0cbe5e" name="F1">
<signals>
<entry>
<key id="7352beaa-1921-4bfe-b1ce-3d8dabe69e8b" name="Signal1">
<properties/>
<bitLength>0</bitLength>
<frame>3ee61b926-a1ca-4462-ac58-77d3ac0cbe5e</frame>
</key>
<value>1.0</value>
</entry>
</signals>
</frame>
但我想拥有以下架构:
<frame id="3ee61b926-a1ca-4462-ac58-77d3ac0cbe5e" name="F1">
<signals>
<signal pos= "1.0">7352beaa-1921-4bfe-b1ce-3d8dabe69e8b</sgnal>
</signals>
</frame>
在框架标签下,我只想将信号 ID 和 pos 值作为属性。 @XmlIDREF 注释不适用于地图。
Signal 和 Frame 之间的关系是多对多的关系,因此一个 Signal 在不同的 Frames 中具有不同的位置。 有什么线索吗?
【问题讨论】:
标签: java xml jaxb marshalling