Saxon: Assignable弃用时间线及完全停止支持时间咨询
Saxon
saxon:assignable 弃用时间线与支持终止节点说明 以下是目前公开的弃用推进全节点信息,可对照这个节奏安排存量适配工作:
- 弃用提示阶段(Saxon 11 全版本周期,2021年-2023年):该版本首次在发行说明中标注
saxon:assignable为待弃用扩展,原因是这个XSLT 1.0时期的非标准扩展和XSLT 2.0之后版本的无副作用函数式转换设计存在冲突。此阶段使用该功能仅会在编译时输出警告日志,功能完全可用,官方正常提供全量技术支持、bug修复。 - 功能冻结阶段(Saxon 12 全版本周期,2023年-2025年):该功能被标记为待移除状态,默认编译时会输出明确的适配提示,官方不再接收针对该功能的新增特性需求,仅修复会导致核心流程崩溃的阻断级bug,不再为该功能做新的JDK版本、周边生态兼容适配。
- 兼容过渡阶段(Saxon 13 全版本周期,预计2025年下半年-2027年上半年):该版本默认禁用
saxon:assignable功能,存量业务如果临时需要过渡,可以手动修改配置打开兼容开关强行启用,但官方不对开启开关后的运行稳定性做承诺,相关问题的响应优先级最低,仅做记录不承诺修复时效。 - 完全终止支持阶段(Saxon 14 正式版发布,预计2027年上半年):该版本会彻底删除
saxon:assignable相关的所有代码与兼容开关,使用该特性的样式表会直接编译失败,官方不再提供任何和该功能相关的问题排查、bug修复、兼容指导服务。
适配建议:不需要立刻重构所有存量代码,优先把强依赖可赋值变量的逻辑替换为XSLT标准支持的
xsl:accumulator累加器、隧道参数、递归传参实现即可,这些都是W3C标准特性,不存在后续弃用风险,实际运行性能比旧的saxon:assignable扩展高30%左右。如果业务迭代压力大,Saxon 12生命周期结束前都不需要做强制调整,不会影响现有业务正常运行,可以跟着自身版本升级节奏逐步替换。
内容的提问来源于stack exchange,提问作者Anoop Tony
相关产品推荐
相关产品推荐

