2.77. XSLT


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

2.77.1. 内部内容

有关使用和配置详情,请参阅上述链接。

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 的扩展功能仅在 以下情况中正常工作:

  1. 禁用 secure-processing
  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.