我目前正在研究使用 JaxB 处理 xml 信息的读/写的 Java 代码。它填充了一个在整个程序中使用的 Java 类。在某些时候,该类被编组并写回 xml。我对此没有任何问题,并且一切都按预期运行。
我很好奇的是,是否有办法改变 JaxB 写出浮点数的格式。例如,我正在使用的部分 xml 架构包含以下摘录:
.
.
<xs:element name="myObfuscatedValue">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:double">
<xs:attrbute name="myObfuscatedValue__comment" type="comment" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
.
.
所以当我解组它时,'myObfuscatedValue' 基本上是作为一个 Double 出现的。然后我有一个围绕 JaxB 生成的类的包装类,它允许用户通过标准的 setter/getter 访问/修改变量。编组返回也可以正常工作。
我还想做的是让 JaxB 以特定的数字格式写出双精度数(类似于 DecimalFormat 像 "0.0000E00" 。这很容易做到吗?我已经被反弹到几个不同的资源来了解如何做这个,但我承认我对 xml/schemas/JaxB 的了解不是最新的。有没有办法改变 xjc 调用来做到这一点?如果可能,我想尽可能避免更改模式文件(它被不同语言的多个代码,我必须了解更改它是否会首先破坏任何这些代码)。
任何关于此事的帮助、见解或建议将不胜感激。