XMP support =========== Todo: XMP support is controlled with the ENABLE_XMP directive in config/config.mk.in. This will be a configure option eventually. To build Exiv2 without XMP support, comment the line "ENABLE_XMP = 1" either in config.mk.in before running ./configure or in config.mk for now. Top-level Exiv2 classes to access XMP metadata are XmpData, Xmpdatum and XmpKey. They work similar to the corresponding Exif and IPTC classes. The property-repository is XmpProperties. In addition to the expected new members, class Image also has a new interface to access the raw XMP packet. All XMP value types are supported: Simple types, structures, arrays, property qualifiers and language alternatives. XMP properties are accessed through keys of the form "Xmp..", where is the preferred (or rather, registered) prefix for a schema namespace and is the path of the XMP node. In its most basic form, to address simple properties, is the name of the property. In general, can be used to address any XMP node, including array items, structure fields qualifiers and deeply nested properties. Any properties in known namespaces are supported and additional namespaces can be registered. The specialized Exiv2 values XmpArrayValue and LangAltValue are provided to simplify the use of XMP properties. See xmpsample.cpp for examples of how to set various types of XMP properties. Note: Unlike Exif and IPTC tags, XMP properties do not have a tag number. Todo: Conversion between XMP and Exif/IPTC metadata. XMP Toolkit installation ======================== Exiv2 uses the Adobe XMP Toolkit (XMP SDK) to parse and serialize XMP packets (only the XMPCore component). Todo: Integrate the XMPCore component of the XMP Toolkit with Exiv2 and make the build process transparent for users. The final solution will be to use an external XMP Toolkit eventually, once it is available as a standalone package from Linux distros. Below are the installation steps that worked for me on a Debian GNU/Linux (testing) system. Your mileage may vary. Please check with Adobe if you encounter problems with the XMP Toolkit installation. Installation directory ---------------------- The top-level exiv2 directory ($HOME/src/exiv2/ on my system). If you install XMP elsewhere, or use different OS or STAGE options to the make command below, you will need to manually modify the exiv2/config/config.mk.in (before running the configure script). There is no autoconf-magic yet to set this via configure options. External packages (non-Debian) ----------------- xmp_v411_sdk.zip - http://www.adobe.com/devnet/xmp/sdk/eula.html expat-2.0.1.tar.gz - http://sourceforge.net/project/showfiles.php?group_id=10127 exiv2 - from SVN Installation steps ------------------ cd $HOME/src/exiv2/ cp /path/to/xmp_v411_sdk.zip ./ unzip xmp_v411_sdk.zip cp /path/to/expat-2.0.1.tar.gz XMP-SDK/third-party/ cd XMP-SDK/third-party/ tar zxvf expat-2.0.1.tar.gz mv expat expat-orig mv expat-2.0.1 expat cd ../build/gcc make -f XMPCore.mak OS=i80386linux STAGE=debug Expected result --------------- Now there should be a library ../../public/libraries/i80386linux/debug/libXMPCoreStaticDebug.a