相关疑难解决方法(0)

JAXB使用fractionDigits对BigDecimal进行编组

所以这是我的问题.我给了一个我生成的XML文件应符合的XSD.使用org.apache.cxf.cxf-xjc-pluginmaven插件和外部绑定文件,我生成源代码.但是当我在尝试编组我的对象时,生成的XML不符合我的要求.

我的XSD包含以下内容:

<xsd:element maxOccurs="1" minOccurs="0" name="amount">
  <xsd:simpleType>
    <xsd:restriction base="xsd:decimal">
      <xsd:totalDigits value="13" />
      <xsd:fractionDigits value="2" />
    </xsd:restriction>
  </xsd:simpleType>
</xsd:element>
...
<xsd:element maxOccurs="1" minOccurs="0" name="rate">
  <xsd:simpleType>
    <xsd:restriction base="xsd:decimal">
      <xsd:totalDigits value="8" />
      <xsd:fractionDigits value="5" />
    </xsd:restriction>
  </xsd:simpleType>
</xsd:element>
Run Code Online (Sandbox Code Playgroud)

生成的XML片段如下所示:

<amount>109.5</amount>
...
<rate>10.25</rate>
Run Code Online (Sandbox Code Playgroud)

虽然我期待它是:

<amount>109.50</amount>
...
<rate>10.25000</rate>
Run Code Online (Sandbox Code Playgroud)

有没有办法以干净的方式解决这个问题?

我不想为每一个写几个适配器totalDigits,fractionDigits组合.由于XSD可能会发生变化,因此我希望保持生成的源代码不变.

java xsd jaxb xjc cxf-xjc-plugin

6
推荐指数
1
解决办法
7345
查看次数

标签 统计

cxf-xjc-plugin ×1

java ×1

jaxb ×1

xjc ×1

xsd ×1