TrAX是JAXP中专用于XML转换的API,基于XSLT 1.0规范,通过TransformerFactory、Transformer、Source/Result实现解耦的格式转换,不负责解析或生成XML,适用于结构重写与视图生成。

Java TrAX(Transformation API for XML)是JAXP(Java API for XML Processing)的一部分,专用于执行XML文档的转换操作,核心目标是把一种XML结构按XSLT样式表规则,转换成另一种格式(如HTML、纯文本、另一份XML等)。
TrAX 的定位和作用
它不负责解析或生成XML,而是聚焦在“转换”环节——即输入一个XML源(Source),应用XSLT模板(StyleSheet),输出目标结果(Result)。整个过程与底层解析方式(DOM/SAX/StAX)解耦,开发者只需关注数据流和转换逻辑。
- 基于标准XSLT 1.0规范,兼容主流XSLT处理器(如Xalan)
- 提供统一接口,屏蔽不同Transformer实现的差异
- 支持运行时动态加载样式表,无需编译期绑定
核心组件和使用流程
TrAX围绕三个关键抽象展开:TransformerFactory、Transformer 和 Source/Result。
- TransformerFactory:通过TransformerFactory.newInstance()获取,是创建Transformer的工厂。它可检测系统默认实现(如Xalan),也支持指定类名切换引擎
- Transformer:由工厂根据XSLT文件或StreamSource创建,封装了实际转换逻辑。调用transform(Source, Result)即触发转换
- Source / Result:统一输入输出契约。常见组合包括StreamSource + StreamResult(处理字符串/文件)、DOMSource + DOMResult(内存中DOM树转换)
典型应用场景
TrAX不是用来读取或构建XML的,而是解决“结构重写”问题:
立即学习“Java免费学习笔记(深入)”;
和JAXB、DOM、SAX的区别
TrAX不涉及对象绑定,也不做事件驱动解析或树形建模:
- JAXB面向Java对象 ↔ XML内容映射,适合数据实体交换
- DOM/SAX面向XML文档的读写控制,适合校验、提取、编辑节点
- TrAX面向声明式转换规则,适合格式迁移、视图生成、模板化输出










