JaxB输出格式



我目前正在编写一个Java代码,该代码使用JaxB来处理xml信息的读写。它填充在整个程序中使用的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生成的类周围有一个包装器类,它允许用户通过标准设置器/getter器访问/修改变量。编组返回也可以。

我还想做的是让JaxB以特定的数字格式(类似于"0.0000E00"之类的DecimalFormat)写出双精度。这可能很容易做到吗?关于如何做到这一点,我查阅了许多不同的参考资料,但是我承认我的xml/schemas/JaxB知识不是最新的。是否有一种方法可以改变xjc调用来做到这一点?如果可能的话,我希望尽可能避免更改模式文件(它由不同语言的多个代码使用,我必须了解更改它是否会首先破坏任何这些代码)。

对于此事,如有任何帮助、见解或建议,我将不胜感激。

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

  • 使用JAXB为元素生成的类,该元素需要具有模式
  • 的整数
  • http://blog.bdoughan.com/2011/08/xml-schema-to-java-generating.html

下面是另一个使用XmlAdapter的例子,当你从Java类开始:

  • http://blog.bdoughan.com/2011/05/jaxb-and-joda-time-dates-and-times.html

相关内容

  • 没有找到相关文章

最新更新