JaxB@XmlRootElement导致"Cannot resolve xml element declaration"



我使用JAXB作为DTO在服务器和客户机之间设置一个稳定的接口。不管怎样,这都不重要。重要的是,我创建了一组导致以下编译错误的类。

无法解析命名空间'namespace'和的XML元素声明在此上下文中命名' Name '

Eclipse将"name"加引号作为错误。这个类是手工创建的,而不是xjc生成的。

@XmlRootElement(name="name", namespace="namespace")
@XmlType(name="")
public class UserDTO {
    private UserType userType;
    @XmlElement
    public UserType getDTO(){
        return userType;
    }
    public void setDTO(UserType userType){
        this.userType=userType;
    }
}

UserType是xjc生成的类

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "userType", propOrder = {
    "userId",
    "userName"
})
public class UserType {getter;setter}

所以基本上UserDTO只是一个包装子jaxb类型的包装器。

我不确定它是否与平台相关(它不应该是),无论如何,只是提到这段代码在Netbeans上工作得很好,但是当它涉及到Eclipse时,错误阻止了编译。

运行项目的环境为:1. MacOsX狮子2. JDK: 1.6.0_373.Eclipse版本:Juno with Package 14. JAXB平台:通用JAXB 2.1

请任何人分享一些想法?


ps:我按照Manuel的建议添加了JDK信息和库设置

我面临这个问题,你有不止一个模式,至少两个,它们都没有命名空间,只给其中一个分配命名空间

相关内容

最新更新