Undefined XMP namespace: xap

Started by cocteau, November 10, 2017, 02:37:01 AM

Previous topic - Next topic

cocteau

IDimager Photo Supreme creates the metadata in the old xap format. An error occurs when translating with EXIFTOOL.

exiv2.exe -PXxknv "0FCC8870156EEB40E6A331A78ABE9A1A.xmp"

0x0000 Xmp.MicrosoftPhoto.Rating                    Rating                       50
0x0000 Xmp.dc.format                                format                       image/jpeg
0x0000 Xmp.dc.creator                               creator                      CREATOR
0x0000 Xmp.dc.description                           description                  lang="x-default" DESCRIPTION
0x0000 Xmp.dc.rights                                rights                       lang="x-default" COPYRIGHT
0x0000 Xmp.dc.title                                 title                        lang="x-default" TITLE
0x0000 Xmp.exif.DateTimeOriginal                    DateTimeOriginal             2015-01-06T07:33:25+01:00
0x0000 Xmp.idimager.xmp_initialized                 xmp_initialized              1
0x0000 Xmp.photoshop.Headline                       Headline                     HEADLINE
0x0000 Xmp.photoshop.DateCreated                    DateCreated                  2015-01-06T07:33:25+01:00
0x0000 Xmp.photoshop.SidecarForExtension            SidecarForExtension          JPG
0x0000 Xmp.xmp.Label                                Label                        Approved
0x0000 Xmp.xmp.Rating                               Rating                       3
0x0000 Xmp.xmp.CreateDate                           CreateDate                   2015-01-06T07:33:25+01:00
0x0000 Xmp.xmp.ModifyDate                           ModifyDate                   2017-11-09T11:11:27+01:00
0x0000 Xmp.xmp.CreatorTool                          CreatorTool                  Photo Supreme (3.3.0.2601)
0x0000 Xmp.xmp.MetadataDate                         MetadataDate                 2017-11-09T11:12:15.747+01:00
0x0000 Xmp.xmpMM.PreservedFileName                  PreservedFileName            0FCC8870156EEB40E6A331A78ABE9A1A.JPG


exiftool.exe -s2 -G0:1:2:3:4 -t -l -m -a -u -scanForXMP -xmp:all "0FCC8870156EEB40E6A331A78ABE9A1A.xmp"

XMP:XMP-x:Document:Main XMPToolkit      Toolkit=IDimager;Version=3.0.0.8;
XMP:XMP-microsoft:Image:Main    RatingPercent   50
XMP:XMP-dc:Image:Main   Format  image/jpeg
XMP:XMP-dc:Author:Main  Creator CREATOR
XMP:XMP-dc:Image:Main   Description     DESCRIPTION
XMP:XMP-dc:Author:Main  Rights  COPYRIGHT
XMP:XMP-dc:Image:Main   Title   TITLE
XMP:XMP-exif:Time:Main  DateTimeOriginal        2015:01:06 07:33:25+01:00
XMP:XMP-idimager:Unknown:Main   Xmp_initialized 1
XMP:XMP-photoshop:Image:Main    Headline        HEADLINE
XMP:XMP-photoshop:Time:Main     DateCreated     2015:01:06 07:33:25+01:00
XMP:XMP-photoshop:Image:Main    SidecarForExtension     JPG
XMP:XMP-xap:Unknown:Main        Label   Approved
XMP:XMP-xmp:Image:Main  Rating  3
XMP:XMP-xmp:Time:Main   CreateDate      2015:01:06 07:33:25+01:00
XMP:XMP-xmp:Time:Main   ModifyDate      2017:11:09 11:11:27+01:00
XMP:XMP-xmp:Image:Main  CreatorTool     Photo Supreme (3.3.0.2601)
XMP:XMP-xmp:Time:Main   MetadataDate    2017:11:09 11:12:15.747+01:00
XMP:XMP-xmpMM:Other:Main        PreservedFileName       0FCC8870156EEB40E6A331A78ABE9A1A.JPG


set: exiftool.exe -ext XMP "-ModifyDate=now" "-MetadataDate=now" "0FCC8870156EEB40E6A331A78ABE9A1A.xmp"

Error: Undefined XMP namespace: xap - 0FCC8870156EEB40E6A331A78ABE9A1A.xmp
    0 image files updated
    1 files weren't updated due to errors


XMP:XMP-xap:Unknown:Main        Label   Approved

It must be the XMP: Label, because without the Label-TAG it works without problems.








Phil Harvey

ExifTool should have no problem with an "xap" namespace if it has a proper URI associated with it.  Without seeing the raw XMP I can't tell you what the exact problem is.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

cocteau


Phil Harvey

Yes.  There is no "xmlns" definition for the "xap" namespace prefix.  So the XMP was not written correctly.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

