5

有谁知道从 Cobol Copybook 转换为 XSD 的工具?或 XML。

4

5 回答 5

8

为 COBOL 字帖构建一个成熟的解析器有一些挑战:

在编译的文本操作阶段,Copybook 被合并到 COBOL 程序中。字帖源本身可能不完整。获得完整解析源的唯一方法是对其进行预处理,就好像它已被引入 COBOL 源程序一样。通常通过 COPY 指令将字帖引入 COBOL 程序。提出这个问题似乎有点毫无意义,但请考虑以下几点:

1) COPY 指令带有一个 REPLACING 选项。从表面上看,这似乎很简单,但一旦深入细节,它就会变得非常“有趣”。请参阅:复制指令

2) REPLACE 指令。该指令还可以在 COPY 指令完成其位后操纵源文本。请参阅:替换指令

3) 嵌套的字帖。这个可能不像前两个那么讨厌,但也要记住嵌套。

4) COBOL 图片字符串的语法也值得一笑。看看:图片字符串符号

5) 您的解析器还需要处理 COBOL 延续规则。请参阅:续行,尤其是 PSEUDO TEXT 的续行。

我不想让您气馁,但解析 COBOL 并非易事。

从好的方面来说,如果你的字帖有一个非常简单的结构,就像许多人一样,那么可以使用级联的正则表达式来完成这项工作。这种方法在那些需要在软件改造项目中解析 COBOL 程序(和字帖)的人中相当普遍。也许看看:RegReg

干杯...

于 2009-11-04T18:41:02.190 回答
2

很久以前,我构建了一些代码来解析 COBOL copybook 并生成 XSD 文件。

由于 COBOL 语言结构非常规则,我制作了一个正则表达式来获取变量名和识别字段长度。使用该解析结构,我还可以创建 XML 测试数据、MSXML DOM 代码来操作该结构和 HTML 表单来测试这些 IMS 事务。

底线:正则表达式可能非常有用。

于 2009-11-04T16:13:08.657 回答
1

你可以试试我的Koopa Cobol 解析器项目。虽然它不做预处理,但我发现对于大多数字帖来说,这并不是必需的。它应该涵盖您对标准字帖的大部分期望,如果没有,您可以随时扩展解析器。它可以将解析树导出为 XML,然后您可以以任何您想要的方式对其进行处理。

于 2011-09-20T18:58:27.813 回答
0

Rational Developer for Z、XML Thunder、Syncsort ETL……有很多产品可以做到这一点。

但实际上,如果您了解模式数据类型的规则,您可以非常轻松地手动完成。大多数情况下,您将处理 xsd:string、xsd:decimal、xsd:integer 和一些 xsd:date 风格以匹配您的 Cobol 字帖。

于 2011-06-04T01:29:02.680 回答
0

然后REDEFINES是用于以不同方式重新定义给定的一组连续字节的子句。然后OCCURS是固定长度数组的实现OCCURS DEPENDING ON 子句和可变长度数组的子句。

所以,NealB 是对的;这不是一项微不足道的任务。

于 2012-01-02T06:15:40.137 回答