Java @XMLRootElement元素或数组名称
我目前正在尝试将xml get响应解组到一个复杂的java对象中。这个java对象有其他类作为字段,所以它非常深入。现在,我正在使用JaxbMarshaller2来完成这项工作。到目前为止,一切进展顺利,但现在我有一个问题: 基本上,XML流中的一个标记称为“images”,它包含一个单个图像项的数组,每个图像项都包含在“item”标记中Java @XMLRootElement元素或数组名称,java,xml,jaxb2,Java,Xml,Jaxb2,我目前正在尝试将xml get响应解组到一个复杂的java对象中。这个java对象有其他类作为字段,所以它非常深入。现在,我正在使用JaxbMarshaller2来完成这项工作。到目前为止,一切进展顺利,但现在我有一个问题: 基本上,XML流中的一个标记称为“images”,它包含一个单个图像项的数组,每个图像项都包含在“item”标记中 现在,在我的根java类中,我有一个名为images的属性,它是这些图像项的列表(我为这些项创建了一个自定义类) @xmlement(name=“imag
现在,在我的根java类中,我有一个名为images的属性,它是这些图像项的列表(我为这些项创建了一个自定义类)
@xmlement(name=“images”)
私有列表图像;
好,现在在ProductImage类中,类名上方的XML根元素是@XmlRootElement(name=“images”)
还是@XmlRootElement(name=“item”)
感谢您的回复。只有xml文件的根元素才需要
@XmlRootElement
注释。每个父项总是定义其子项的标记的名称。但是,由于根元素没有父元素,因此有一个额外的注释需要定义其名称(即@XmlRootElement
)
选项1:
假设
节点是xml文件的根节点。
创建一个类ProductImageCollection
,该类具有@XmlRootElement(name=“images”)
注释
在这个类中应该有一个列表
,它有一个注释@xmlement(name=“image”)
选项2:
假设您的
节点是一个更大的xml结构的一部分,该结构已经有了正确的注释
这样就不需要任何额外的@XmlRootElement
注释。您可以使用@xmlementwrapper(name=“images”)
直接为列表添加注释
<images>
<item>
<name></name>
</item>
<item>
<name></name>
</item>
</images>
@XmlElement(name = "images")
private List<ProductImage> images;