java - 为什么 JAXB 2 注册机的 XJC 简单模式会更改集合名称?

标签 java jaxb java-metro-framework jaxb2

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

<?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>

最佳答案

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

发件人:http://weblogs.java.net/blog/kohsuke/archive/2007/01/using_jaxb_ris.html

My favorite feature in the JAXB RI is the simpler and better binding mode, which makes the generated code even easier to use, by ...

  1. Eliminating JAXBElement as much as possible
  2. Giving you a better, more typed binding in general
  3. Use plural property names where applicable

您可以使用正常的模式自定义来控制属性名称。引用我之前的一个回答(链接如下):

关于java - 为什么 JAXB 2 注册机的 XJC 简单模式会更改集合名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5155560/

相关文章:

Java GSSAPI : Compare two GSSCredential Instances

java - 当我的 View 是选定 View 时,为什么不显示 View 选项卡?

java - 当 XSD 驻留在 JAR 中时,如何将包含另一个 XSD 的 XSD 与 JAXB 一起使用?

java - 使用 Metro 2.1 的 Tomcat 7.0.11 上的 WSServlet ClassNotFoundException 错误

java - 将 wsit-client.xml 中的位置导入到另一个 jar 中的文件,使用 URL 字符串在类路径上定位文件

java - 设置按钮可见

java - 在RecyclerView-AndroidX中的项目之间添加不同的布局

XML 命名空间前缀不能为空

java - JAXB 编辑列表 setter/getter ?

jax-ws - 如何自定义名称在 Java 中保留的 SOAP 操作的 JAXWS 映射