xml - 在 xml 输出中使用保留的 cobol 名称

标签 xml cobol mainframe

我正在处理一个项目,我将从 cobol 大型机系统创建的磁盘读取 xml 文件。我想要这个 xml 文件中的特定命名结构,如下所示:

<Orders>
 <Order>
  <Data>
   ...
  </Data>
 </Order>
 <Order>
  <Data>
   ...
  </Data>
 </Order>
 <Order>
  <Data>
   ...
  </Data>
 </Order>
</Orders>

我从我的 cobol 开发人员那里了解到这个命名结构的问题是“订单”和“数据”是 cobol 中的保留名称,所以他说它们不能使用。这是真的吗,或者有人可以指出我们的方向,当 cobol 创建 xml 文件时,我们的 xml 输出可以是我们想要的任何东西?

最佳答案

IBM Enterprise COBOL 有一个 XML GENERATE 语句,用于从 COBOL 数据结构生成 XML。默认情况下,生成的标签名称是结构中数据项的名称。数据项的名称不能是保留的 COBOL 字。
从 IBM Enterprise COBOL 的第 5 版开始,有一种机制可以为不是数据项名称的数据项生成标记名称。它是 XML GENERATE 语句的 NAME 短语。
一个看起来像这样的结构......

01  WS-ORDERS.
    05  WS-ORDER OCCURS 2.
        10  WS-DATA    PIC X(4096).
...通过 XML GENERATE 处理通常会导致...<WS-ORDERS><WS-ORDER><WS-DATA>...</WS-DATA></WS-ORDER><WS-ORDER><WS-DATA>...</WS-DATA></WS-ORDER></WS-ORDERS>...但使用 NAME短语...
XML GENERATE WS-BUFFER FROM WS-ORDERS
  NAME WS-ORDERS 'ORDERS'
       WS-ORDER  'ORDER'
       WS-DATA   'DATA'
END-XML
...应该给你你想要的。这只是徒手画的,但我认为你可以看到这个想法。
可能您的 COBOL 编译器尚未升级到支持 XML GENERATE 的 NAME 短语的版本。最后一个这样的版本是 4.2,它在 30-Apr-2022 上停止服务.

关于xml - 在 xml 输出中使用保留的 cobol 名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60453567/

相关文章:

regex - 为什么零宽度匹配正则表达式不起作用?

python - 删除跨越 xml 树分支的 2 个标签之间的所有内容

c# - XmlWriter 在 xml :space=preserve 时插入空格

cobol - GNUCobol (OpenCOBOL) 错误 : libcob: module '»' not found

db2 - COBOL 程序、JCL 作业,还是两者兼而有之?

mainframe - 在自然编程语言变量上交换日期?

c++ vtk xml writer (vtkImageData) - 同一个vti文件中的多个变量

php - 我想通过代码在 Prestashop 上添加 x 个客户,但有额外的字段

cobol - 此 COBOL 代码中是否存在无限循环原因?

cobol - 级别 49 可以用于 STRING 目的吗