-4

请在下面标记如何使用 JAxb 创建 xml 文件。就像相同的序列输出我没有得到。在数据节点中我想要文本,一个图像再一个文本节点

<data>
    <text>
        hello
    </text>
    <image name="b99d.png">Imagefile name</image> 
    <text>
        world 
    </text>
</data>
4

1 回答 1

1

您需要将图像和文本数据存储在一个List. 完成此操作后,有几个选项。


选项1

你可以使用@XmlElements

public class Data {

    @XmlElements({
        @XmlElement(name="text", type=String.class),
        @XmlElement(name="image", type=Image.class)
    })
    public List<Object> getTextAndImages() {
        return textAndImages;
    }
}

了解更多信息


选项 #2

您还可以利用单个@XmlAnyElement(lax=true)属性上的注释来映射此用例。该属性的内容将是和的实例。 ListListTextImage

@XmlRootElement
@XmlSeeAlso({Image.class, Text.class})
public class Data {

    @XmlAnyElement(lax=true)
    public List<Object> getTextAndImages() {
        return textAndImages;
    }
}

这些类中的每一个都需要用 注释@XmlRootElement。在创建和类的映射时,@XmlValue注释将很有用。TextImage

@XmlRootElement
public class Text {

    @XmlValue
    public String getValue() {
        return value;
    }

}

了解更多信息

于 2013-01-27T12:54:47.510 回答