为什么 JAXB 2 RI 的 XJC 简单模式会更改集合名称?

问题描述 投票:0回答:2

JAXB简单绑定模式将集合名称修改为其复数 “版本”,例如“附加数据”变为“附加数据”。有什么解决方案可以改变这种行为吗?我需要一个与 XSD 字段名称相同的 Java 字段名称和方法名称。我的绑定文件:

<?xml version="1.0" encoding="UTF-8"?>
<bindings xmlns="http://java.sun.com/xml/ns/jaxb"
            xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"
            xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
            xsi:schemaLocation="
http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd"
version="2.1">
  <globalBindings>
    <serializable uid="1" />
    <xjc:simple/>
  </globalBindings>
</bindings>
java jaxb java-metro-framework jaxb2
2个回答
8
投票

“简单绑定模式”是JAXB RI(Metro)的扩展功能。将集合属性名称设为复数是其设计的一部分。

来自:http://weblogs.java.net/blog/kohsuke/archive/2007/01/using_jaxb_ris.html

JAXB RI 中我最喜欢的功能是 更简单、更好的绑定方式, 这使得生成的代码均匀 更容易使用,通过...

  1. 尽可能消除 JAXBElement 可能
  2. 给您更好、更多 一般类型绑定
  3. 使用复数 适用的属性名称

您可以使用正常的架构自定义来控制属性名称。请参阅我之前的回答之一(链接如下):


0
投票

看看 JAXB2 Simplify Plugin,它可以禁用复数。

© www.soinside.com 2019 - 2024. All rights reserved.