COBOL XML 使用标签和属性生成

COBOL XML GENERATE using tags and attributes

我正在尝试使用 XML GENERATE 语句从 COBOL 程序创建一个 XML 文件。

COBOL 结构:

    01 EMPLOYEE.
       05 ID PIC X(1).
       05 NAME PIC X(10).
       05 DEPT PIC X(10).

XML GENERATE 将创建所有子元素

<employee>
  <id>1</id> 
  <name>Someone</name>
  <dept>Marketing</dept>
</employee>

如果我使用XML GENERATE WITH ATTRIBUTES函数, 它将创建所有属性:

<employee id="1" name="Someone" dept="Marketing"> 
</employee>

有没有一种方法我们可以以某种方式表明一些子组项目应该是属性和一些子元素:

<employee id="1">
  <name>Someone</name>
  <dept>Marketing</dept>
</employee>

如果是,怎么做?

Is there a way we can somehow indicate that some sub group items should be attributes and some sub elements

回答:是的。

参见 IBM 在 XML GENERATE statement 上的文档,您可以使用 TYPE 短语调整单个数据项的类型,它可以指定多个项目:

           XML GENERATE variable-name
               FROM EMPLOYEE
               TYPE OF ID                 IS ATTRIBUTE
                       secondary-variable IS ATTRIBUTE

注意:正如 IBM 的文档 XML element name and attribute name formation 所说:

The exact mixed-case spelling of data-names from the data description entry is retained.

您可能希望将 COBOL 变量名称更改为全部小写或对所有数据条目使用 NAME 短语(至少如果您希望它全部为小写,如 "target sample").