Java 使用xjc生成类文件时不支持绑定命名空间
我在没有任何帮助的情况下尝试了谷歌搜索。如果有任何重复,请道歉 对于common.xsd文件,我有以下模式头Java 使用xjc生成类文件时不支持绑定命名空间,java,xml,jaxb,xsd,xjc,Java,Xml,Jaxb,Xsd,Xjc,我在没有任何帮助的情况下尝试了谷歌搜索。如果有任何重复,请道歉 对于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
<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">
我得到了这个错误
[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
这方面的任何线索都会有很大帮助。问题在于:
jaxb:extensionBindingPrefixes="meta"
jaxb:extensionBindingPrefixes
声明供应商自定义名称空间的前缀。看
JAXB RI提供了用户未定义的其他定制
JAXB规范。注意以下几点:
这些特性只能在安装JAXB XJC绑定编译器时使用
在-extension模式下运行
所有JAXB RI供应商扩展都在
“”命名空间
指定了包含扩展绑定声明的命名空间
通过全局属性的出现,将数据传输到JAXB处理器
@jaxb:的实例中的extensionBindingPrefixes
元素。此属性的值是以空格分隔的
名称空间前缀。有关更多信息,请参阅第节
JAXB规范的第6.1.1条
您只需要在自定义绑定时使用它。例如,您可以使用xjc:superClass
进行自定义,以扩展一个通用的超类。在这种情况下,xjc
将位于jaxb:extensionbindingprifixes
中
如果您只是编译模式,那么模式的前缀肯定不会出现在
jaxb:extensionbindingprofixes
中。所以,XJC只是抱怨它在那里,但不是绑定扩展。检查一下这个链接。。不,它没有帮助。我没有任何绑定xml文件。common.xsd文件的第21行有什么内容?这就是错误所在,所以我认为您应该在问题中说明这一点。顺便说一句,您是如何得到这个.xsd文件的?它不是正常的vcloud 1.5 common.xsd模式;这个模式没有任何jaxb:attributes。得到了生成文件的jar文件,解决了我的问题。但仍然不知道根本原因。第21行是“xmlns:meta=”“,关于jaxb,我不知道,xsd文件已经存在于我正在使用的repo中
jaxb:extensionBindingPrefixes="meta"