Red Hat Training

A Red Hat training course is available for Red Hat Fuse

158.6. NonXML 文字を無視する

この機能は Camel 2.2.0 の新機能です。
JaxbDataFromat は NonXML 文字を無視することをサポートしています。filterNonXmlChars プロパティーを true に設定する必要があります。JacbDataFormat は NonXML 文字は " で、メッセージをマーシャリングまたはアンマーシャリングするときに " に置き換えられます。また、Exchange プロパティー Exchange.FILTER_NON_XML_CHARS を設定して実行することもできます。

 

 JDK 1.5JDK 1.6+

使用中のフィルタリング

Stax API および実装

非対応

使用されていないフィルタリング

Stax API のみ

非対応

この機能は、Woodstox 3.2.9 および Sun JDK 1.6 StAX 実装でテストされています。

Camel 2.12.1
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" />