当数据包含不可显示的字符时,JAXB输出无效的XML

Pau*_*lor 6 java xml jaxb eclipselink moxy

我正在使用JAXB 2.2.5从JAXB模型输出Xml,数据从数据库中填充,有时数据库包含不可显示的字符,它不应该像

0x1a 
Run Code Online (Sandbox Code Playgroud)

如果确实如此,那么JAXB通过输出这个char来输出无效的Xml,它不应该逃脱它或者其他东西吗?

更新

我想知道是否有任何实现可以解决这个问题,也许Eclipselink MOXy呢?

编辑

我尝试了解决非法char问题的解决方法,但它以不合需要的方式更改输出.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><metadata created="2013-02-27T11:40:04.009Z" xmlns="http://musicbrainz.org/ns/mmd-2.0#" xmlns:ext="http://musicbrainz.org/ns/ext#-2.0"><cdstub-list count="1" offset="0"><cdstub id="w237dKURKperVfmckD5b_xo8BO8-" ext:score="100"><title>fred</title><artist></artist><track-list count="5"/></cdstub></cdstub-list></metadata>
Run Code Online (Sandbox Code Playgroud)

<?xml version="1.0" ?><metadata xmlns:ext="http://musicbrainz.org/ns/ext#-2.0" xmlns="http://musicbrainz.org/ns/mmd-2.0#" created="2013-02-27T11:39:15.394Z"><cdstub-list count="1" offset="0"><cdstub id="w237dKURKperVfmckD5b_xo8BO8-" ext:score="100"><title>fred</title><artist></artist><track-list count="5"></track-list></cdstub></cdstub-list></metadata>
Run Code Online (Sandbox Code Playgroud)

<track-list count="5"/>已经成为<track-list count="5"></track-list>这是不可取的,我不知道为什么它是这样做的.

the*_*dor 5

这显然是一个常见问题 - 并且标记为JAXB生成非法XML字符的错误.

您可以在Escape非法字符中找到解决方法