JAXB 解组中的忽略 & 符号 (Java 1.8)

Ignoring & Symbol in JAXB Unmarshalling (Java 1.8)

我正在尝试解组 XML 其架构或多或少是这样的:

<xs:complexType>
    <xs:sequence>
        <xs:element name="type" type="xs:int" minOccurs="0"/>
        <xs:element name="scope" type="xs:int" minOccurs="0"/>
        <xs:element name="code" type="xs:int" minOccurs="0"/>
        <xs:element name="target" type="xs:string" minOccurs="0"/>
        <xs:element name="message" type="xs:string" minOccurs="0"/>
    </xs:sequence>
</xs:complexType>

我使用这种 XML 格式在 JMS 中传递消息。

现在我的问题是,消息标签偶尔会包含一个包含 & 的字符串(例如:Tom & Jerry)。现在我知道 XML 更喜欢 &amp;。但是有没有办法在解组期间忽略 & 。目前,它抛出异常:

[org.xml.sax.SAXParseException; lineNumber: 163; columnNumber: 45; The reference to entity "T" must end with the ';'

对此的任何建议都会有所帮助。我可以做一些字符串操作,比如搜索 & 并用 &amp; 替换,一旦解组,只需将 & 添加回来。但不能 100% 确定它会起作用。

XML 并不“喜欢”它像 &amp;,它 需要 它。您的数据格式不正确 XML,因此没有 XML 工具会接受它。无论生成什么程序,XML 都已损坏,需要修复。