2021SC@SDUSC【软件工程应用与实践】Cocoon代码分析(七)

本文详细分析了Cocoon框架中IncludeTransformer的实现,包括其特性如相对源解析、根元素剥离、参数传递、后备元素、并行处理和递归处理。该转换器还实现了缓存支持,并具有抽象变压器的扩展功能。此外,文章探讨了类的属性,如静态、私有和不可变属性,以及关键方法的用途。
摘要由CSDN通过智能技术生成

2021SC@SDUSC

在这次博客中我是对core文件夹下transformation文件夹下的IncludeTransformer进行分析,在此之前我已经对CIncludeTransformer进行了了解与分析。

IncludeTransformer.java(上)

1.总结

这个文件是一个简单的转换器,包括可解析的输入源(通过Cocoon的SourceResolver访问)。

这个转换器的一个有趣特性是,它实现了CacheableProcessingComponent接口,并提供了对缓存的完全支持。换句话说,如果给这个转换器的输入没有改变,并且所有包含的源都是(可缓存的)并且仍然有效,那么这个转换器将不会像CIncludeTransformer那样强制管道重新生成。

下面介绍了一些这个转换器的特性:

  • 相对源解析
    • 包含使用相对URI指定的源文件将相对于源文档位置进行解析。这与XIncludeTransformer行为一致,但与CIncludeTransformer不同。
  • 根元素剥离
    • 包含内容的根元素可以通过在include元素上指定strip-root="true"自动剥离。这与CIncludeTransformer提供的功能相同。
  • 参数传递
    • 传递给包含的源的参数可以通过两种方式指定:第一种方式是将它们编码到源本身。另一种方法允许由转换器自动完成参数的编码,这样就可以很容易地传递包含& (amperstand)或= (equals)字符的参数名称或值,这些字符在uri中是保留字符。
  • 后备元素
    • IncludeTransformer允许在include元素中指定回退元素。如果源包含导致异常,则将包含回退元素的XML内容,而不是源内容。回退元素可以嵌套包含元素。
  • 并行处理
    • 这个转换器的另一个特性是它允许并行处理包含。通过将可选参数parallel设置为true,将在并行线程中处理(包括)各种包含的内容,而不是在一个线程中串行处理。默认情况下,并行处理是关闭的。
  • 递归处理
    • 这个转换器允许递归处理包含。通过将可选参数recursive设置为true,将扫描包含的各种内容以查找包含元素,并以与传入XML事件相同的方式处理这些内容。这个参数可以在转换器定义中设置。这个特性类似于XInclude处理。默认情况下,递归处理是关闭的。

继承自AbstractTransformer

实现了Serviceable,Configurable,CacheableProcessingComponent接口

2.属性:

一些私有的静态的不可以修改的属性:

  • private static final String NS_URI = "http://ap
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值