XML Toolkit Issue

I recently started researching the feasibility of modifying our EntireX-based communication between web and mainframe so that all data is converted to an XML document before being passed, using the XML Toolkit.

During my testing, I realized that the serialize subprograms generated by XML2NAT do not properly write out numbers with decimal positions, due to the use of a compress statement (no decimal point is written). The simple solution is to move the number to an alpha field using a ‘move edited’ statement with an edit mask that includes a decimal point, then use the alpha field in the compress statement. The issue with that solution is that you are now modifying the generated subprogram, and would need to make the same change every time the subprogram is regenerated.

Support for numbers with decimal positions would seem to be a very basic system requirement, so I get the impression that there must be something that I am not doing properly. My current testing involves using XML2NAT to create the serialize and parse subprograms for a parameter data area, loading the parameter data area with data, and then calling the serialize subprogram to create the XML document.

Any assistance with this issue would be most appreciated.

I haven’t found any parameter that changes the behavior.

Instead of adding a new variable and a additional move edited, why not change all COMPRESS to COMPRESS NUMERIC?

Yes, that would also work. The issue with that solution is that you’d still be making changes to generated code to allow for proper numeric formatting in an XML document.

I am having a difficult time thinking that the decimal issue I described in the earlier post is “working as intended”, since it would mean that the XML package was released without support for numbers with decimals - which just about every major system in existence will have. Especially when you consider the fact that a simple change to the code generator would appear to address the issue.
That said, I still haven’t been able to find a way to correct the problem without modifying the generated code.