I was using JAXB as DTO to set a stable interface between Server and Clients. Anyways this doesn’t matter. What matters is I created a set of classes that result in the following compile error.
Cannot resolve XML element declaration with namespace ‘namespace’ and
name ‘name’ in this context
Eclipse underlined “name” inside quotes as an error. This class is manually created instead of xjc generated.
@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;
}
}
where UserType is a xjc generated class
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "userType", propOrder = {
"userId",
"userName"
})
public class UserType {getter;setter}
So basically UserDTO is just a wrapper that wraps up sub jaxb types.
I’m not sure if it was platform dependent (which it shouldn’t be), anyways, just to mention that this code worked perfectly on Netbeans, but when it come to Eclipse, the error prevented the compilation.
The Environment running the project was:
1. MacOsX Lion
2. JDK: 1.6.0_37
3. Eclipse Version: Juno with Package 1
4. JAXB Platform: Generic JAXB 2.1
Please anyone can share some idea?
ps: I added the JDK info and Libraries setting as Manuel suggested.
I faced this issue, you have more than one schema, at least two, both of them don’t have namespace, just assign namespace to one of them.