Формат вывода 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, который позволяет пользователю получать доступ / изменять переменные через стандартные методы установки / получения. Маршаллинг работает отлично.

Я также хочу сделать так, чтобы JaxB записал удвоение в определенном числовом формате (что-то похожее на десятичный формат, такой как "0,0000E00" . Это возможно сделать легко? Я был вынужден обратиться к нескольким различным ресурсам о том, как это сделать). это, но я признаю, что мои знания xml/schemas/JaxB не актуальны. Есть ли способ изменить вызов xjc, чтобы сделать это? Если возможно, я хочу избежать изменения файла схемы, если это возможно (он используется несколько кодов на разных языках, и я должен был бы понять, если изменение его сначала нарушит какой-либо из этих кодов).

Любая помощь, понимание или предложения по этому вопросу будет принята с благодарностью.

1 ответ

Решение

Вы можете использовать XmlAdapter настроить представление значения в XML. Ниже приведен пример, демонстрирующий, как использовать XmlAdapter если вы генерируете объектную модель из XmlSchema:

Вот еще один пример использования XmlAdapter когда вы начинаете с классов Java:

Другие вопросы по тегам