java - xs :integer to Java Integer instead of BigInteger 的 JAXB 绑定(bind)

标签 java binding jaxb xjc

应避免以下讨论。这个问题不是:

  • 使用 xs:int 代替 xs:integer。
  • 使用原始 int 而不是 Integer。
  • 你为什么需要这个。
  • 如果等等,你会怎么做

问题:

我想要一个 jaxb 绑定(bind)声明的示例来覆盖 xs:integer 到 Java BigInteger 的默认映射,以便 xjc 生成 Java Integer。

例如

<xs:attribute name="id" type="xs:integer"/>

应该产生

@XmlAttribute(name = "id")
Integer id;

不是

@XmlAttribute(name = "id")
BigInteger id;

最佳答案

您可以将以下内容添加到您的绑定(bind)文件中:

<globalBindings>
    <javaType xmlType="xs:integer" name="java.lang.Integer"/> 
</globalBindings>

这将产生,例如:

@XmlAttribute(name = "id")
@XmlJavaTypeAdapter(Adapter1 .class)
protected Integer id;

public int getId() {
    if (id == null) {
        return new Adapter1().unmarshal("0");
    } else {
        return id;
    }
}

public void setId(Integer value) {
    this.id = value;
}

关于java - xs :integer to Java Integer instead of BigInteger 的 JAXB 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41246098/

相关文章:

java - 无法使用 Guice 绑定(bind) TypeLiteral

jquery - Knockout Js - ko.utils.arrayFirst 不起作用

jaxb - jersey使用jaxb注解时如何配置json格式

java - 不区分大小写 Jaxb2Marshaller

java - 通过同一个activity中的activity解析不同的数据

java - 在java gui中添加多个图像

java - java中发生异常时如何避免程序终止

.net - 为什么 WPF 支持绑定(bind)到对象的属性而不是字段?

WPF 数据网格 : Loading_Completed Event?

java - JAXB - 尝试从外部 jar 编码 java 对象