JaxB输出格式?

时间:2011-10-12 22:24:15

标签: java jaxb output-formatting

我目前正在研究使用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 / getters访问/修改变量。编组后面的工作也很好。

我还想做的是让JaxB以特定的数字格式写出双倍的内容(类似于像“0.0000E00”这样的DecimalFormat。这是否可以轻松实现?我已被反弹到几个不同的资源上怎么做,但我承认我对xml / schemas / JaxB的了解并不是最新的。有没有办法改变xjc调用来做这个?如果可能的话,我想尽可能避免更改模式文件(它被不同语言的多个代码使用,我必须先了解是否更改它会先破坏这些代码。

非常感谢任何有关此事的帮助,见解或建议。

1 个答案:

答案 0 :(得分:1)

您可以使用XmlAdapter自定义XML在XML中的表示方式。下面是一个演示如果从XmlSchema生成对象模型时如何使用XmlAdapter的示例:

以下是从Java类开始时使用XmlAdapter的另一个示例:

相关问题