Формат вывода JaxB? - PullRequest
       24

Формат вывода JaxB?

2 голосов
/ 13 октября 2011

В настоящее время я работаю над кодом 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 Ответ

1 голос
/ 13 октября 2011

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

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

...