Java Jaxb 解组和数据字节序

Java Jaxb unmarshall and endianness of data

我打算使用 jaxb 将 xml 解组为 POJO。现在这个 pojo 将被序列化并通过网络发送到其他应用程序。现在这个 POJO 中的一些包含一个 int 字段(4 或 8 个字节),当从 xml 读取时,需要根据一些标志以小端或大端表示法对其进行序列化。 (此标志不是逐个字段而是在应用程序实例级别)。无论如何在 Jaxb 中,解组可以通过 xml 中的某种注释来遵守这种字节序设置吗?

在这方面的任何帮助表示感谢。

谢谢

您可以在您的 POJO 中指定您自己的 XmlAdapter

@XmlElement(name="intField")
@XmlJavaTypeAdapter(EndianIntAdapter.class)
public int intField;

然后实现适配器:

class EndianIntAdapter extends XmlAdapter<String, Integer> {
  @Override
  public String marshal(Integer field) throws Exception {
    //int to string based on endianness
  }

  @Override
  public Integer unmarshal(String str) throws Exception {
    //String from xml to int based on endianness
  }
}