1

有一个带有类似字段的光环类:

private String description;   // a lot of text
private long price;
private int count;

.. 我发现 for priceandcount @XmlAttribute被使用,但不是description. 为什么?

有什么区别以及它们如何/在哪里存储?

4

2 回答 2

1

IBM 网站上非常好的文章

如果有问题的信息本身可以用元素标记,请将其放入元素中。

如果信息适用于属性形式,但最终可能成为同一元素上的多个同名属性,请改用子元素。

如果要求信息采用标准的类似 DTD 的属性类型,例如 ID、IDREF 或 ENTITY,请使用属性。

如果不应针对空白对信息进行规范化,请使用元素。(XML 处理器以可以更改属性值的原始文本的方式对属性进行规范化。)

于 2013-02-26T13:07:42.660 回答
0

XmlElement 和@XmlAttribute 都是非常自记录的。

@XmlElement 将被序列化为一个 Xml 元素(当前节点的子节点)

@XmlAttribute 将被序列化为 Xml 属性。

关于何时选择其中一个,knowbody 的答案非常清楚。

所以在你的例子中,你应该得到类似的东西

<halo price="..." count="..." >
    <description>...</description>
</halo>
于 2013-02-26T13:30:26.137 回答