我使用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信息和库设置
我面临这个问题,你有不止一个模式,至少两个,它们都没有命名空间,只给其中一个分配命名空间