Bug 507414

Summary: Regression: Error importing ISO20022 XML into Skrooge
Product: [Applications] skrooge Reporter: Matija Šuklje <matija>
Component: generalAssignee: Stephane MANKOWSKI <stephane>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version First Reported In: Trunk from git   
Target Milestone: 25.1.0   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Matija Šuklje 2025-07-23 21:30:07 UTC
SUMMARY

When I import an ISO20022 XML, Skrooge does not import it, but reports an error.

This seems to be a regression, because to double-check I tried to import an XML file that I have successfully imported before and it threw the same error.

STEPS TO REPRODUCE
1. get ISO20022 XML monthly bank statement from bank
2. File ↦ Import ↦ Import and select said XML file

OBSERVED RESULT

Skrooge throws an error:

```
[ERR-5]: Import of file named 'file:///home/hook/Dokumenti/Denar/Bančni izpiski/2024/ISO 20022 (TRR EUR @ DBS) – 2024-07-01.xml' failed
[ERR-5]: The conversion in xml of 'file:///home/hook/Dokumenti/Denar/Bančni izpiski/2024/ISO 20022 (TRR EUR @ DBS) – 2024-07-01.xml' failed
[ERR-5]: The execution of 'sed -E 's/ xmlns(:[a-zA-Z0-9]+)?="[^"]+"//g' "/home/hook/Dokumenti/Denar/Bančni izpiski/2024/ISO 20022 (TRR EUR @ DBS) – 2024-07-01.xml" > "/tmp/{8fe5989b-108d-4fc2-a469-1671083741a0}.xml";saxonb-xslt -xsl:"/usr/share/skrooge/ISO20022.xslt" -s:"/tmp/{8fe5989b-108d-4fc2-a469-1671083741a0}.xml" -o:"/tmp/{8fe5989b-108d-4fc2-a469-1671083741a0}.xml"' failed
```

EXPECTED RESULT

Skrooge imports the transactions without error (as it did before).


SOFTWARE/OS VERSIONS
actual Skrooge version: 25.4.0
Qt Version: Operating System: EndeavourOS 
KDE Plasma Version: 6.4.3
KDE Frameworks Version: 6.16.0
Qt Version: 6.9.1

ADDITIONAL INFORMATION
Comment 1 Matija Šuklje 2025-07-23 21:45:07 UTC
Upon further digging, I suspect the culprit is that I don’t seem to have `saxonb-xsl` installed on my machine. It seems this dependency was introduced a few months ago during the Qt6 port, specifically here:

https://invent.kde.org/office/skrooge/-/commit/44621f8b8efee01380df46afa939080be724d7d1#6005aaa4fbe3fa54ed3d69b67fcbeec0776d092f_94_104
Comment 2 Stephane MANKOWSKI 2025-07-24 19:49:50 UTC
Git commit a6b40b0d2c33f2fe344b7cf10169f06934723078 by Stéphane MANKOWSKI.
Committed on 24/07/2025 at 19:49.
Pushed by smankowski into branch 'master'.

Regression: Error importing ISO20022 XML into Skrooge

M  +2    -1    CHANGELOG
M  +11   -3    plugins/import/skrooge_import_xml/skgimportpluginxml.cpp

https://invent.kde.org/office/skrooge/-/commit/a6b40b0d2c33f2fe344b7cf10169f06934723078
Comment 3 Matija Šuklje 2025-07-24 22:29:45 UTC
Stéphane, thanks for working on this so fast.

It seems like the command is not always called `saxonb-xslt` – e.g. on Arch(-based distros), it is only available in the user-contributed AUR and the command is called `saxon-xslt` (and currently broken, but that’s not Skrooge’s concern).

Would it be possible to rely on a more commonly packaged XSLT processor instead? Or be able to use either of the existing options?

According to https://en.wikipedia.org/wiki/Saxon_XSLT there are also LibXML/LibXSLT and Apache Xalan.

If a quick search on https://repology.org/ is worth anything, it seems Xalan is slightly more commonly packaged than Saxon, and LibXSLT is much more widely distributed then both.
Comment 4 Stephane MANKOWSKI 2025-07-25 20:20:29 UTC
Hi,

XALAN doesn't support xslt 2.0, only 1.0 is supported.
That's why I selected saxonb.
I will do a modification to search saxonb-xslt or saxon-xslt.
Comment 5 Stephane MANKOWSKI 2025-07-25 20:20:44 UTC
Git commit ee47b689445caa982bc048ac0278f68c01db928b by Stéphane MANKOWSKI.
Committed on 25/07/2025 at 20:19.
Pushed by smankowski into branch 'master'.

Regression: Error importing ISO20022 XML into Skrooge

M  +11   -4    plugins/import/skrooge_import_xml/skgimportpluginxml.cpp

https://invent.kde.org/office/skrooge/-/commit/ee47b689445caa982bc048ac0278f68c01db928b