有没有人知道从Cobol Copybook到XSD的转换工具?或者XML。
发布于 2009-11-05 02:41:02
为COBOL copybooks构建一个成熟的解析器有几个挑战:
在编译的文本处理阶段,Copybook被合并到COBOL程序中。copybook源代码本身可能是不完整的。获得用于解析的完整源代码的唯一方法是对其进行预处理,就好像它已被引入到COBOL源程序中一样。通常,copybooks是通过COPY指令引入COBOL程序的。提出这一点可能看起来有点无意义,但请考虑以下几点:
1) COPY指令附带一个替换选项。从表面上看,这似乎足够简单,但一旦你深入到细节中,它就变得非常“有趣”。请参阅:COPY DIRECTIVE
2)替换指令。此指令还可以在COPY指令完成其职责后操作源文本。请参阅:REPLACE DIRECTIVE
3)嵌套的副本。这一个可能不像前两个那么糟糕,但也要记住嵌套。
4) COBOL图片字符串的语法也没有可笑之处。看看:Picture String Symbols
5)解析器还需要处理COBOL延续规则。请参阅:Continuation Lines,特别是伪文本的延续。
我不想让您泄气,但是解析COBOL不是一件微不足道的事情。
从好的方面来说,如果你的复制本有一个非常简单的结构,就像许多人一样,可以使用级联正则表达式来完成这一点。这种方法在那些需要在软件更新项目中解析COBOL程序(和复制本)的人中相当常见。也许你可以看看:RegReg
干杯..。
发布于 2009-11-05 00:13:09
很久以前,我构建了一些代码来解析COBOL copybook并生成XSD文件。
由于COBOL语言结构非常规则,所以我精心设计了一个正则表达式来获取变量名和标识字段长度。有了这个经过解析的结构,我还可以创建XML测试数据、操作该结构的MSXML DOM代码和测试这些IMS事务的HTML表单。
底线:正则表达式可以很好地做到这一点。
发布于 2011-09-21 02:58:28
你可以试试我的Koopa Cobol parser项目。虽然它不做预处理,但我发现对于大多数抄写本来说,这并不是真正必要的。它应该涵盖您期望从标准副本中获得的大部分内容,如果没有,您可以随时扩展解析器。它可以将解析树导出为XML,然后您可以以任何您想要的方式进行处理。
https://stackoverflow.com/questions/1674808
复制相似问题