Extensible Metadata Platform


The Extensible Metadata Platform is an ISO standard, originally created by Adobe Systems Inc., for the creation, processing and interchange of standardized and custom metadata for digital documents and data sets.
XMP standardizes a data model, a serialization format and core properties for the definition and processing of extensible metadata. It also provides guidelines for embedding XMP information into popular image, video and document file formats, such as JPEG and PDF, without breaking their readability by applications that do not support XMP. Therefore, the non-XMP metadata have to be reconciled with the XMP properties. Although metadata can alternatively be stored in a sidecar file, embedding metadata avoids problems that occur when metadata is stored separately.
The XMP data model, serialization format and core properties is published by the International Organization for Standardization as ISO 16684-1:2012 standard.

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. 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, 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. The prerequisite is that all involved editors either actively support XMP, or at least do not delete it from the resource.

Serialization

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, 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.

Example

This is an example XML document for serialized XMP metadata in a JPEG photo:


Core 5.4-c002 1.000000, 0000/00/00-00:00:00 ">

xmlns:xmp="http://ns.adobe.com/xap/1.0/">
Picasa

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#">


912
687
pixel






0.680921052631579
0.3537117903930131
0.4264919941775837
0.32127192982456143
normalized






xmlns:exif="http://ns.adobe.com/exif/1.0/">
912
687
0220






This metadata describes various properties of the image like the creator tool, image dimension or a face region within the image.

Embedding

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, JPEG XL, GIF, PNG, WebP, 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 listed below has details on embedding in specific file formats.
  • TIFFTag 700
  • JPEGApplication segment 1 with segment header "http://ns.adobe.com/xap/1.0/\x00"
  • JPEG 2000"uuid" atom with UID of 0xBE7ACFCB97A942E89C71999491E3AFAC
  • JPEG XL"xml " box type
  • PNGinside an "iTXt" text block with the keyword "XML:com.adobe.xmp"
  • GIFas an Application Extension with identifier "XMP Data" and authentication code "XMP"
  • MP3inside the ID3 block as a "PRIV" frame with an owner identifier of "XMP".
  • MP4top-level "UUID" box with the UUID 0xBE7ACFCB97A942E89C71999491E3AFAC
  • MOV "XMP_" atom within a "udta" atom, within a top level "moov" atom.
  • PDFembedded in a metadata stream contained in a PDF object
  • WebPinside the file's XMP chunk
  • For file formats that have no support for embedded XMP data, this data can be stored in external.xmp sidecar files.

    Support and acceptance

XMP Toolkit

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, API documentation, C++ source code and Java source code. XMPFiles is currently available as a C++/Java implementation in Windows, Mac OS, Unix/Linux.

Free software and open-source tools (read/write support)

  • Alfresco - open source CMS, DAM component can read/write XMP
  • Calibre by Kovid Goyal, an ebook management system that can read and write XMP metadata from some file formats
  • CC PDF Converter - A free open source program to convert documents to PDF with embedded Creative-Commons license.
  • darktable - RAW developer, can read/write XMP in supported file formats
  • digiKam - open source image tagger and organiser
  • ExifTool by Phil Harvey, open source Perl module or command line. Can read/write XMP, supports custom XMP schema
  • F-Spot - Linux/GNOME photo manager and editor
  • Geeqie - Lightweight Gtk+ based image manager
  • GIMP - GNU Image Manipulation Program
  • Gwenview - Linux/KDE photo manager and editor
  • iText - Open Source Java library that can read and write XMP embedded in PDF files.
  • Magic Lantern - A firmware add-on for various Canon Digital single-lens reflex cameras, allowing writing of XMP sidecar files including exposure compensation information for post-deflicker.
  • RawTherapee - Can read "rating" tags from embedded XMP, which are then shown in the File Browser/Filmstrip using RawTherapee's star rating system.
  • Shotwell - Linux/GNOME photo manager, can read/write Exif, IPTC and XMP metadata
  • TYPO3 - open source Enterprise CMS. DAM component reads XMP

    Proprietary tools (read/write support)

  • ACDSee Pro can read and write XMP information for DNG, GIF, JPEG, PNG and TIFF files.
  • Acrobat - can read and write XMP in PDF files.
  • Aperture - Image management application and RAW developer. Reads/writes XMP sidecar files to import/export image metadata.
  • Bibble5 can read/write XMP information for RAW, JPG and TIFF files.
  • Bridge - can read/write and batch edit XMP metadata
  • Capture One - Photo editing and management software. Reads and writes XMP for all supported image formats.
  • Corel AfterShot Pro - RAW processor, reads/writes XMP, uses XMP sidecar files for non-destructive image processing.
  • Cumulus - DAM software, can read/write XMP for all supported image formats, InDesign and PDF files
  • DBGallery - Can read/write XMP for JPEG, PSD, RAW, TIFF, DNG, PNG, GIF, JP2, PJX, MPG, MP4, MPEG, MOV . Multi-user, central database system.
  • FastPictureViewer - Image viewer with XMP embedding and/or sidecar files creation
  • FrameMaker - publishing tool. Stores document metadata in XMP since version 7.0
  • Illustrator - illustration software, writes document metadata in XMP
  • Indesign - page layout software, can pass through XMP in placed objects, writes extensive XMP about document contents in layout documents and exported PDF
  • iOS Photos app - Saves edits made to photos on an iPhone/iPad losslessly as XMP embedded in the original JPEG.
  • Lightroom - Image management application and RAW developer. Uses XMP for non-destructive image manipulation and import/export of metadata
  • Microsoft Windows Vista - Photo Gallery saves tags to XMP
  • Photo Mechanic - Reads and writes XMP directly into image files or into XMP sidecar files.
  • Photoshop - can read/write XMP in supported images. Allows embedding of non standard XMP data through 'custom XMP panels'
  • PicaJet - Can read XMP for JPG, TIFF and DNG formats.
  • Picasa - Image organizer/viewer, uses XMP for face tagging
  • PixelPeeper - can read Exif and XMP metadata from JPG files. Also, it can turn XMP metadata into Lightroom-compatible presets.
  • Portfolio - DAM software, can read/write XMP in supported file formats
  • Stibo STEP - DAM component reads/writes XMP for all supported formats
  • Windows Imaging Component - Microsoft library for working with and processing digital images and image metadata
  • 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.
The mainstream IPTC Information Interchange Model editing tools also support editing of XMP data.