Archived Forum Post

Index of archived forum posts

Question:

XMP LocationCreated

Sep 25 '15 at 16:40

Iptc4xmpLocationCreated is apparently a bag of structured properties. ie. Unlike CreatorContactInfo, you need to make a bag which contains the structured properties.

But as far as I can see, you can only create a bag from a string array. (???)

Do you have any samples adding a Iptc4xmpExt:LocationCreated structure?

Thanks, otherwise the XMP/XML is working great.


Answer

Here's an example:

Android: XMP API Helps Build the XML

C: XMP API Helps Build the XML

C#: XMP API Helps Build the XML

C# WinRT: XMP API Helps Build the XML

C++: XMP API Helps Build the XML

Classic ASP: XMP API Helps Build the XML

DataFlex: XMP API Helps Build the XML

Delphi ActiveX: XMP API Helps Build the XML

Delphi DLL: XMP API Helps Build the XML

Java: XMP API Helps Build the XML

Lianja: XMP API Helps Build the XML

MFC: XMP API Helps Build the XML

Node.js: XMP API Helps Build the XML

Objective-C: XMP API Helps Build the XML

Perl: XMP API Helps Build the XML

PHP ActiveX: XMP API Helps Build the XML

PHP Extension: XMP API Helps Build the XML

PowerBuilder: XMP API Helps Build the XML

PowerShell: XMP API Helps Build the XML

PureBasic: XMP API Helps Build the XML

Python: XMP API Helps Build the XML

Ruby: XMP API Helps Build the XML

SQL Server: XMP API Helps Build the XML

Swift: XMP API Helps Build the XML

Tcl: XMP API Helps Build the XML

Unicode C: XMP API Helps Build the XML

Unicode C++: XMP API Helps Build the XML

VB.NET: XMP API Helps Build the XML

VB.NET WinRT: XMP API Helps Build the XML

VBScript: XMP API Helps Build the XML

Visual Basic 6.0: XMP API Helps Build the XML

Visual FoxPro: XMP API Helps Build the XML


Answer

Thanks this helped greatly. For Objective C, the result doesn't work as is. The sample code created the below in the XMP XML: Note the TWO rdf:parseType="Resource" in the rdf:Bag tag. Photoshop 2015 CC didn't like this XML. No error, just ignored it and removed it from the raw data.

I fixed it by rewriting the add "rdf:li" to use NewChild and return the XML object, instead of NewChild2, and adding attribute and nodes with that.

Thanks again. Got me over the hump.


       <Iptc4xmpExt:LocationCreated>
            <rdf:Bag rdf:parseType="Resource" rdf:parseType="Resource">
                <rdf:li>
                    <Iptc4xmpExt:City>Ville création photo</Iptc4xmpExt:City>
                    <Iptc4xmpExt:CountryName>Nom diu pays de la photo</Iptc4xmpExt:CountryName>
                    <Iptc4xmpExt:ProvinceState>Département; Photo</Iptc4xmpExt:ProvinceState>
                    <Iptc4xmpExt:Sublocation>Lieu création photo</Iptc4xmpExt:Sublocation>
                </rdf:li>
                <rdf:li>
                    <Iptc4xmpExt:City>2 Ville création photo</Iptc4xmpExt:City>
                    <Iptc4xmpExt:CountryName>2 Nom diu pays de la photo</Iptc4xmpExt:CountryName>
                    <Iptc4xmpExt:ProvinceState>2 Département; Photo</Iptc4xmpExt:ProvinceState>
                    <Iptc4xmpExt:Sublocation>2 Lieu création photo</Iptc4xmpExt:Sublocation>
                </rdf:li>
            </rdf:Bag>
        </Iptc4xmpExt:LocationCreated>`