使用JAXB创建xml文件

时间:2013-01-27 12:32:41

标签: java jaxb

请低于标签如何使用JAxb创建xml文件。喜欢相同的序列输出Iam没有得到。在数据节点我想要文本,一个图像再一个文本节点

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

1 个答案:

答案 0 :(得分: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)属性上的List注释来映射此用例。 List属性的内容将是TextImage的实例。

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

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

每个类都需要使用@XmlRootElement进行注释。在为@XmlValueText类创建映射时,Image注释将非常有用。

@XmlRootElement
public class Text {

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

}

了解更多信息