【问题标题】:Unsupported binding namespace while generating class files using xjc使用 xjc 生成类文件时不受支持的绑定命名空间
【发布时间】:2014-02-03 05:44:15
【问题描述】:

我尝试在没有任何帮助的情况下进行谷歌搜索。如有重复请见谅。

我有以下文件 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

这方面的任何线索都会有很大帮助。

【问题讨论】:

  • 不,它没有帮助。我没有任何绑定 xml 文件。
  • common.xsd 文件的第 21 行有什么内容?这就是错误所在,所以我认为您应该在问题中说明这一点。
  • 顺便说一句,你是如何得到这个 .xsd 文件的——它不是普通的 vcloud 1.5 common.xsd 架构;那个在架构上没有任何 jaxb: 属性。
  • 得到了解决我问题的生成文件的 jar 文件。但仍然不知道根本原因。第 21 行是 "xmlns:meta="vmware.com/vcloud/meta" 和关于 jaxb,不知道,xsd 文件已经存在于我正在使用的 repo 中

标签: java xml jaxb xsd xjc


【解决方案1】:

问题出在这里:

   jaxb:extensionBindingPrefixes="meta"

jaxb:extensionBindingPrefixes 声明供应商自定义命名空间的前缀。见this link

JAXB RI 提供了未由 JAXB 规范。请注意以下几点:

这些特性只能在 JAXB XJC 绑定编译器是 在-extension模式下运行。

所有 JAXB RI 供应商扩展都在 “http://java.sun.com/xml/ns/jaxb/xjc”命名空间。

指定了包含扩展绑定声明的命名空间 通过全局属性的出现到 JAXB 处理器 @jaxb:extensionBindingPrefixes 在一个实例中 元素。该属性的值是一个以空格分隔的列表 命名空间前缀。欲了解更多信息,请参阅部分 JAXB 规范的 6.1.1。

只有在自定义绑定时才需要这个。例如,您可以使用xjc:superClass 自定义扩展一个公共超类。在这种情况下,xjc 将在 jaxb:extensionBindingPrefixes 中。

如果你只是编译你的模式,你的模式的前缀肯定不会在jaxb:extensionBindingPrefixes。所以,XJC 只是抱怨它在那里,但不是一个绑定扩展。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多