我有一个传入的 XML,其值是编码形式,例如<img src=/".../" >
,但是在解组此数据时,JAXB 正在解码<img src=/"../" >
我不希望它执行的数据。
是否有任何配置可以在 JAXB 中禁用此行为?
我有一个传入的 XML,其值是编码形式,例如<img src=/".../" >
,但是在解组此数据时,JAXB 正在解码<img src=/"../" >
我不希望它执行的数据。
是否有任何配置可以在 JAXB 中禁用此行为?
通过使用注释或其他方式将变量值定义为 CDATA
将IS_REPLACING_ENTITY_REFERENCES
与 StAX 解析器一起使用应该会给您正在寻找的行为,
package forum13235119;
import javax.xml.bind.*;
import javax.xml.stream.*;
import javax.xml.transform.stream.StreamSource;
public class Demo {
public static void main(String[] args) throws Exception {
JAXBContext jc = JAXBContext.newInstance(Foo.class);
XMLInputFactory xif = XMLInputFactory.newFactory();
xif.setProperty(XMLInputFactory.IS_REPLACING_ENTITY_REFERENCES, false);
XMLStreamReader xsr = xif.createXMLStreamReader(new StreamSource("src/forum13235119/input.xml"));
Unmarshaller unmarshaller = jc.createUnmarshaller();
Foo foo = (Foo) unmarshaller.unmarshal(xsr);
System.out.println(foo.bar);
}
}
笔记:
这在我的环境中不起作用,但基于以下对类似问题的回答对某些 StAX 解析器有效: