2.77. XSLT
使用 XSLT 模板转换 XML 有效负载。
2.77.1. 内部内容
-
XSLT 组件,URI 语法:
xslt:resourceUri
有关使用和配置详情,请参阅上述链接。
2.77.2. Maven 协调
在 code.quarkus.redhat.com 上创建一个具有此扩展名的新项目
或者在现有项目中添加协调:
<dependency> <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-xslt</artifactId> </dependency>
2.77.3. 其他 Camel Quarkus 配置
要优化 XSLT 处理,扩展需要知道构建时 XSLT 模板的位置。XSLT 源 URI 必须通过 quarkus.camel.xslt.sources
属性传递。多个 URI 可以用逗号分隔。
quarkus.camel.xslt.sources = transform.xsl, classpath:path/to/my/file.xsl
无 scheme-less URI 解释为 classpath:
URI。
只有 classpath:
在 Quarkus 原生模式下支持 URI。文件:
http:
、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.77.3.1. 配置
可使用以下属性配置 TransformerFactory 功能:
quarkus.camel.xslt.features."http\://javax.xml.XMLConstants/feature/secure-processing"=false
2.77.3.2. 扩展功能支持
xalan 的扩展功能仅在 以下情况中正常工作:
- 禁用 secure-processing
- 功能在单独的 jar 中定义
- 功能在原生构建阶段增强。例如,可以注册它们以反映:
@RegisterForReflection(targets = { my.Functions.class }) public class FunctionsConfiguration { }
XSLT 源 URI 的内容会在构建时解析并编译到 Java 类中。这些 Java 类是 XSLT 信息在运行时的唯一来源。XSLT 源文件根本不包含在应用程序存档中。
配置属性 | 类型 | 默认 |
---|---|---|
要编译的、以逗号分隔的模板列表。 |
| |
生成的类的软件包名称。 |
|
|
TransformerFactory 功能. |
|
构建时修复的配置属性。所有其他配置属性可在运行时过度使用。