java - JaxB 输出格式?

标签 java jaxb output-formatting

我目前正在编写使用 JaxB 处理 xml 信息读/写的 Java 代码。它填充了一个在整个程序中使用的 Java 类。在某些时候,类被编码并写回到 xml 中。我对此没有任何问题,一切都按预期运行。

我很好奇的是,是否有一种方法可以改变 JaxB 写出 float 的格式。例如,我使用的部分 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 以特定的数字格式(类似于“0.0000E00”之类的 DecimalFormat 的东西)写出双倍数。这可能很容易做到吗?我已经跳转到了几个不同的资源如何做到这一点,但我承认我对 xml/schemas/JaxB 的了解不是最新的。有没有办法改变 xjc 调用来做到这一点?如果可能的话,我想尽可能避免更改架构文件(它被不同语言的多个代码使用,我必须了解更改它是否会首先破坏这些代码中的任何一个)。

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

最佳答案

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

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

关于java - JaxB 输出格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7747309/

相关文章:

java - 无法将 csv 文件中的数据读回数组

java - 图像被缓存并耗尽了我的堆空间

从数据框中删除行名称的显示

使用 setw 和 setfill 的 C++ 输出格式化

java - 如何正确使用Handler

java - Ant 构建失败,没有可见错误

java - 非法注释异常 : Class has two properties of same name

JAXB 说明的 Java Oracle 文档(什么是 Java 属性特性)?

java - MOXy 的 xml-transient 声明是如何工作的?

nlp - 以conll格式输出结果(POS-tagging, stanford pos tagger)