Ручка спецификации в JAXB unmarshaller

Как JAXB может обрабатывать строку (XML), которая начинается с спецификации? Есть ли свойство для установки или какая-либо конфигурация, чтобы пропустить спецификацию при демаршаллинге? Существуют ли другие реализации JAXB, которые могли бы делать это помимо реализации Oracle?

1 ответ

Если вы имеете в виду файл UTF-8 с спецификацией, вам придется пропустить его самостоятельно. Довольно просто придумать класс InputStream, который проверяет первые два байта для спецификации, пропускает их и в противном случае оборачивает другой InputStream. Это было задокументировано в этом ответе SO, и открытый исходный код для этой цели доступен на GitHub.

Если вы имеете в виду какую-то другую кодировку, например UTF-16, JRE должна прочитать BOM из потока UTF-16 и отбросить ее сама.

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