You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用XJC(JAXB)从XSD生成Java对象时遭遇Property 'Value'重复定义错误的求助

解决JAXB XJC生成Java类时的"Property 'Value' is already defined"冲突问题

我来帮你搞定这个困扰你的JAXB属性冲突问题!先理清错误根源,再纠正你绑定文件里的问题,最后给出可行的解决方案。

错误原因分析

你的DocumentExtensionType同时包含了两个JAXB默认会生成同名属性的节点:

  • <xsd:any namespace="##local" processContents="lax" maxOccurs="unbounded"/>:这是可重复的本地元素节点,JAXB默认会为它生成名为Value的属性
  • <xsd:anyAttribute processContents="lax"/>:这是任意属性节点,JAXB默认也会为它生成名为Value的属性

两个节点用同一个属性名,自然触发了重复定义的错误。

你之前绑定文件的问题

第一个绑定文件的问题

  • 节点路径错误:你的XSD里DocumentExtensionType的sequence下直接是<xsd:any>,没有<xsd:choice>节点,但绑定路径里写了xsd:choice,导致XJC找不到目标节点,配置无效
  • namespace匹配错误:绑定的是http://checklists.nist.gov/sccf/0.1,但XSD里的any节点是##local,完全不匹配

第二个绑定文件的问题

  • namespace匹配错误:XSD里的any节点namespace是##local,你绑定的是@namespace='',匹配不到目标节点
  • 未处理anyAttribute的冲突:只尝试修改了元素any的属性名,忽略了同样会生成Value属性的anyAttribute,冲突依然存在

正确的绑定文件配置

你需要同时给<xsd:any>和<xsd:anyAttribute>指定不同的属性名,彻底避免冲突。以下是修正后的绑定文件(命名为foo.xjb):

<?xml version="1.0" encoding="UTF-8"?>
<jxb:bindings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:jxb="http://java.sun.com/xml/ns/jaxb" version="2.1">
    <jxb:bindings schemaLocation="foo.xsd">
        <!-- 给xsd:any元素指定自定义属性名 -->
        <jxb:bindings node="//xsd:complexType[@name='DocumentExtensionType']/xsd:sequence/xsd:any[@namespace='##local']">
            <jxb:property name="localExtensionElements"/>
        </jxb:bindings>
        <!-- 给xsd:anyAttribute指定自定义属性名 -->
        <jxb:bindings node="//xsd:complexType[@name='DocumentExtensionType']/xsd:anyAttribute">
            <jxb:property name="localExtensionAttributes"/>
        </jxb:bindings>
    </jxb:bindings>
</jxb:bindings>

执行命令验证

保持你原来的xjc命令不变,确保绑定文件和XSD文件在同一目录下(或指定正确路径):

xjc -p "com.track.doc" -d "/Users/batman/Downloads/XSD" -b foo.xjb foo.xsd

执行成功后,生成的DocumentExtensionType.java类里会有:

  • getLocalExtensionElements()和setLocalExtensionElements()方法对应原来的<xsd:any>节点
  • getLocalExtensionAttributes()和相关属性操作方法对应原来的<xsd:anyAttribute>节点

这样就彻底解决了属性名重复的冲突问题!

内容的提问来源于stack exchange,提问作者BATMAN_2008

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 13:54:06