JAXB如何创建具有不同属性值的重复元素

时间:2012-08-27 20:04:19

标签: java xml xsd jaxb

我正在尝试使用JAXB输出以下XML:

<ScreenData step="1" description="My descriotion">
    <element name="name1" type="type1" value="value1"/>
    <element name="name2" type="type2" value="value2"/>
</ScreenData>

为此,我使用以下代码:

screenData.getElement().add(element);
        element.setName("name1");
        element.setType("type1");
        element.setValueAttribute("value1");

        screenData.getElement().add(element);
        element.setName("name2");
        element.setType("type2");
        element.setValueAttribute("value2");

这就是输出:

<ScreenData step="1" description="My First XML">
                <element name="name2" type="type2" value="value2"/>
                <element name="name2" type="type2" value="value2"/>
            </ScreenData>

2 个答案:

答案 0 :(得分:3)

您需要确保创建Element的单独实例。目前,您似乎要添加两次相同的实例。

    Element element1 = new Element();
    screenData.getElement().add(element1);
    element1.setName("name1");
    element1.setType("type1");
    element1.setValueAttribute("value1");

    Element element2 = new Element();
    screenData.getElement().add(element2);
    element2.setName("name2");
    element2.setType("type2");
    element2.setValueAttribute("value2");

了解更多信息

答案 1 :(得分:0)

您必须创建一个集或列表。

    List<MyClass> l= new ArrayList<MyClass>();

    myClass = new MyClass();
    myClass.setAttr("attr1");

    l.add(myClass);

    myClass2 = new MyClass();
    myClass2.setAttr("attr2");

    l.add(myClass2);