JAXB Marshaller.Listener не очень хорошо работает с OutputStream - PullRequest
0 голосов
/ 14 октября 2018

Я хочу использовать Marshaller.Listener для вставки комментариев XML, например, в первый элемент.

Это прекрасно работает при сортировке в XMLStreamWriter.

Однако, если я произвожу выходной поток (что я предпочел бы сделать по разным причинам), текст комментария записывается в середину объявлений пространства имен корневого элемента!

Это происходит как с SunРеализации / Oracle и MOXy (2.5.2).

В реализации Sun / Oracle это происходит потому, что Sun / Oracle записывает содержимое в переменную с именем octetBuffer и периодически только копирует octetBuffer в outputtream.См. UTF8XmlOutput .

В MOXy (2.5.2) похоже, что OutputStreamRecord аналогично использует буфер byte [].

Я не заметил ни одного предупреждения документациия не касаюсь моего выходного потока от моего слушателя, но ясно, что это проблематично, если эти внутренние буферы не могут быть сначала очищены.

Есть идеи для обхода?

...