不要生成空的xml属性

时间:2012-10-24 15:41:31

标签: xml cobol xml-attribute

首先,如果我使用错误的词汇,请告诉我,因为我对COBOL不太熟悉。 我们正在尝试从COBOL中的固定数据结构生成xml文档。 这很好用,使用GENERATE语句,但我们有一个问题。

如果数据如下:

First;Second;Age;Optional
JOHN;SNOW;18;Something
JOHN;DOE;45;Nothing
JOHN;ISSUE;30;

然后生成的xml如下所示:

<Persons>
   <Person First="JOHN" Second="SNOW" Age="18" Optional="Something"/>
   <Person First="JOHN" Second="DOE" Age="45" Optional="Nothing"/>
   <Person First="JOHN" Second="ISSUE" Age="18" Optional=""/>
</Persons>

当我们希望生成器在具有空值时不创建属性时:

<Persons>
   <Person First="JOHN" Second="SNOW" Age="18" Optional="Something"/>
   <Person First="JOHN" Second="DOE" Age="45" Optional="Nothing"/>
   <Person First="JOHN" Second="ISSUE" Age="18" />
</Persons>

有没有一种简单的方法可以实现这一目标?一直在寻找IBM文档和谷歌,没有运气。

2 个答案:

答案 0 :(得分:1)

我们已成功使用OCCURS 0 to 1 DEPENDING var作为可选项。我们将var设置为0或1,具体取决于指示对象是否存在。

这是一个kludge。有一个现存的SHARE requirement可以使kludge不必要;我希望功能在v.Next COBOL编译器中。

答案 1 :(得分:0)

在我看来,更简单的方法是使用XML PARSE动词为您的架构编写漂亮的打印机自定义。做GENERATE,然后通过漂亮的打印机提供它,以应用您的特定规则来产生最终输出。