有没有人知道一个将Cobol Copybook转换为XSD的工具?或XML。将Cobol copybook转换为XSD
回答
构建用于COBOL习字一个完全成熟的解析器有几个挑战:
习字期间编译的文本操作阶段纳入COBOL程序。抄写本源本身可能不完整。获得完整解析源的唯一方法是对它进行预处理,就好像它已被引入COBOL源程序一样。通常,抄本通过COPY指令进入COBOL程序。使它看起来有点没有意义,但考虑以下几点:
1)COPY指令带有REPLACING选项。表面上看起来很简单,但是一旦你了解了细节,它就变得非常“有趣”。参见:COPY DIRECTIVE
2)REPLACE指令。这个指令也可以在COPY指令完成之后处理源文本。参见:REPLACE DIRECTIVE
3)嵌套抄本。这一个可能不像前两个那样讨厌,但也一直牢记在心。
4)COBOL图片字符串的语法也注意到笑。看看:Picture String Symbols
5)您的解析器也需要处理COBOL延续规则。请参阅:Continuation Lines,特别是PSEUDO TEXT的继续。
我不想阻止你,但解析COBOL并不是一件容易的事。
在光明的一面,如果您的抄本对他们有一个简单的结构,就像许多人一样,可以使用正则表达式级联来完成。这种方法在那些需要解析软件翻新项目的COBOL程序(和副本)的人中很常见。也许看看:RegReg
干杯......
很久以前,我构建了一些代码来解析COBOL copybook并生成XSD文件。
由于COBOL语言结构非常规则,我制作了一个正则表达式来获取变量名称和标识字段长度。通过该解析结构,我还可以创建XML测试数据,MSXML DOM代码来操作该结构和HTML表单来测试这些IMS事务。
底线:正则表达式对于实现这一点非常有用。
感谢您的正则表达式提示 – lemotdit 2009-11-04 16:20:11
对于z Rational Developer中,XML迅雷,Syncsort公司ETL ......有很多产品,将做到这一点。
真的,如果你学习模式数据类型的规则,你可以非常容易地手动完成。大多数情况下,您将处理xsd:string,xsd:decimal,xsd:integer和一些xsd:date的风格以匹配您的Cobol副本。
你可以试试我的Koopa Cobol parser项目。虽然它不做预处理,但我发现对于大多数抄本来说,这并不是真的有必要。它应该涵盖大部分您对标准副本所期望的内容,如果没有,您可以随时扩展解析器。它可以将解析树导出为XML,然后可以以任何您想要的方式进行处理。
然后有REDEFINES
子句用于以不同方式重新定义给定的一组连续字节。然后是OCCURS
子句,它是一个固定长度数组的实现,OCCURS DEPENDING ON
子句用于可变长度数组。
所以,NealB是对的;这是不是一个简单的任务。
- 1. 你知道一种在Java中将CopyBook转换为XSD的方法吗?
- 2. C#程序员的COBOL Copybook规范
- 3. 将XSD转换为RDF Schema
- 4. 将XSD转换为XML
- 5. 将xsd转换为WSDL?
- 6. 将Delphi按位操作转换为Cobol
- 7. 转换打包COBOL
- 8. 将xsd模式转换为xml
- 9. 如何将XSD转换为Python类
- 10. 如何将ecore(EMF)转换为xsd
- 11. 将XSD文档转换为DocBook
- 12. 使用xsd将csv转换为xml
- 13. Java:将XSD文件转换为Java类
- 14. 如何将Json数组转换为XSD
- 15. 如何将XSD文件转换为XLS
- 16. 使用c将xsd转换为xml#
- 17. 将XSD转换为SQL关系表
- 18. 将xsd枚举转换为C#
- 19. 使用XSD/trang HTML 5验证Java HTML 5将NG转换为XSD转换
- 20. 如何将XML从一个XSD转换为另一个XSD?
- 21. 以编程方式将XSD 1.1模式转换为XSD 1.0?
- 22. VSAM到DB2转换 - COBOL
- 23. 从COBOL转换到C++
- 24. 如何将VB的Double转换为COBOL的COMP-3?
- 25. XSD到HTML转换?
- 26. DTD到XSD转换
- 27. Copybook字段开始位置
- 28. 如何为十进制值转换为字符串在COBOL
- 29. xsd到xml转换帮助?
- 30. 使用JAVA将XSD转换为XML示例格式
您需要的是一个完整的COBOL解析器前端来完成这项工作。请参阅http://www.semanticdesigns.com/Products/FrontEnds/COBOLFrontEnd.html – 2010-01-29 05:20:57