In adition to my previous report, here a more detailed description of the problem.
The wrong coded XML that I received starts with the following:
<?xml version="1.0" encoding="UTF-8"?>
<cfdi:Comprobante xmlns:xsi="www.w3.org/.../XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/cfd/3www.sat.gob.mx/.../cfdv32.xsd" version="3.2" folio="857" fecha="2014-11-04T11:31:18" formaDePago="Pago en una sola exhibición"
The Word “exhibición” is wrong coded.
“exhibición” x”65 78 68 69 62 69 63 69 F3 6E the accented o is not coded in UTF-8
e x h i b i c i o
It should be
“exhibición” x”65 78 68 69 62 69 63 69 C3 B3 6E the accented o = X”C3B3”
e x h i b i c i o
Our problem is, that the NETEXPRESS does not return any error code, but just aborts the program with
Execution error: file LEC-XML5
ERROR CODE: 114, PC=0, CALL=1, SEG=0
114 Attempt to access item beyond bounds of memory (Signal 11)
As I wrote in my previous report, I solved the case by analyzing the XML as plain text file.
If any byte > than X”7F” (in this case X”F3” ) is not followed by a byte also > than X”7F” (in the wrong case X”6E”) I reject the whole file, and don’t even open or read the XML.
If the file is coded right as UTF-8 X"C3" is followed by X"B3"
Perhaps an unusual way to solve the problem, but it works. Of course it would be better if Micro Focus corrects the compiler. I would not need the analyzing, but just open the XML, read it and look at the status-code.