Adobe Labs

cap bottom

Adobe XMP Toolkit Version 4.1

The Adobe Extensible Metadata Platform (XMP) is a labeling technology that allows you to embed data about a file, known as metadata, into the file itself. With XMP, desktop applications and back-end publishing systems gain a common method for capturing, sharing, and leveraging this valuable metadata opening the door for more efficient job processing, workflow automation, and rights management, among many other possibilities. To obtain more general Information about the Extensible Metadata Platform (XMP), please visit the XMP product page on the Adobe website.

Version 4.1 of the Adobe XMP Toolkit is planned to significantly extend the capabilities of the current SDK by adding an often-requested feature: the ability to easily find, add, and update XMP in popular image, document, and video file formats. As such, Version 4.1 contains two distinct components:

  • XMP Core: a component for parsing, manipulating, and serializing XMP data. This component was historically called the "XMP Toolkit" because it was the only component in the toolkit. It will henceforth be called the XMP Core, whereas the XMP Toolkit refers to the entire SDK. The XMP Core component is available for both C++ and Java.
  • XMP Files: a component for reading, rewriting, and injecting serialized XMP into popular image, document, and video file formats. The XMP Files component can be thought of as a "file I/O" component for reading and writing the XMP that is manipulated by the XMP Core.

The release candidate of the XMP Toolkit 4.1 is being made available as C++ and Java sources aside with project files for the Macintosh, Windows and Linux platform. Developers may experiment with (and give feedback on) both the file format support and the overall toolkit architecture.

This source code is available under the same open source license used for prior XMP Toolkit releases.

Getting Started

Follow these steps to get started with XMP Toolkit 4.1 release candidate:

  1. To familiarize yourself with the XMP Toolkit, review the following information regarding the currently available version of the XMP Toolkit (version 3.5):
  2. Download XMP Toolkit Version 4.1 release candidate

    The download contains projects and makefiles for building the XMP Toolkit on Macintosh, Windows, Linux or Java. The Macintosh build is an Xcode 2.3 project, this will create a universal binary for both PowerPC and Intel processors. The Windows build is a Visual Studio 2005 (VC8) solution and the Java build an Eclipse project.

  3. Open the downloaded ZIP file and read /docs/XMP-SDK-Overview.pdf for an overview of the XMP Toolkit 4.1 content and /docs/XMPToolkit/index.html to have a look at the API reference.
  4. Get started with the build and source content included in the ZIP file:
    • In the /build folder you will find the project files for the toolkit.
    • Under /samples/build the sample project files are located.
    • Read /java/readme.txt to set up the Java project.
  5. Ask questions and share your feedback in the XMP Toolkit Forum.

    Please note that your submission of comments, ideas, feature requests and techniques on this and other Adobe maintained forums, as well as Adobe's right to use such materials, is governed by the Terms of Use.


Below you'll find references and links to help you participate in the XMP developer communities.

Online Forums

Ask questions, discuss, and share feedback with other developers in online forums.

Standard Groups

The extensibility of XMP allows standards to be expressed and carried throughout the workflow.


XMP is supported across the suite of Adobe products, carrying metadata from camera capture to PDF archive. There is a growing list of partners that are using XMP to deeply integrate their solutions with Adobe products.

Adobe Open Source

Adobe Open Source Adobe's open source web site is the home for the Adobe Source Libraries (ASL) and information about other Adobe open source projects.

Product Details


What file formats are supported in the Release Candidate?
The version 4.1 of the XMP Files component will allow developers to easily add and update XMP in the following file formats: JPEG, PSD, TIFF, AVI, WAV, MPEG, MP3, MOV, INDD, PS, EPS and PNG. With a scan of the complete file, the XMP can also be retrieved from additional formats.
Can I use the Release Candidate code in my commercial application?
The 4.1 source code is released under the same open source license as the previous final versions of the XMP Toolkits. The license allows developers to create derivative works provided that proper attribution is included in the source code - please refer to the license for more details.
Will Adobe release a java version?
A Java version of XMP Core is now part of the XMP Toolkit. A Java version of XMP Files is under consideration for a future update.
Why does the Mac project not compile after extraction using StuffIt?
Please make sure that the path to the XCode project does not contain any spaces. This might happen if you use StuffIt Expander.

System Requirements

The supported development environments include:

  • XCode 2.3 for Macintosh universal binaries.
  • Visual Studio 2005 (VC8) for Windows.
  • Eclipse 3.x on any available platform.

Release Notes

The following folders and files are contained within the XMP-SDK:

  • XMP-SDK/build Contains subfolders with projects and makefiles for building the XMP Toolkit on Macintosh, Windows, and UNIX. The Macintosh build is an Xcode 2.3 project, this will create a universal binary for both PowerPC and Intel processors. The Windows build is a Visual Studio 2005 (VC8) solution. The UNIX build is a makefile for gcc, it has been tested on x86 Linux.
  • XMP-SDK/docs Contains the License Agreement (XMP-SDK/docs/XMPLicense.txt), an overview (/docs/XMP-SDK-Overview.pdf) the XMP Specification (/docs/XMP-Specification.pdf) and the API documentation for the XMP Toolkit in HTML (/docs/XMPToolkit/index.html).
  • XMP-SDK/java Contains the Java version of XMP Core, the API documentation, the project files for Eclipse 3.x and an example. The readme.txt describes how to set up the projects in Eclipse.
  • XMP-SDK/public/include Contains the headers files used by clients of the XMP Toolkit.
  • XMP-SDK/samples Contains source and build projects for 4 sample programs. XMPCoreCoverage illustrates use of the XMP Core. XMPFilesCoverage illustrates use of the XMP File Handler. DumpMainXMP uses the XMP File Handler to find the main XMP in a file and display its content. DumpScannedXMP uses "dumb" packet scanning to find all XMP Packets in a file and display their content.
  • XMP-SDK/source Contains the implementation of the XMP Toolkit.
  • XMP-SDK/third-party/expat/ReadMe.txt Information about obtaining and integrating Expat that is needed to build XMP Core.
  • XMP-SDK/third-party/QTDevWin/ReadMe.txt Information about obtaining and integrating Quicktime SDK (only used for XMP Files and Windows).


Showcase Gallery