The answer provided in the above link shows a workaround to make COBOL mix up the formats by adding an 'OCCURS 1' to those elements that you need to be child elements instead of attributes. Pretty clever really.
You may not need to do that depending on the rest of your layout.
Just in case that link above is dead when you're reading this, I'm copying the text here:
One way I have found to make this work is by using an occurs of 1 on fields that you want to be generated as child elements. So the example used in this question would look like this.
05 C-Type PIC X(10).
05 Name occurs 1 PIC X(20).
05 Address occurs 1 PIC X(20)
05 City occurs 1 PIC X(20)
05 State occurs PIC X(02)
05 Zip occurs 1 PIC X(05).
You then use the with attributes option in your xml generate. Elements with an occurs clause do not generate as attributes. The only drawback to this solution is that you have to use a subscript whenever you use one of the fields with a occurs clause.