Hi Csaba (cc to the list),
You already found the reason for the excessive memory consumption by yourself. If you don’t need to rely on the pathological element names, you can replace them with a simple <i/> element, e.g. as follows:
let $file := file:base-dir() || 'SPANYOLORSZÁG.xml'
return file:write-text-lines(
'normalized-' || $file,
file:read-text-lines($file) ! replace(., '<(/?)i\d+>', '<$1i>')
)
This will also reduce memory consumption quite a lot.
It would be a considerable effort to change the limit for element and attribute names, and it would also increase the database size for ordinary XML input, which is it’s improbable we will touch this. However, a relatively easy exercise would be to output error messages once the limits are exceeded, and not at the very end.
Best,
Christian