Bug 498419

Summary: Duplicated entries in generated kmymoney xml file
Product: [Applications] kmymoney Reporter: Ralf Habacker <ralf.habacker>
Component: fileAssignee: KMyMoney Devel Mailing List <kmymoney-devel>
Status: RESOLVED NOT A BUG    
Severity: normal    
Priority: NOR    
Version First Reported In: git (master)   
Target Milestone: ---   
Platform: Other   
OS: All   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:
Bug Depends on:    
Bug Blocks: 498416    
Attachments: test file

Description Ralf Habacker 2025-01-09 10:11:58 UTC
Created attachment 177224 [details]
test file

SUMMARY
A generated kmymoney-xml file contains a <FILEINFO> and a <KEYVALUEPAIRS> tag, as shown below:

<KMYMONEY-FILE>
  <FILEINFO>
    <CREATION_DATE date=“”/>
    <LAST_MODIFIED_DATE date=„2024-09-09T22:58:54+02:00“/>
    <VERSION id=“1”/>
    <FIXVERSION date=“”/>
    <APPVERSION id=„5.1.80-a82f24b57“/>
  </FILEINFO>
...

  <KEYVALUEPAIRS>
    <PAIR key=„LastModificationDate“ value=„2024-09-09T22:58:54+02:00“/>
    <PAIR key=“kmm-baseCurrency” value=“USD”/>
    <PAIR key=„kmm-id“ value=„{1bc5425b-d897-4dea-a489-2db5abd97368}“/>
  </KEYVALUEPAIRS>
</KMYMONEY-FILE>

This file contains duplicate xml tags as described below.

STEPS TO REPRODUCE
1. open the attached kmymoney file
2. check the contained xml tag <FILEINFO> 

OBSERVED RESULT
The xml tag <LAST_MODIFIED_DATE> is duplicated in the <KEYVALUEPAIRS> tag and with a correction for the bug 498416 also the <FIXVERSION>.

EXPECTED RESULT
No xml tags from the <FILEINFO> tag should be duplicated in the <KEYVALUEPAIRS> tag.

SOFTWARE/OS VERSIONS
Operating System: openSUSE Leap 15.6
KDE Plasma Version: 5.27.11
KDE Frameworks Version: 5.115.0
Qt Version: 5.15.12

ADDITIONAL INFORMATION
Comment 1 Ralf Habacker 2025-01-09 12:24:27 UTC
> Created attachment 177224 [details]
> The xml tag <LAST_MODIFIED_DATE> is duplicated in the <KEYVALUEPAIRS> tag
In fact the key is different, but the value is the same

> and with a correction for the bug 498416 also the <FIXVERSION>.
here the key is really duplicated.
Comment 2 Thomas Baumgart 2025-01-09 15:40:05 UTC
The reason for this is usually some form of backward compatibility. And since it does not hurt, I don't want to touch it right now.
Comment 3 Ralf Habacker 2025-01-18 17:43:57 UTC
Git commit bf9eceb8baef59f704632c34064105532aa1b792 by Ralf Habacker.
Committed on 18/01/2025 at 17:17.
Pushed by habacker into branch 'master'.

Add workaround for writing key value container into xml file

Without this workaround, a tag that is located in the FILEINFO
tag is duplicated in the KEYVALUEPAIRS tag.

M  +4    -1    kmymoney/plugins/xml/mymoneyxmlwriter.cpp

https://invent.kde.org/office/kmymoney/-/commit/bf9eceb8baef59f704632c34064105532aa1b792
Comment 4 Ralf Habacker 2025-01-21 21:06:43 UTC
Git commit 4bc12e2aee51167a817db3f9b3d45275cabbbb93 by Ralf Habacker.
Committed on 21/01/2025 at 19:01.
Pushed by habacker into branch 'master'.

Add member fileInfoModel to class MyMoneyFile

The newly introduced member contains information about the
imported file or database in contrast to the 'kmm-*'
key/values pairs contained in member parametersModel.

M  +2    -2    kmymoney/dialogs/kmymoneyfileinfodlg.cpp
M  +11   -3    kmymoney/mymoney/mymoneyfile.cpp
M  +5    -0    kmymoney/mymoney/mymoneyfile.h
M  +2    -2    kmymoney/mymoney/storage/mymoneystoragedump.cpp
M  +1    -1    kmymoney/plugins/sql/mymoneydbdef.cpp
M  +1    -3    kmymoney/plugins/xml/mymoneyxmlreader.cpp
M  +5    -5    kmymoney/plugins/xml/mymoneyxmlwriter.cpp
M  +9    -8    kmymoney/plugins/xml/tests/mymoneyxmlreader-test.cpp

https://invent.kde.org/office/kmymoney/-/commit/4bc12e2aee51167a817db3f9b3d45275cabbbb93