Extensible Metadata Platform
The Extensible Metadata Platform (XMP) is an ISO standard, originally created by Adobe Systems Inc., for the creation, processing and interchange of standardized and custom metadata for all kinds of resources.
XMP standardizes a data model, a serialization format and core properties for the definition and processing of extensible metadata. It also provides guidelines on how XMP should be embedded into a number of popular image, video and document file formats (e.g. JPEG and PDF) without breaking their readability by applications that aren't aware of XMP. Therefore, the non-XMP metadata have to be reconciled with the XMP properties. Embedding metadata avoids a lot of problems that occur when metadata are stored separately, but for other use cases they can also be stored as a sidecar file.
The XMP data model, serialization format and core properties have been published by the International Organization for Standardization as ISO 16684-1:2012 standard.
- 1 XMP data model
- 2 Serialization of XMP
- 3 Embedding of XMP
- 4 XMP support and acceptance
- 5 History
- 6 See also
- 7 References
- 8 External links
XMP data model
The defined XMP data model can be used to store any set of metadata properties. These can be simple name-value pairs, structured values or lists of values. The data can be nested as well. The XMP standard also defines particular namespaces for defined sets of core properties (e.g. a namespace for the Dublin Core Metadata Element Set). Custom namespaces can be used to extend the data model.
An instance of the XMP data model is called an XMP packet. Adding properties to a packet does not affect existing properties. Software to add or modify properties in an XMP packet should leave properties that are unknown to it untouched.
For example it is useful for recording the history of a resource as it passes through multiple processing steps, from being photographed, scanned, or authored as text, through photo editing steps (such as cropping or color adjustment), to assemble into a final document. XMP allows each software program or device along the workflow to add its own information to a digital resource, which carries its metadata along. Prerequisite is that all involved editors either actively support XMP, or at least do not delete it from the resource.
Serialization of XMP
The abstract XMP data model needs a concrete representation when it is stored or embedded into a file. As serialization format, a subset of the W3C RDF/XML syntax is most commonly used. It is a syntax to express a Resource Description Framework graph in XML. There are various equivalent ways to serialize the same XMP packet in RDF/XML.
The most common metadata tags recorded in XMP data are those from the Dublin Core Metadata Initiative, which include things like title, description, creator, and so on. The standard is designed to be extensible, allowing users to add their own custom types of metadata into the XMP data. XMP generally does not allow binary data types to be embedded. This means that any binary data one wants to carry in XMP, such as thumbnail images, must be encoded in some XML-friendly format, such as Base64.
XMP metadata can describe a document as a whole (the "main" metadata), but can also describe parts of a document, such as pages or included images. This architecture makes it possible to retain authorship and rights information about, for example, images included in a published document. Similarly, it permits documents created from several smaller documents to retain the original metadata associated with the parts.
This is an example XML for serialized XMP metadata in JPEG photo:
<?xpacket begin="?" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.4-c002 1.000000, 0000/00/00-00:00:00 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/"> <xmp:CreatorTool>Picasa</xmp:CreatorTool> </rdf:Description> <rdf:Description rdf:about="" xmlns:mwg-rs="http://www.metadataworkinggroup.com/schemas/regions/" xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#" xmlns:stArea="http://ns.adobe.com/xmp/sType/Area#"> <mwg-rs:Regions rdf:parseType="Resource"> <mwg-rs:AppliedToDimensions rdf:parseType="Resource"> <stDim:w>912</stDim:w> <stDim:h>687</stDim:h> <stDim:unit>pixel</stDim:unit> </mwg-rs:AppliedToDimensions> <mwg-rs:RegionList> <rdf:Bag> <rdf:li rdf:parseType="Resource"> <mwg-rs:Type>Face</mwg-rs:Type> <mwg-rs:Area rdf:parseType="Resource"> <stArea:x>0.680921052631579</stArea:x> <stArea:y>0.3537117903930131</stArea:y> <stArea:h>0.4264919941775837</stArea:h> <stArea:w>0.32127192982456143</stArea:w> <stArea:unit>normalized</stArea:unit> </mwg-rs:Area> </rdf:li> </rdf:Bag> </mwg-rs:RegionList> </mwg-rs:Regions> </rdf:Description> <rdf:Description rdf:about="" xmlns:exif="http://ns.adobe.com/exif/1.0/"> <exif:PixelXDimension>912</exif:PixelXDimension> <exif:PixelYDimension>687</exif:PixelYDimension> <exif:ExifVersion>0220</exif:ExifVersion> </rdf:Description> </rdf:RDF> </x:xmpmeta> <!-- whitespace padding --> <?xpacket end="w"?>
This metadata describes various properties of the image like the creator tool, image dimension or a face region within the image. The specification used to describe the regions space for example can be found here.
Embedding of XMP
Embedding metadata in files allows easy sharing and transfer of files across products, vendors, platforms, without metadata getting lost; embedding avoids a multitude of problems coming from proprietary vendor-specific metadata databases.
XMP can be used in several file formats such as PDF, JPEG, JPEG 2000, JPEG XR, GIF, PNG, HTML, TIFF, Adobe Illustrator, PSD, MP3, MP4, Audio Video Interleave, WAV, RF64, Audio Interchange File Format, PostScript, Encapsulated PostScript, and proposed for DjVu. In a typical edited JPEG file, XMP information is typically included alongside Exif and IPTC Information Interchange Model data.
Location in file types
For more details, the XMP Specification, Part 3, Storage in Files listed below has details on embedding in specific file formats.
- TIFF - Tag 700
- JPEG - Application segment 1 (0xFFE1) with segment header "http://ns.adobe.com/xap/1.0/\x00"
- JPEG 2000 - 'uuid' atom with UID of 0xBE7ACFCB97A942E89C71999491E3AFAC
- PNG - inside a 'iTXt' text block with the keyword 'XML:com.adobe.xmp'
- GIF - as an Application Extension with identifier "XMP Data" and authentication code "XMP"
- PDF - embedded in a metadata stream contained in a PDF object
- For file formats that have no support for embedded XMP data, this data can be stored in external .xmp sidecar files.
XMP support and acceptance
The XMP Toolkit implements metadata handling in two libraries:
- XMPCore for creation and manipulation of metadata that follows the XMP Data Model.
- XMPFiles for embedding serialized metadata in files, and for retrieving embedded metadata.
Adobe provides the XMP Toolkit free of charge under a BSD license. The Toolkit includes specification and usage documents (PDFs), API documentation (doxygen/javadoc), C++ source code (XMPCore and XMPFiles) and Java source code (currently only XMPCore). XMPFiles is currently available as a C++/Java implementation in Windows, Mac OS, Unix/Linux.
Free Software / Open Source XMP tools (read/write support)
- ExifTool by Phil Harvey, open source Perl module or command line. Can read/write XMP, supports custom XMP schema (platform independent)
- Exiv2 - Open Source C++ library and command line utility to manage image metadata, including some XMP properties.
- iText - Open Source Java library that can read and write XMP embedded in PDF files.
- darktable - RAW developer, can read/write XMP in supported file formats (Linux, Mac OS X)
- digiKam - open source (GPL) image tagger and organiser (KDE).
- F-Spot - Linux/GNOME photo manager and editor
- Geeqie - Lightweight Gtk+ based image manager (formerly GQView)
- GIMP - GNU Image Manipulation Program
- Gwenview - Linux/KDE photo manager and editor
- Photini - Python and exiv2 based metadata editor
- Shotwell - Linux/GNOME photo manager, can read/write Exif, IPTC and XMP metadata
- CC PDF Converter - A free open source (GPL) program to convert documents to PDF with embedded Creative-Commons license (MS Windows).
- RawTherapee - open source raw converter for Windows, Mac OS X and Linux.
- Alfresco - open source CMS, DAM component can read/write XMP (MS Windows, Linux)
- Notre-DAM - Open source DAM solution, relies heavily on XMP capabilities
- ResourceSpace - Open source DAM concentrating on metadata; can be extended with exiftool to read/write many XMP properties
- Razuna - Open source DAM solution, can read/write XMP in supported file formats (platform independent, Java)
- Typo3 - open source Enterprise CMS. DAM component reads XMP (PHP based)
- Zenphoto - open source multimedia CMS, maps XMP attributes to image fields and allows XMP based filtering (PHP based)
Proprietary XMP tools (read/write support)
- ACDSee Pro can read/write XMP information for DNG, GIF, JPEG, PNG and TIFF files (MS Windows, Mac OS X).
- Acrobat - can read/write XMP in PDF files (MS Windows, Mac OS X, partially Linux).
- Aperture - Image management application and RAW developer. Reads/writes XMP sidecar files to (batch) import/export image metadata (Mac OS X).
- Bibble5 can read/write XMP information for RAW, JPG and TIFF files (MS Windows, Mac OS X, Linux).
- Bridge - can read/write and batch edit XMP metadata (MS Windows, Mac OS X)
- Capture One - Photo editing and management software. Reads and writes XMP for all supported image formats (MS Windows, Mac OS X).
- Corel AfterShot Pro - RAW processor (Bibble successor), reads/writes XMP, uses XMP sidecar files for non-destructive image processing (MS Windows, Mac OS X, Linux).
- ColorFactory by Fotoware - Hot folder based Image processing windows server application. Can read/write XMP, can also redirect files based on XMP content. Supports custom XMP schema (MS Windows)
- Cumulus - DAM software, can read/write XMP for all supported image formats, InDesign and PDF files (MS Windows, Mac OS X, Linux)
- Daminion - can read/write XMP for JPEG, TIFF, DNG, PNG, GIF, PDF, MOV, AVI, ASF, MP2, and MP4 formats (MS Windows).
- DBGallery - can read/write XMP for JPEG, RAW, TIFF, DNG, PNG, GIF (MS Windows).
- Diffractor - can edit and search XMP for most photo (including raw) or video formats. (MS Windows)
- DocBridge Mill - cross-platform document conversion software that can read, write and modify XMP in PDF, PDF/A, PostScript, TIFF, JPEG and PNG
- FastPictureViewer - Image viewer (Windows) with XMP embedding and/or sidecar files creation (xmp:Rating, xmp:Label, photoshop:Urgency) (MS Windows)
- FotoStation - Image management application and RAW developer. Can read/write XMP and supports custom XMP schema (MS Windows, Mac OS X)
- FrameMaker - publishing tool. Stores document metadata in XMP since version 7.0 (MS Windows)
- HELIOS Publishing server - cross-platform fileserver and toolchain to read/write XMP in supported file formats, extended Spotlight search inside XMP attributes (MS Windows, Mac OS X, Linux, Unix)
- IMatch - includes extensive XMP support, with XMP editor, ratings, display and extensions provide a mapping from/to XMP (MS Windows)
- Illustrator - illustration software, writes document metadata in XMP (MS Windows, Mac OS X)
- Indesign - page layout software, can passthrough XMP in placed objects, writes extensive XMP about document contents in layout documents and exported PDF (MS Windows, Mac OS X)
- IndexManager by Fotoware - Hot folder based Image indexing server application. Can read/write XMP from movies, PDF, images and RAW - full implementation of side cars. Supports custom XMP schema (MS Windows)
- Konvertor - can read/write Exif, IPTC and XMP information.
- Lightroom - Image management application and RAW developer. Uses XMP for non-destructive image manipulation and import/export of metadata (MS Windows, Mac OS X)
- MetadataTouch - can read/write XMP for JPEG, JPEG 2000, PNG, AVI, WAV, and MP4 formats (MS Windows).
- MetaLith - can read, analyze and write Exif, IPTC and XMP metadata of multiple JPG and TIFF files
- Microsoft Windows Vista - Photo Gallery saves tags to XMP (MS Windows)
- Microsoft Pro Photo Tools - Geocoding and XMP support (MS Windows, .NET 3.0)
- PDFlib - commercial PDF creation/manipulation library. Can read/write/insert/validate XMP in PDF
- Photoshop - can read/write XMP in supported images. Allows embedding of non standard XMP data through 'custom XMP panels' (MS Windows, Mac OS X)
- Photo Supreme - DAM software, can read/write XMP for JPEG, PSD, PDB, TIFF, DNG, RAW, and sidecar files (MS Windows, Mac OS X)
- PicaJet - Can read XMP for JPG, TIFF and DNG formats (MS Windows).
- Picasa - Image organizer/viewer, uses XMP for face tagging (MS Windows, Mac OS X, Linux)
- PixVue - Can read/write XMPExif, IPTC and XMP metadata of multiple JPG, (MS Windows XP explorer addon)
- Portfolio - DAM software, can read/write XMP in supported file formats (MS Windows, Mac OS X)
- SneakPeek Pro - reads previews in XMP metadata written from Adobe software to enable QuickLook previews (Mac OS X)
- Stibo STEP - DAM component reads/writes XMP for all supported formats
- SView5 - import/export/view
- WebDAM - Cloud based DAM solution
- Widen Enterprises - Cloud based DAM solution
- Windows Imaging Component - Microsoft library for working with and processing digital images and image metadata (MS Windows)
- Windows Live Photo Gallery - a photo management and sharing application released as a part of Microsoft's Windows Live initiative. It is an upgraded version of Windows Photo Gallery, which is a part of Windows Vista.
- XnView - can read/write Exif, IPTC and XMP information.
- Zoner Photo Studio - can read/write Exif, IPTC and XMP information for DNG, JPEG, TIFF, HDP and various RAW files (MS Windows).
The mainstream IPTC Information Interchange Model editing tools also support editing of XMP data.
XMP is a registered trademark of Adobe Systems Incorporated. The XMP specification became an ISO standard and is not proprietary anymore.
Initially, Adobe released source code for the XMP SDK under a license called the ADOBE SYSTEMS INCORPORATED — OPEN SOURCE LICENSE. The compatibility of this license with the GNU General Public License has been questioned. The license is not listed on the list maintained by the Open Source Initiative and is different from the licenses for most of their open source software.
On May 14, 2007, Adobe released the XMP Toolkit SDK under a standard BSD license.
On August 28, 2008, Adobe posted a public patent license for the XMP specification.
On June 21, 2004, Adobe announced its collaboration with the International Press Telecommunications Council. In July 2004, a working group led by Adobe Systems' Gunar Penikis and IPTC's Michael Steidl was set up, and volunteers were recruited from AFP (Agence France-Presse), Associated Press, ControlledVocabulary.com, IDEAlliance, Mainichi Shimbun, Reuters, and others, to develop the new schema.
The "IPTC Core Schema for XMP" version 1.0 specification was released publicly on March 21, 2005. A set of custom panels for Adobe Photoshop CS can be downloaded from the IPTC. The package includes a User's Guide, example photos with embedded XMP information, the specification document, and an implementation guide for developers. The "User's Guide to the IPTC Core" goes into detail about how each of the fields should be used and is also available directly as a PDF (see external links below). The next version of the Adobe Creative Suite (CS2) included these custom panels as part of its default set.
- IPTC Information Interchange Model
- Resource Description Framework (RDF)
- Astronomy Visualization Metadata (AVM)
- Comparison of metadata editors
- Exchangeable Image File Format (Exif)
- Adobe Extensible Metadata Platform (XMP) becomes an ISO standard
- "Adobe Open Source License" GPL compatible?
- XMP 4.1.1 SDK available under BSD license
- Public Patent License for XMP
- Windows Vista’s three killer features | Ed Bott’s Microsoft Report | ZDNet.com
- Adobe XMP Main Page
- XMP Specification
- XMP Information on coverpages.org
- Creative Commons XMP Recommendation
- Metadata section in the PDF 1.6 Language Reference
- IPTC4XMP (IPTC Core) standard
- Users Guide to the IPTC Core for XMP
- "Video Tutorials" that visually introduce the IPTC Core Schema for XMP
- Metadata Working Group provides guidance on metadata interoperability