2.76. XSLT
使用 XSLT 模板转换 XML 有效负载。
2.76.1. 内部
-
XSLT 组件,URI 语法:
xslt:resourceUri
有关用法和配置详情,请参阅上面的链接。
2.76.2. Maven 协调
在 code.quarkus.redhat.com 上使用此扩展创建一个新项目
或者在现有项目中添加协调:
<dependency> <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-xslt</artifactId> </dependency>
2.76.3. 其他 Camel Quarkus 配置
要优化 XSLT 处理,扩展需要在构建时知道 XSLT 模板的位置。XSLT 源 URI 必须通过 quarkus.camel.xslt.sources
属性传递。可以使用逗号分隔多个 URI。
quarkus.camel.xslt.sources = transform.xsl, classpath:path/to/my/file.xsl
无方案 URI 将解释为 classpath:
URI。
只支持 classpath :
在 Quarkus 原生模式下支持 URI。文件:
http:
和其他类型的 URI 只能用于 JVM 模式。
现在,只有 JVM 模式支持 XSLT 元素 {clu}
。{ssagi}
如果使用 聚合
DSL,则必须使用 XsltSaxonAggregationStrategy
,例如
from("file:src/test/resources?noop=true&sortBy=file:name&antInclude=*.xml") .routeId("aggregate").noAutoStartup() .aggregate(new XsltSaxonAggregationStrategy("xslt/aggregate.xsl")) .constant(true) .completionFromBatchConsumer() .log("after aggregate body: ${body}") .to("mock:transformed");
另外,它只在 JVM 模式中被支持。
2.76.3.1. 配置
可使用以下属性配置 TransformerFactory 功能:
quarkus.camel.xslt.features."http\://javax.xml.XMLConstants/feature/secure-processing"=false
2.76.3.2. 扩展功能支持
- 禁用安全处理
- 函数在单独的 jar 中定义
- 函数在原生构建阶段增强。例如,可以注册它们以进行反映:
@RegisterForReflection(targets = { my.Functions.class }) public class FunctionsConfiguration { }
XSLT 源 URI 的内容在构建时被解析并编译到 Java 类中。这些 Java 类是运行时 XSLT 信息的唯一来源。XSLT 源文件根本不包含在应用程序存档中。
配置属性 | 类型 | 默认 |
---|---|---|
要编译的模板的逗号分隔列表。 |
| |
生成的类的软件包名称。 |
|
|
TransformerFactory 功能。 |
|
构建时修复的配置属性。所有其他配置属性可在运行时使用。