cocteau

????

*** xmlns:xap="http://ns.adobe.com/xap/1.0/" ***
<rdf:Description rdf:about="" xap:Label="Approved" xmlns:xap="http://ns.adobe.com/xap/1.0/" xap:Rating="3" xap:CreateDate="2015-01-06T07:33:25+01:00" xap:ModifyDate="2017-11-09T11:11:27+01:00" xap:CreatorTool="Photo Supreme (3.3.0.2601)" xap:MetadataDate="2017-11-10T13:30:16.692+01:00"/>

xap:Rating
xap:CreateDate
xap:ModifyDate
****

also works, only not with xap:Label... and  and "Label       => { },"is also defined in xmp.pm

can I declare it myself in the ". exifTool_config"?


cocteau

aaaahhhhhh, I found the bug:)
if, xap: Label="Approved" before xmlns: xap***, it does NOT work
but, xap: Label="Approved" AFTER xmlns: xap*** it works.

NOT work:
<rdf:Description rdf:about="" xap:Label="Approved" xmlns:xap="http://ns.adobe.com/xap/1.0/" xap:Rating="3" xap:CreateDate="2015-01-06T07:33:25+01:00" xap:ModifyDate="2017-11-09T11:11:27+01:00" xap:CreatorTool="Photo Supreme (3.3.0.2601)" xap:MetadataDate="2017-11-10T13:30:16.692+01:00"/>

exiftool.exe -ext XMP "-ModifyDate=now" "-MetadataDate=now" "0FCC8870156EEB40E6A331A78ABE9A1A.xmp"
Error: Undefined XMP namespace: xap - 0FCC8870156EEB40E6A331A78ABE9A1A.xmp
    0 image files updated
    1 files weren't updated due to errors



working:
<rdf:Description rdf:about="" xmlns:xap="http://ns.adobe.com/xap/1.0/" xap:Rating="3" xap:CreateDate="2015-01-06T07:33:25+01:00" xap:ModifyDate="2017-11-09T11:11:27+01:00" xap:CreatorTool="Photo Supreme (3.3.0.2601)" xap:MetadataDate="2017-11-10T13:30:16.692+01:00"  xap:Label="Approved"/>

exiftool.exe -ext XMP "-ModifyDate=now" "-MetadataDate=now" "0FCC8870156EEB40E6A331A78ABE9A1A.xmp"
    1 image files updated




Order! is that soooo important?


Phil Harvey

Yes, the namespace must be defined before the tag may be used.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

RobiWan

Hi guys,

I have the same issue with XMP generated by Photo Supreme. Hert (PSU developer) tell me - its a BUG by ExifTool not PSU, because ExifTool can read this data (but not modified) and because here https://www.w3.org/RDF/Validator/ is the XMP file declared as valid.




Phil Harvey

#8
Ah.  Looking more closely at the XMP sample that was posted, I see that the "xap" namespace is actually defined, but after an attribute that already used that namespace.

Reading the XMP documentation, the order of the attributes doesn't matter, so in theory the xmlns attribute (ie. namespace definition) may come after an attribute that uses that namespace.  So this seems to be an ExifTool deficiency after all.  It is funny that this has never been a problem in the 14 years that ExifTool has been supporting XMP, so although the XMP produced by PSU is technically correct, it is very uncommon.  I have patched ExifTool 10.71 to be able to deal with this.

Thanks for following up on this.

- Phil

Edit:  Hert has sent me an email saying he will also change PSU to write the namespace first.
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

RobiWan

Hi Phil,

thank you very much - and because I forgot this - of course Happy New Year

Robert

cocteau

Quote from: Phil Harvey on January 02, 2018, 08:45:24 AM
I have patched ExifTool 10.71 to be able to deal with this.

Thank you so much.

dunnel

Hi Phil,
I still have difficulty with updating a jpg file.
I receive 'Warning: Undefined XMP namespace: attr - C:/NG Pictures/NG_RenameThese/NG 2014-03-11 - Wave of Industry.jpg'.
I'm using version 10.87.


C:\>exiftool -ver
10.87

C:\>exiftool -overwrite_original -XMP-dc:Description="A lone surfer" "D:\Wave of Industry.jpg"
Warning: Undefined XMP namespace: attr - D:/Wave of Industry.jpg
    0 image files updated
    1 image files unchanged

C:\>exiftool -overwrite_original -XMP-attr:All= -XMP-dc:Description="A lone surfer" "D:\Wave of Industry.jpg"
    1 image files updated


If I remove the XMP-attr group, I can perform the update.
Is there some further information I can supply?

Phil Harvey

Can you send me the jpg so I can try this?  philharvey66 at gmail.com

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).