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

问题描述 投票:0回答:1

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

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

我从我的cobol开发人员那里学习了这种命名结构的问题是,“ Order”和“ Data”是cobol中的保留名称,因此他说它们无法使用。确实是这种情况,还是有人可以指出一个方向,即当cobol创建xml文件时,我们的xml输出可以是我们想要的任何东西?

xml cobol
1个回答
0
投票

IBM Enterprise COBOL具有XML GENERATE语句,该语句用于从COBOL数据结构生成XML。默认情况下,生成的标签名称是结构中数据项的名称。数据项的名称不能为保留的COBOL字。

自IBM Enterprise COBOL版本5起,就有一种机制可以为数据项的名称not生成标签名。它是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-Sep-2021上不再可用。

© www.soinside.com 2019 - 2024. All rights reserved.