63.6. NonXML 문자 무시
JaxbDataFormat은 NonXML Character 를 무시하도록 지원합니다. filterNonECDHEChars 속성을 true로 설정하면 JaxbDataFormat은 NonXML 문자를 " 마샬링 또는 축소 해제하는 경우 "로 대체됩니다. 또한 Exchange 속성 Exchange.FILTER_NON_XML_CHARS 를 설정하여 수행할 수도 있습니다.
| JDK 1.5 | JDK 1.6+ | |
|---|---|---|
| 사용 중인 필터링 | staging API 및 구현 | 없음 |
| 사용하지 않는 필터링 | staging API만 해당 | 없음 |
이 기능은 Woodstox 3.2.9 및 Sun JDK 1.6 StAX 구현에서 테스트되었습니다.
JaxbDataFormat을 사용하면 스트림을 XML로 마샬링하는 데 사용되는 XMLStreamWriter를 사용자 지정할 수 있습니다. 이 구성을 사용하면 자체 스트림 작성기를 추가하여 비xml 문자를 완전히 제거, 이스케이프 또는 교체할 수 있습니다.
JaxbDataFormat customWriterFormat = new JaxbDataFormat("org.apache.camel.foo.bar");
customWriterFormat.setXmlStreamWriterWrapper(new TestXmlStreamWriter());
다음 예제에서는 Spring DSL을 사용하고 Camel의 NonXML 필터링 활성화도 보여줍니다.
<bean id="testXmlStreamWriterWrapper" class="org.apache.camel.jaxb.TestXmlStreamWriter"/>
<jaxb filterNonXmlChars="true" contextPath="org.apache.camel.foo.bar" xmlStreamWriterWrapper="#testXmlStreamWriterWrapper" />