Bug 432823

Summary: Metadata Panel does not display XMP structs instead displays type="Bag"
Product: [Applications] digikam Reporter: José Oliver-Didier <jose_oliver>
Component: Metadata-XmpAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: normal CC: caulier.gilles, metzpinguin
Priority: NOR    
Version: 7.2.0   
Target Milestone: ---   
Platform: Microsoft Windows   
OS: Microsoft Windows   
Latest Commit: Version Fixed In: 7.2.0
Sentry Crash Report:
Attachments: DigiKam's XMP Metadata pane displaying type="Bag"
Sample image containing IPTC Extension Location Created XMP metadata.
location.png

Description José Oliver-Didier 2021-02-12 01:07:55 UTC
Created attachment 135606 [details]
DigiKam's XMP Metadata pane displaying type="Bag"

SUMMARY
On DigiKams XMP Metadata pane, struct tags data is not displayed instead the value type="Bag" is displayed when the XMP structure contains content.

STEPS TO REPRODUCE
1. In Digikam set to display a stuctured XMP tag such as LocationCreated - Go to Settins -> Configure. In the Configuration dialog select Metadata -> Views -> XMP Viewer and enable LocationCreated
2. View XMP Metadata - Click on attached sample image in the Thumbnail view and open the Metadata pane and click on the XMP tab.

OBSERVED RESULT
- LocationCreated displays type="Bag".
- Refer to attached screenshot.

EXPECTED RESULT
- Display the full contents within the LocationCreated struct- LocationDetails struct - Refer to https://exiftool.org/TagNames/XMP.html#LocationDetails
- Something like "Location Created" and the tags contain within the bag as a list beneath with tag and values or something like exiftool does which is to list LocationCreated+<Sub tag>
- Reference Link: https://www.exiv2.org/tags-xmp-iptcExt.html
   

SOFTWARE/OS VERSIONS
Windows: Windows 10

ADDITIONAL INFORMATION
- The sample image LocationCreated tag contains the following XMP structure:

 <rdf:Description rdf:about='' xmlns:Iptc4xmpExt='http://iptc.org/std/Iptc4xmpExt/2008-02-29/'>
  <Iptc4xmpExt:LocationCreated>
   <rdf:Bag>
    <rdf:li rdf:parseType='Resource'>
     <Iptc4xmpExt:City>New York City</Iptc4xmpExt:City>
     <Iptc4xmpExt:CountryCode>USA</Iptc4xmpExt:CountryCode>
     <Iptc4xmpExt:CountryName>United States</Iptc4xmpExt:CountryName>
     <Iptc4xmpExt:ProvinceState>New York</Iptc4xmpExt:ProvinceState>
    </rdf:li>
   </rdf:Bag>
  </Iptc4xmpExt:LocationCreated>
 </rdf:Description>
Comment 1 José Oliver-Didier 2021-02-12 01:08:30 UTC
Created attachment 135607 [details]
Sample image containing IPTC Extension Location Created XMP metadata.

Sample file containing IPTC Extension Location Created values.
Comment 2 Maik Qualmann 2021-02-12 06:52:58 UTC
Created attachment 135610 [details]
location.png

I don't see any errors here (see screenshot), all information is available. It is normal for Exiv2 to display the type of container, you can also find this in the face metadata. If you do not see the Country* information, you have set the filter incorrectly.

Maik
Comment 3 Maik Qualmann 2021-02-12 11:42:29 UTC
It is a problem with the filter, which does not know that e.g. Location-City is part of the Bag Location Created.

Maik
Comment 4 Maik Qualmann 2021-02-12 19:33:47 UTC
Git commit de41d0b24657a599aafea5c088a4ba365b41550b by Maik Qualmann.
Committed on 12/02/2021 at 19:32.
Pushed by mqualmann into branch 'master'.

add special case to filter metadata tags in bag containers
FIXED-IN: 7.2.0

M  +2    -2    NEWS
M  +21   -0    core/libs/widgets/metadata/metadatalistview.cpp

https://invent.kde.org/graphics/digikam/commit/de41d0b24657a599aafea5c088a4ba365b41550b