Overview Version History Q & A Rating & Review
Caché XML 转换 (cache-xml-convert)
Caché / IRIS 源代码与 Studio 导出 XML 的双向转换 VSCode 插件。完全离线,不依赖任何 AI 服务。
右键即可把源码导出为可导入服务器的 XML,或把导出 XML 还原为源码。
功能特性
支持源码类型 :.cls / .mac / .inc / .csp / .js / .csr / .css
目标数据库版本 :2010 / 2016 / 2023 / 2025(默认 2016,2016 版可导入 2023/2016/2010;2025 与 2023 导出格式一致仅 zv 不同)
支持还原工程xml :还原按工程导出的 XML(含 <Project> 节点)时,自动比对工程文件列表与 XML 实际包含的文件——一致不提示,有差异输出提示
批量操作 :支持多选文件与文件夹递归
自动推导 :类名从 Class 声明提取;CSP/JS/CSR/CSS 的 application 从路径中 src 与 web 目录段推导
还原统一 :源码统一输出为 UTF-8 + LF;双向转换经过逐字节比对的冒烟测试验证
安装
从 dist/cache-xml-convert-0.0.17.vsix 下载最新 vsix
安装(任选其一):
VSCode 扩展面板右上角 ... → 从 VSIX 安装... → 选择下载的文件
命令行:code --install-extension cache-xml-convert-0.0.17.vsix
使用方法
在资源管理器或编辑器中右键:
文件类型
菜单项
输出位置
.cls / .mac / .inc / .csp / .js / .csr / .css
Caché: 源码导出为 XML
工作区 导出/ 目录
.xml
Caché: XML 还原为源码
工作区 src/ 目录
输出文件名与 Studio 服务器导出一致(如 PHA.DTC.COM.Print.xml、imedical_web_csp_pha.tracecode.v2.main.xml)
.inc 导出文件名点换 _ 并带 _inc 标识(如 PHA.COM.Base → PHA_COM_Base_inc.xml),与同名 cls 的 XML 隔离,防止相互覆盖
.mac 导出文件名带 .mac 后缀(如 BSP.SMP.ZSTU → BSP.SMP.ZSTU.mac.xml,与服务器导出一致),与同名 cls 的 XML 天然不冲突
转换结果在输出面板(Caché XML 转换)中逐条显示:[OK] 成功、[失败] 错误、[提示] 工程比对差异
设置项
设置
默认值
说明
cache-xml-convert.version
2016
生成 XML 的目标数据库版本(2016 兼容版可导入 2023/2016/2010)
cache-xml-convert.outDir
导出
XML 输出目录(相对工作区根,也可填绝对路径)
cache-xml-convert.srcRoot
src
后台 .cls/.inc/.mac 还原源码的目标根目录
cache-xml-convert.webSrcRoot
src
前端 csp/js/csr/css 还原源码的目标根目录
cache-xml-convert.app
空
CSP/JS/CSR/CSS 的 application(如 /imedical/web/),留空则从路径中的 src 与 web 目录段自动推导
前后端还原根目录分开维护:工程导出等混合 XML 还原时,.cls 写入 srcRoot,csp/js/csr/css 写入 webSrcRoot;两项都默认 src,不改则行为与旧版一致。
版本记录
版本
说明
0.0.17
修复方法等类成员上的 <ProcedureBlock>0</ProcedureBlock> 误还原为 Not ProcedureBlock 的问题(类成员应写 ProcedureBlock = 0,仅类头用 ProcedureBlock / Not ProcedureBlock 形式)
0.0.16
代码与 0.0.15 一致,仅更新 README(补 0.0.15 版本记录与安装链接,同步 Marketplace 页面文档)
0.0.15
新增 Trigger 触发器、XData、Query 的 SQL 体(<SqlQuery>)、Collection 集合属性(list Of)双向转换;<UDLText> 内容按注释类型规范化(单行/多行 /* */ 与 // 行注释规则,经 2016 实机导出验证);对齐真实导出的排序细节:Storage(Description 最前、补 SqlTableNumber)、SQLMap(BlockCount 紧跟 PopulationType)、Index/Method/Query 子元素顺序、类头 Inheritance 位置;修复 Index On 子句 :Exact 排序后缀与 (ELEMENTS) 集合下标丢失、SqlComputeOnChange 括号值丢失、Parameter Default 前导/尾随空格丢失、显式 CodeMode=code 被误过滤、方法块扫描未识别块注释导致的未闭合误报、无类型属性(Property result;)解析失败
0.0.14
支持 Relationship 声明双向转换(此前报"无法识别的源码行");导出时 Relationship 属性自动附带 <Relationship>1</Relationship> 标记(缺失会导致导入后关系丢失);修复 InitialExpression 表达式还原丢失 {}(0 等数字字面量保持无括号);修正属性 <Collection/>/<Relationship>0</Relationship> 的错误合成(真实服务器各版本导出均不带,仅 Relationship 属性带 <Relationship>1</Relationship>)
0.0.13
支持类体中方法外的 // 与 /* */ 注释转 <UDLText> 节点(此前报"无法识别的源码行");修复 Output 参数在 XML 中误转为 & 前缀(正确为 *,如 *dataList);空方法体导出时省略 <Implementation>(与服务器导出一致)
0.0.12
新增 2025 版本导出(Linux IRIS 2025.1,与 2023 格式一致仅 zv 不同);移除 2023-2016 兼容版;修复 Storage 排序缺 IndexLocation 的问题
0.0.11
新增 .mac 例程双向转换(导出带 languagemode="0"、文件名 名称.mac.xml;还原到后台 srcRoot,ROUTINE 头行自动剥除/补回)
0.0.10
新增 EOL 设置:导出 XML 行尾跟随目标服务器 OS(Windows=crlf 默认 / Linux=lf),修正"inc 固定 LF"的错误归因(实际由导出服务器 OS 决定)
0.0.9
支持 <RoutineWideBase64>(老版本 IRIS 宽字符例程导出,Base64/UTF-16LE 自动解码还原)
0.0.8
还原时 Src Root / Web Src Root 目录不存在则自动创建,不再报错
0.0.7
设置项排序:Out Dir → Src Root → Web Src Root → App → Version
0.0.6
新增 .inc include 双向转换,导出文件名带 _inc 标识防止与同名 cls 覆盖
0.0.5
还原源码根目录区分前端(webSrcRoot)与后台(srcRoot),均默认 src
0.0.4
工程导出:解析 <Project> 节点,比对工程列表与实际文件并提示差异
0.0.3
新增 .css 源码双向转换
0.0.2
新增 .csr 源码双向转换
0.0.1
初版:.cls / .csp / .js 与 Studio 导出 XML 双向转换
License
MIT