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

在xml输出中使用保留的cobol名称,xml,cobol,mainframe,Xml,Cobol,Mainframe,我正在从事一个项目,在这个项目中,我将从cobol大型机系统创建的磁盘读取一个xml文件。我希望此xml文件中有一个特定的命名结构,如下所示: <Orders> <Order> <Data> ... </Data> </Order> <Order> <Data> ... </Data> </Order> <Order> <Data

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

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

...
...
...

我从我的cobol开发人员那里学到的这个命名结构的问题是,“Order”和“Data”在cobol中是保留名称,所以他说它们不能使用。当cobol创建xml文件时,是否真的是这样,或者有人能告诉我们xml输出可以是我们想要的任何东西吗?

IBM Enterprise cobol有一个xml GENERATE语句,用于从cobol数据结构生成xml。默认情况下,生成的标记名是结构中数据项的名称。数据项的名称不能是保留COBOL字

自IBMEnterpriseCobol版本5以来,有一种机制可以为不是数据项名称的数据项生成标记名。它是XMLGenerate语句的名称短语

一个看起来像这样的结构

01  WS-ORDERS.
    05  WS-ORDER OCCURS 2.
        10  WS-DATA    PIC X(4096).
…通过XML生成处理通常会导致

……

…但是用这个短语

XML GENERATE WS-BUFFER FROM WS-ORDERS
  NAME WS-ORDERS 'ORDERS'
       WS-ORDER  'ORDER'
       WS-DATA   'DATA'
END-XML
…应该给你想要的。这只是徒手画,但我想你可以看到这个想法


您的COBOL编译器可能尚未升级到支持XML GENERATE名称短语的版本。最后一个这样的版本是4.2,它将在上一天停止使用。

谢谢@cschneid!这正是我想知道的!