camel xslt コンポーネントを使用して xhtml ファイルを変換します。ただし、ファイルを変換するために、使用される XMLReader は w3c Web サイトから xhtml dtd をダウンロードします。
xslt コンポーネントに、ローカル バージョンを使用するように xml リーダーを構成するように指示することは可能ですか (たとえば、xml カタログを使用して)?
camel xslt コンポーネントを使用して xhtml ファイルを変換します。ただし、ファイルを変換するために、使用される XMLReader は w3c Web サイトから xhtml dtd をダウンロードします。
xslt コンポーネントに、ローカル バージョンを使用するように xml リーダーを構成するように指示することは可能ですか (たとえば、xml カタログを使用して)?
プロセッサーを使用して、CatalogResolver を使用して XMLReader を作成し、この xmlReader を使用して SAXSource を交換に入れる方法を見つけました。
@Override
public void process(Exchange exchange) throws Exception {
InputStream inputStream = exchange.getIn().getBody(InputStream.class);
XMLReader xmlReader = XMLReaderFactory.createXMLReader();
xmlReader.setEntityResolver(new CatalogResolver());
exchange.getIn().setBody(new SAXSource(xmlReader, new InputSource(inputStream)));
}
xsltComponent によって使用される Transformer は、この xmlReader を使用します。