Camel provides its own implementation of URIResolver
which allows Camel to
load included files from the classpath and more intelligent than before.
For example this include:
<xsl:include href="staff_template.xsl"/>
This will now be located relative from the starting endpoint, which for example could be:
.to("xslt:org/apache/camel/component/xslt/staff_include_relative.xsl")
Which means Camel will locate the file in the classpath as org/apache/camel/component/xslt/staff_template.xsl
.
This allows you to use xsl include and have xsl files located in the same
folder such as we do in the example org/apache/camel/component/xslt
.
You can use the following two prefixes classpath:
or file:
to
instruct Camel to look either in classpath or file system. If you omit the prefix then Camel
uses the prefix from the endpoint configuration. If that neither has one, then classpath is
assumed.
You can also refer back in the paths such as
<xsl:include href="../staff_other_template.xsl"/>
Which then will resolve the xsl file under org/apache/camel/component
.