将Cobol copybook转换为XSD

时间:2009-11-04 16:04:47

标签: xml xsd cobol copybook

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

5 个答案:

答案 0 :(得分:8)

为COBOL副本构建一个完整的解析器有一些挑战:

在编译的文本操作阶段,Copybooks被合并到COBOL程序中。字帖来源本身可能不完整。获得完整解析源的唯一方法是预处理它,就像它已经被带入COBOL源程序一样。通常,拷贝书通过COPY指令进入COBOL程序。提出这个看起来似乎有点无意义,但请考虑以下几点:

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

2)REPLACE指令。该指令也可以在COPY指令完成后操作源文本。请参阅:REPLACE DIRECTIVE

3)嵌套的副本。这个可能不像前两个那样令人讨厌,但也要牢记在内。

4)COBOL Picture字符串的语法也嘲笑它们。看看:Picture String Symbols

5)你的解析器也需要处理COBOL延续规则。请参阅:Continuation Lines,特别是PSEUDO TEXT的继续。

我不想劝阻你,但解析COBOL并不是一件容易的事。

从好的方面来说,如果你的副本具有简单易懂的结构,那么就可以使用一系列正则表达式完成这一过程。这种方法在需要解析软件更新项目的COBOL程序(和副本)的人中相当普遍。也许看看:RegReg

干杯...

答案 1 :(得分:2)

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

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

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

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

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