【问题标题】:Java int type from XSD [duplicate]XSD中的Java int类型[重复]
【发布时间】:2012-08-23 00:24:39
【问题描述】:

可能重复:
XJC Generating Integer Instead of int

需要生成具有原始 int 字段的实体类。但是像这样的xml字符串

<xs:element name="RetriesCount" type="xs:int" minOccurs="0" default="2"/>

使用名为“retriesCount”的整数字段生成类。使用 xs:integer 会导致生成 BigInteger 类型的 'retriesCount' 字段。有没有办法生成一个简单的Java int?

【问题讨论】:

  • 虽然我不确定这是否真的是问题,除非minOccurs="0"是罪魁祸首?
  • @mellamokb 这是我的怀疑。

标签: java xsd jaxb


【解决方案1】:

因为您的架构表示 minOccurs="0",所以 JAXB 必须使用能够表示 null 值的类型,这就是它使用 Integer 的原因。如果您可以将架构更改为minOccurs="1",它将能够使用int

请注意,default="2" 不一定符合您对 XML 的期望。特别是,如果 is 指定了 RetriesCount 元素,但该元素没有值(即 &lt;RetriesCount /&gt; 或等效的 &lt;RetriesCount&gt;&lt;/RetriesCount&gt;),则绑定属性将仅采用默认值。如果RetriesCount 元素完全不存在,则属性值为null

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-10
    • 2013-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多