我在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(name="ChannelId")行生成以下JAXB错误
The expected XML type associated with 'long' is not valid for XML element 'ChannelId'.
有人知道这个错误消息是什么意思吗?我不能更改XSD文件,但是应该怎么做来删除错误(除了删除简单类,这看起来很合法)?或者至少抑制错误的产生?
任何帮助将不胜感激!
尝试禁用JAXB验证器。
项目-
如果 XML 是由 JAXB 类(而不是由 XSD)生成的,那么我没有要验证的 XSD。如何验证 XML?JAXB 在开始取消编组之前是否会自动对 XML 进行验证?
我的pom.xml, 当我在“Netbeans”中使用maven进行构建时,这很好用。 但如果我在EclipseLuna中使用,它会产生如下错误:; 目标组织的执行默认值。jvnet。jaxb2。maven2:maven-jaxb2-plugin:0.12.3:generate失败:执行org时缺少必需的类。jvnet。jaxb2。maven2:maven-jaxb2-plugin:0.12.3:
与JAXB为给定XSD生成JAXB类类似,Jackson是否提供了从XSD或JSON生成Jackson类的实用程序。 JAXB类geberator已经生成了一组为XSD模式定义的类。例如,对于多态类型,JAXB具有以下注释,以基于XML元素名称来标识名称。 是否可以在杰克逊中创建类似的类。即,基于XML元素名称来标识类型。
我创建了一个简单的. proto文件并执行了编译器(protoc-2.5.0rc1-win32.zip)。为规定的包生成了一个java文件。但是,生成的文件不会编译。. proto文件很简单,只有一条消息,其中包含一堆简单类型的可选字段(正确编号)。. java文件不编译,例如: 构造函数生成了消息。FieldAccessorTable(Descriptors.Descriptor,字符串[])未
问题内容: 我有一个巨大的QuickBooks SDK .XSD模式文件,该文件定义了我可以从QuickBooks发送/接收的XML请求/响应。 我希望能够轻松地从这些.XSD文件生成Java类,然后将其用于将XML编组为Java对象,以及将Java对象编组为XML。 是否有捷径可寻…? 理想情况下,它在运行时不需要基本Java发行版外部的任何库。但是我很灵活 问题答案: JAXB确实可以满足您的
我正在使用maven jaxws插件从我的wsdl模式生成java类。它没有在生成的类中生成@XmlElementWrapper注释。从这篇文章中,我了解到我需要使用jaxb xew插件,但我无法让它与maven jaxws插件一起工作。任何帮助都将不胜感激。这是我试过的配置 如果它只能与maven-jaxb2-plugin集成,你能帮我升级我的Web服务吗?本质上,我该如何指定wsdl以及如何生