jaxb版本2.0不使用xmlrootelement中的name属性

时间:2012-02-14 06:31:36

标签: jaxb

我已将jaxb库更新为2.0版。 我使用以下jar,jaxb-api-2.0.jar和jaxb-imp-2.0.jar。 现在的问题是,它没有使用@XmlRootElement(name =“something”)。 但是在前面的库的帮助下,xml在生成的xml中使用了定义的名称“something”。现在,它采用驼峰式的类名,而不是name属性中定义的“something”。这是最新的jaxb库的错误吗?请帮忙!

2 个答案:

答案 0 :(得分:1)

以下是一个可能有用的示例。 @XmlRootElement注释将控制XML文档的根元素的名称。如果要控制内部元素的名称,可以使用@XmlElement注释。

<强> SomeObject

package forum9272675;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement(name="something")
public class SomeObject {

    private SomethingElse somethingElse;

    @XmlElement(name="something-else")
    public SomethingElse getSomethingElse() {
        return somethingElse;
    }

    public void setSomethingElse(SomethingElse somethingElse) {
        this.somethingElse = somethingElse;
    }

}

<强> SomethingElse

package forum9272675;

public class SomethingElse {

}

<强>输出

<?xml version="1.0" encoding="UTF-8"?>
<something>
    <something-else/>
</something>

答案 1 :(得分:0)

在我的子类中,我使用的是@XmlRootElement(name =“some-thing”)。除此之外,当我使用@XmlType(name =“some-thing”)时,我的问题得到了解决!