Hello,
We need to generate Word documents from our Cobol application. I came across XMLDOCX which allows to create xml files and then convert them to docx document. The API is quite extended.
I know that we can generate xml from Cobol. But I don't see how to generate cobol structures from the XML stuctures of the xmldocs api. For example, to add a text, here is the xml model :
<pdx:content>
<pdx:addText pdx:wordFragmentName="">
<pdx:textRun>
<pdx:data pdx:dataId="" pdx:dataType="text|wordFragment">text</pdx:data>
<pdx:textRunStyle>
<pdx:bold pdx:value="" />
<pdx:caps pdx:value="" />
<pdx:color pdx:value="" />
<pdx:doubleStrikeThrough pdx:value="" />
<pdx:em pdx:value="" />
<pdx:font pdx:value="" />
<pdx:fontSize pdx:value="" />
<pdx:highlightColor pdx:value="" />
<pdx:italic pdx:value="" />
<pdx:lang pdx:value="" />
<pdx:lineBreak pdx:value="after|before|both" />
<pdx:position pdx:value="" />
<pdx:rStyle pdx:value="" />
<pdx:rtl pdx:value="" />
<pdx:scaling pdx:value="" />
<pdx:smallCaps pdx:value="" />
<pdx:spaces pdx:value="" />
<pdx:spacing pdx:value="" />
<pdx:strikeThrough pdx:value="" />
<pdx:subscript pdx:value="" />
<pdx:superscript pdx:value="" />
<pdx:tab pdx:value="" />
<pdx:underline pdx:value="" />
<pdx:underlineColor pdx:value="" />
<pdx:vanish pdx:value="" />
</pdx:textRunStyle>
</pdx:textRun>
<pdx:textRun>
<pdx:data pdx:dataId="" pdx:dataType="text|wordFragment">text</pdx:data>
<pdx:textRunStyle>
<pdx:bold pdx:value="" />
<pdx:caps pdx:value="" />
<pdx:color pdx:value="" />
<pdx:columnBreak pdx:value="after|before|both" />
<pdx:doubleStrikeThrough pdx:value="" />
<pdx:em pdx:value="none|dot|circle|comma|underDot" />
<pdx:font pdx:value="" />
<pdx:fontSize pdx:value="" />
<pdx:highlightColor pdx:value="" />
<pdx:italic pdx:value="" />
<pdx:lang pdx:value="" />
<pdx:lineBreak pdx:value="after|before|both" />
<pdx:rStyle pdx:value="" />
<pdx:rtl pdx:value="" />
<pdx:scaling pdx:value="" />
<pdx:smallCaps pdx:value="" />
<pdx:spaces pdx:value="" />
<pdx:spacing pdx:value="" />
<pdx:strikeThrough pdx:value="" />
<pdx:subscript pdx:value="" />
<pdx:superscript pdx:value="" />
<pdx:tab pdx:value="" />
<pdx:underline pdx:value="" />
<pdx:underlineColor pdx:value="" />
<pdx:vanish pdx:value="" />
</pdx:textRunStyle>
</pdx:textRun>
<pdx:paragraphStyle>
<pdx:backgroundColor pdx:value="" />
<pdx:bidi pdx:value="" />
<pdx:bold pdx:value="" />
<pdx:border pdx:color="" pdx:space="" pdx:style="" pdx:width="">
<pdx:top pdx:color="" pdx:space="" pdx:style="" pdx:width="" />
<pdx:right pdx:color="" pdx:space="" pdx:style="" pdx:width="" />
<pdx:bottom pdx:color="" pdx:space="" pdx:style="" pdx:width="" />
<pdx:left pdx:color="" pdx:space="" pdx:style="" pdx:width="" />
</pdx:border>
<pdx:caps pdx:value="" />
<pdx:color pdx:value="" />
<pdx:contextualSpacing pdx:value="" />
<pdx:doubleStrikeThrough pdx:value="" />
<pdx:em pdx:value="none|dot|circle|comma|underDot" />
<pdx:firstLineIndent pdx:value="" />
<pdx:font pdx:value="" />
<pdx:fontSize pdx:value="" />
<pdx:hanging pdx:value="" />
<pdx:headingLevel pdx:value="" />
<pdx:italic pdx:value="" />
<pdx:indentLeft pdx:value="" />
<pdx:indentRight pdx:value="" />
<pdx:keepLines pdx:value="" />
<pdx:keepNext pdx:value="" />
<pdx:lineSpacing pdx:value="" />
<pdx:pageBreakBefore pdx:value="" />
<pdx:position pdx:value="" />
<pdx:pStyle pdx:value="" />
<pdx:rtl pdx:value="" />
<pdx:smallCaps pdx:value="" />
<pdx:spacing pdx:value="" />
<pdx:spacingBottom pdx:value="" />
<pdx:spacingTop pdx:value="" />
<pdx:strikeThrough pdx:value="" />
<pdx:tabPositions>
<pdx:tabPosition pdx:type="" pdx:leader="" pdx:position="" />
<pdx:tabPosition pdx:type="" pdx:leader="" pdx:position="" />
</pdx:tabPositions>
<pdx:textAlign pdx:value="center|right|both|distribute" />
<pdx:textDirection pdx:value="" />
<pdx:underline pdx:value="" />
<pdx:underlineColor pdx:value="" />
<pdx:vanish pdx:value="" />
<pdx:widowControl pdx:value="" />
<pdx:wordWrap pdx:value="" />
</pdx:paragraphStyle>
</pdx:addText>
</pdx:content>
Or to add a list :
<pdx:content>
<pdx:addList pdx:listType="" pdx:wordFragmentName="" pdx:useWordFragmentStyles="" pdx:pStyle="">
<pdx:data pdx:dataId="" pdx:type="list">
<pdx:item pdx:dataType pdx:depth="">item text</pdx:item>
<pdx:item pdx:dataType pdx:depth="">item text</pdx:item>
<pdx:item pdx:dataType pdx:depth="">item text</pdx:item>
</pdx:data>
</pdx:addList>
</pdx:content>
If we could create the schema to be used from cobol, it would then be possible to create Word documents directly from cobol.
Has someone any idea on how to create the cbl records from the above xml syntax ?
Regards,
Alain

