使用标签和属性生成COBOL XML

Erg*_*dly 3 cobol

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

COBOL结构:

    01 EMPLOYEE.
       05 ID PIC X(1).
       05 NAME PIC X(10).
       05 DEPT PIC X(10).
Run Code Online (Sandbox Code Playgroud)

XML GENERATE 将创建所有子元素

    01 EMPLOYEE.
       05 ID PIC X(1).
       05 NAME PIC X(10).
       05 DEPT PIC X(10).
Run Code Online (Sandbox Code Playgroud)

如果使用XML GENERATE WITH ATTRIBUTESFunction,它将创建所有属性:

<employee>
  <id>1</id> 
  <name>Someone</name>
  <dept>Marketing</dept>
</employee>
Run Code Online (Sandbox Code Playgroud)

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

<employee id="1" name="Someone" dept="Marketing"> 
</employee>
Run Code Online (Sandbox Code Playgroud)

如果是的话,如何?

Sim*_*sch 5

有没有一种方法可以某种方式表明某些子组项目应为属性,而某些子元素应为属性

答:可以。

请参阅IBM关于XML GENERATE语句的文档,您可以使用以下TYPE短语来调整单个数据项的类型,该短语可以指定多个项目:

           XML GENERATE variable-name
               FROM EMPLOYEE
               TYPE OF ID                 IS ATTRIBUTE
                       secondary-variable IS ATTRIBUTE
Run Code Online (Sandbox Code Playgroud)

注意:正如IBM的docs XML元素名称和属性名称格式所说:

保留数据描述条目中数据名称的确切大小写混合拼写。

您可能希望将COBOL变量名称更改为全部小写,或者NAME对所有数据条目使用该短语(至少在您希望“目标样本”中全部使用小写形式的情况下)。