これが私の問題です。生成されたXMLファイルが準拠するXSDが与えられました。org.apache.cxf.cxf-xjc-plugin
Mavenプラグインと外部バインディングファイルを使用して、ソースコードを生成します。しかし、オブジェクトをマーシャルしようとすると、生成された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>
生成されたXMLは次のようになります。
<amount>109.5</amount>
...
<rate>10.25</rate>
私はそれが次のようになることを期待していましたが:
<amount>109.50</amount>
...
<rate>10.25000</rate>
この問題をクリーンな方法で解決する方法はありますか?
totalDigits
私は、すべてのfractionDigits
組み合わせに対して複数のアダプターを作成することを望まない。また、XSDは変更される可能性があるため、生成されたソースコードはそのままにしておきます。