2.76. XSLT


使用 XSLT 模板转换 XML 有效负载。

2.76.1. 内部

有关用法和配置详情,请参阅上面的链接。

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. 扩展功能支持

xalan 的扩展功能仅在满足以下条件时正常工作

  1. 禁用安全处理
  2. 函数在单独的 jar 中定义
  3. 函数在原生构建阶段增强。例如,可以注册它们以进行反映:
@RegisterForReflection(targets = { my.Functions.class })
public class FunctionsConfiguration {
}
注意

XSLT 源 URI 的内容在构建时被解析并编译到 Java 类中。这些 Java 类是运行时 XSLT 信息的唯一来源。XSLT 源文件根本不包含在应用程序存档中。

配置属性类型默认

lock quarkus.camel.xslt.sources

要编译的模板的逗号分隔列表。

字符串

 

lock quarkus.camel.xslt.package-name

生成的类的软件包名称。

字符串

org.apache.camel.quarkus.component.xslt.generated

lock quarkus.camel.xslt.features

TransformerFactory 功能。

Map<String,Boolean>

 

lock 构建时修复的配置属性。所有其他配置属性可在运行时使用。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.