非常に大きな xml ファイル (3GB 以上) を処理するアプリケーションがあります。分割にはトークナイザーを使用します。受信した xml には、異なる名前空間プレフィックスがあるか、プレフィックスがまったく使用されていません。トークナイザーがこれを処理することは可能ですか? 私が見つけた唯一のことは、inheritNamespaceTagName 属性を使用してデフォルトの名前空間を継承することでしたが、残念ながら、名前空間のプレフィックスが使用されている場合は機能しません。
ご協力いただきありがとうございます!
サンプル 1:
<foo:orders xmnls:foo="http://foo.com">
<foo:order id="1">Camel in Action</order>
<foo:order id="1">ActiveMQ in Action</order>
<foo:order id="1">DSL in Action</order>
</foo:orders>
サンプル 2:
<bar:orders xmnls:foo="http://foo.com">
<bar:order id="1">Camel in Action</order>
<bar:order id="1">ActiveMQ in Action</order>
<bar:order id="1">DSL in Action</order>
</bar:orders>
私たちのルート:
<route id="orderProcessorRoute">
<from uri="file:process-xml?delete=true"/>
<split streaming="true">
<tokenize token="order" xml="true"/>
<to uri="bean:xmlParseBean"/>
<to uri="vm:orderAggregator"/>
</split>
<to uri="file:backup"/>
</route>