我的问题很像这个问题,但有一些小的差异让我完全不知所措。
我正在尝试使用 xjc 编译一些 java 类,其中包含带有 xjb 自定义的 xsd,以将 jaxb:Date 绑定到 java date。 当我从命令行运行它时,它工作正常,但现在我正在尝试将其合并到 ant 脚本中,但出现错误:
[错误] "jaxb:globalBindings" 定制不与任何架构元素关联。
这是我的 XJB:
<jaxb:bindings xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" jaxb:version="2.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<jaxb:globalBindings>
<jaxb:javaType name="java.util.Date"
xmlType="xs:dateTime"
parseMethod="sel.date.XsdDateTimeConverter.unmarshal"
printMethod="sel.date.XsdDateTimeConverter.marshalDateTime"
/><jaxb:javaType
name="java.util.Date"
xmlType="xs:date"
parseMethod="sel.date.XsdDateTimeConverter.unmarshal"
printMethod="sel.date.XsdDateTimeConverter.marshalDate"
/>
</jaxb:globalBindings>
</jaxb:bindings>
我没有使用 maven,所以我不能真正使用上面列出的答案。 此外,似乎需要知道将要合并它的架构,但我真的不想这样做,因为我正在尝试将其设置为可用于不同 xsd 的通用脚本。
有人对我在这里错过了什么有任何想法吗?
尝试将jaxb:version="2.0"
更改为jaxb:version="2.1"
。
当然,这取决于您的jaxb生成器。
这可能是由于旧版本的jaxb和xjc。我在运行 maven-jaxb-plugin 1.1 时遇到了此错误,升级插件的版本解决了这个问题。