Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Caché XML 转换New to Visual Studio Code? Get it now.
Caché XML 转换

Caché XML 转换

Oagil

|
2 installs
| (0) | Free
Caché/IRIS 源码(cls/mac/inc/csp/js/csr/css)与 Studio 导出 XML 双向转换。右键即可把源码导出为可导入服务器的 XML(支持 2010/2016/2023/2025),或把导出 XML 还原为源码(工程导出会比对工程列表与实际文件并提示差异)。完全离线。
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

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;双向转换经过逐字节比对的冒烟测试验证

安装

  1. 从 dist/cache-xml-convert-0.0.17.vsix 下载最新 vsix
  2. 安装(任选其一):
    • 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

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft