我在eclipse Luna中使用JAXB从第三方XSD文件生成Java类。该文件通常定义一个简单类型,它只是一个基本类型。例如:
<xsd:simpleType name="ChannelIdType">
<xsd:restriction base="xsd:unsignedInt" />
</xsd:simpleType>
然后将简单类型用于复杂类型的元素,例如:
<xsd:complexType name="DataRequestEntryType">
<xsd:sequence>
<xsd:element name="ChannelId" type="ChannelIdType" />
<xsd:element name="IsChannelOpen" type="xsd:boolean" />
...
</xsd:sequence>
</xsd:complexType>
JAXB为复杂类型生成一个看似完全正确的Java类:
public class DataChannelEntryType {
@XmlElement(name = "ChannelId") <-- ERROR here, see below
protected long channelId;
@XmlElement(name = "IsChannelOpen")
protected boolean isChannelOpen;
...
}
但是,它还为@XmlElement行生成以下JAXB ERROR(name =“ChannelId”)
The expected XML type associated with 'long' is not valid for XML element 'ChannelId'.
有人知道错误信息的含义吗?我无法更改XSD文件,但应该怎么做才能删除错误(除了删除简单类,无论如何看起来很合法)?或者至少抑制错误的产生?
任何帮助将不胜感激!
答案 0 :(得分:0)
尝试禁用JAXB验证器。
项目 - &gt;属性 - &gt;验证 - &gt; Jaxb Validator