などのエンコードされた形式の値を持つ受信 XML がありますが、<img src=/".../" >
このデータをアンマーシャリングすると、JAXB は、<img src=/"../" >
実行したくないデータをデコードしています。
JAXB でこの動作を無効にする構成はありますか?
などのエンコードされた形式の値を持つ受信 XML がありますが、<img src=/".../" >
このデータをアンマーシャリングすると、JAXB は、<img src=/"../" >
実行したくないデータをデコードしています。
JAXB でこの動作を無効にする構成はありますか?
注釈などを使用して、変数値を CDATA として定義します
StAX パーサーでを使用するIS_REPLACING_ENTITY_REFERENCES
と、探している動作が得られるはずです。
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 パーサーでは機能します。