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

Use*_*789 10 java java-metro-framework jaxb jaxb2

JAXB简单绑定模式将集合名称修改为其复数"版本",例如"additionalData"变为"additionalDatas".有没有改变这种行为的解决方案?我需要一个Java字段名称和方法名称等于XSD字段名称.我的绑定文件:

<?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>
Run Code Online (Sandbox Code Playgroud)

bdo*_*han 6

"简单绑定模式"是JAXB RI(Metro)的扩展功能.使集合属性名称复数是其设计的一部分.

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

我在JAXB RI中最喜欢的功能是更简单,更好的绑定模式,这使得生成的代码更容易使用,...

  1. 尽可能地消除JAXBElement
  2. 一般来说,为您提供更好,更多类型的绑定
  3. 适用时使用多个属性名称

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

  • 有什么办法可以关闭此功能并继续使用“简单绑定模式”吗?因为我需要它将 @XmlRootElement 添加到生成的类中。 (3认同)