jaxb 2.0版未在xmlrootelement中使用name属性

jaxb 2.0版未在xmlrootelement中使用name属性,jaxb,Jaxb,我已将jaxb库更新为2.0版。 我正在使用以下jar,jaxb-api-2.0.jar和jaxb-imp-2.0.jar。 现在的问题是,它没有使用@XmlRootElement(name=“something”)。 但是在以前的库的帮助下,xml在生成的xml中使用了定义的名称“something”。现在它采用驼峰式的类名,而不是name属性中定义的“something”。这是最新jaxb库的bug吗?请帮忙 下面是一个可能有帮助的例子。@XmlRootElement注释将控制XML文档的根

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

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

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;
    }

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

package forum9272675;

public class SomethingElse {

}
输出

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;
    }

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


在我的子类中,我使用了@XmlRootElement(name=“something”)。此外,当我使用@XmlType(name=“something”)时,我的问题得到了解决

谢谢你的回答。。。是的,我没有注意到我的根类实际上正在调用其他类,在根元素中,名称显示得很好,但问题是在被调用的类根元素中。。。尝试你的解决方案。