我在没有任何帮助的情况下尝试使用谷歌搜索。如果有任何重复,请道歉。
我有以下文件头文件common.xsd
<xs:schema xmlns="http://www.vmware.com/vcloud/v1.5"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:meta="http://www.vmware.com/vcloud/meta"
jaxb:version="2.0"
jaxb:extensionBindingPrefixes="meta"
elementFormDefault="qualified"
targetNamespace="http://www.vmware.com/vcloud/v1.5"
version="1.0">
我正在尝试使用xjc命令生成类文件。
xjc -version
xjc version "JAXB 2.1.10 in JDK 6"
JavaTM Architecture for XML Binding(JAXB) Reference Implementation, (build JAXB 2.1.10 in JDK 6)
我收到此错误。
[info] [ERROR] Unsupported binding namespace "http://www.vmware.com/vcloud/meta". Perhaps you meant "http://java.sun.com/xml/ns/jaxb/xjc"?
[info] line 21 of file:/Users/kcherivirala/vmware/dev/corp/zephyr/services/networkservice/app/vcd-schema/src/main/xsd/vcloud/common.xsd
这方面的任何线索都会有很大的帮助。
答案 0 :(得分:0)
问题在于:
jaxb:extensionBindingPrefixes="meta"
jaxb:extensionBindingPrefixes
声明供应商自定义命名空间的前缀。请参阅this link。
JAXB RI提供了未定义的其他自定义 JAXB规范。请注意以下事项:
这些功能只能在JAXB XJC绑定编译器使用时使用 以-extension模式运行。
所有JAXB RI供应商扩展都在。中定义 &#34; http://java.sun.com/xml/ns/jaxb/xjc&#34;命名空间。
指定包含扩展绑定声明的名称空间 通过全局属性的出现来到JAXB处理器 @jaxb:实例中的extensionBindingPrefixes 元件。此属性的值是以空格分隔的列表 名称空间前缀。有关更多信息,请参阅部分 JAXB规范的6.1.1。
您只需在自定义绑定时使用此选项。例如,您可以使用xjc:superClass
进行自定义以扩展公共超类。在这种情况下,xjc
将位于jaxb:extensionBindingPrefixes
。
如果您只是编译架构,那么架构的前缀肯定不会在jaxb:extensionBindingPrefixes
中。所以,XJC只是抱怨它在那里,但不是一个有约束力的扩展。