XProc是一种专为XML文档设计的管道式处理语言,通过声明式XML标记将输入→转换→验证→输出等步骤串联成可复用、可测试、可版本控制的自动化流水线,解决手动处理XML易出错、难维护的问题。
XProc 是一种专为 XML 文档设计的管道式处理语言,核心是把多个处理步骤像“流水线”一样串起来,自动完成输入→转换→验证→输出这一整套操作。它不是编程语言,但有清晰的结构和可复用逻辑;不靠手写脚本,而是用 XML 标记来声明流程。
当你需要反复对一批 XML 做相同处理——比如从 DITA 文档生成 HTML 和 PDF、校验结构后再转成 JSON、或合并多个 XML 片段再加数字签名——手动执行容易出错、难维护。XProc 把这些动作定义成可保存、可测试、可共享的管道(pipeline),一次写好,多次运行。
一个 XProc 管道由三类要素构成:
所有步骤都通过 XML 元素声明,属性控制行为,没有自由代码块——这意味着更少语法陷阱,也更容易被工具分析和可视化。
下面这段 XProc 3.0 代码
,把输入 XML 用 XSLT 转成 HTML,再保存为文件:
它等价于命令行中连续执行 xsltproc + 重定向,但更明确、更易组合、更易调试。
目前主流支持 XProc 3.0 的处理器有 Calabash(Java,最成熟)、XML Calabash(新版)、以及实验性支持的 QuiXProc(基于 Node.js)。安装后,只需一条命令就能运行:
不需要额外学新语法——只要熟悉 XML 和常用 XML 技术(XSLT/XPath/XML Schema),上手非常直接。
基本上就这些。XProc 不复杂,但容易忽略它在自动化 XML 流水线中的稳定性和表达力。