XMP

En avril 2001, Adobe créa la standard Extensible Metadata Platform ou XMP. Contrairement aux EXIF et IPTC, qui sont utilisés pour décrire les attributs d'une image, XMP est un standard qui définit comment d'autres standards de métadonnées (EXIF, IPTC, Dublin Core, etc.) doivent être annexés. C'est essentiellement un emballage des autres caractéristiques de métadonnées. Cela définit comment ces caractéristiques doivent être annexées et conservées. XMP utilise XML pour représenter des valeurs plutôt que des tags comme avec EXIF et IPTC.

XMP utilise aussi RDF (Resource Description Framework). RDF est un jeu de tags XML qui permettent de définir les attributs des données. Ces attributs peuvent être extraits depuis des images (et d'autres types de documents) par des moteurs de recherches, ce qui permet à des utilisateurs de retrouver des documents à partir de métadonnées annexées. En utilisant RDF, il est possible de rechercher des documents dans tous les formats plutôt que juste des pages HTML. C'est la base du web sémantique.

Depuis XMP ne définit pas d'attributs, mais utilise plutôt d'autres standards de métadonnées. Notons que les autres standards ne définissent pas des attributs. Donc XMP fournit une simple enveloppe, autour des différents types de métadonnées. Un échantillon de XMP ressemble à :

<?xpacket begin="?" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="3.1.1-111">
	<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
		<rdf:Description rdf:about=""
			xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
			xmlns:xap="http://ns.adobe.com/xap/1.0/"
			xmlns:exif="http://ns.adobe.com/exif/1.0/"
			xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
			xmlns:Iptc4xmpCore="http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/"
			xmlns:dc="http://purl.org/dc/elements/1.1/"
			xmlns:xapRights="http://ns.adobe.com/xap/1.0/rights/"
			tiff:Orientation="1"
			tiff:YCbCrPositioning="2"
			tiff:XResolution="144/1"
			tiff:YResolution="144/1"
			tiff:ResolutionUnit="2"
			tiff:Make="OLYMPUS OPTICAL CO.,LTD"
			tiff:Model="E-20,E-20N,E-20P"
			xap:CreatorTool="29-1104 "
			xap:MetadataDate="2005-09-07T15:16:34+10:00"
			exif:ExifVersion="0.2.1.0"
			exif:FlashpixVersion="0.1.0.0"
			exif:ColorSpace="1"
			exif:PixelXDimension="2560"
			exif:PixelYDimension="1920"
			exif:DateTimeOriginal="2005-05-11T14:19:42+10:00"
			exif:DateTimeDigitized="2005-05-11T14:19:42+10:00"
			exif:ExposureTime="1/400"
			exif:FNumber="40/10"
			photoshop:ICCProfile="sRGB IEC61966-2.1"
			photoshop:ColorMode="3"
			photoshop:City="Broome"
			photoshop:State="WA"
			photoshop:Country="Australia"
			Iptc4xmpCore:Location="Broome environs">
			<tiff:BitsPerSample>
				<rdf:Seq>
					<rdf:li>8</rdf:li>
					<rdf:li>8</rdf:li>
					<rdf:li>8</rdf:li>
				</rdf:Seq>
			</tiff:BitsPerSample>
			<exif:ComponentsConfiguration>
				<rdf:li>1</rdf:li>
					<rdf:li>2</rdf:li>
					<rdf:li>3</rdf:li>
					<rdf:li>0</rdf:li>
				</rdf:Seq>
			</exif:ComponentsConfiguration>
			<exif:ISOSpeedRatings>
				<rdf:Seq>
					<rdf:li>80</rdf:li>
				</rdf:Seq>
			</exif:ISOSpeedRatings>
			<exif:Flash
				exif:Fired="False"
				exif:Return="0"
				exif:Mode="0"
				exif:Function="False"
			exif:RedEyeMode="False"/>
			<dc:description>
				<rdf:Alt>
					<rdf:li xml:lang="x-default">Strapping camera to Holden for car journey scene.</rdf:li>
				</rdf:Alt>
			</dc:description>
			<dc:rights>
				<rdf:Alt>
					<rdf:li xml:lang="x-default">Copyright, all rights reserved</rdf:li>
				</rdf:Alt>
			</dc:rights>
			<dc:title>
				<rdf:Alt>
					<rdf:li xml:lang="x-default">Holden street scene</rdf:li>
				</rdf:Alt>
			</dc:title>
			<xapRights:UsageTerms>
				<rdf:Alt>
					<rdf:li xml:lang="x-default">Copyrighted Material, no reproduction without prior permission</rdf:li>
				</rdf:Alt>
			</xapRights:UsageTerms>
		</rdf:Description>
	</rdf:RDF>
</x:xmpmeta>

Même sans comprendre le code XML, un bref regard permet de reconnaître que les standards de métadonnées EXIF (exif:), IPTC (Iptc4xmpCore:), TIFF (tiff:), Dublin Core (dc:) sont enveloppés. Les tags RDF (rdf:) définissent la structure XMP du document et ne sont pas des tags d'attributs des métadonnées.

Comme XMP est basé sur du XML, il est extensible. Cela veut dire que de nouveaux standards peuvent être intégrés, sans changer les spécifications XMP. Il est aussi possible de définir son propre schéma XML (jeu de tags pour son utilisation) et de l'envelopper dans du XMP.

La définition d'un attribut de métadonnées dans XMP comporte deux parties. La première partie est namespace. Il s'agit d'une étiquette utilisée pour définir un certain standard de métadonnées. La seconde partie est la balise XML au sein de ce namespace. Pour déterminer la paire namespace:tag d'un attribut de métadonnées, vous devez d'abord localiser la balise dans le XML. Dans le XML ci-dessus, utilisons <dc:title> comme exemple. La balise de ce XML est titre. Le dc: se trouvant devant est connu comme étant le préfixe. Pour détermine namespace, nous devons utiliser le préfixe pour localiser la valeur de namespace. Les namespaces ont une balise de xmlns:prefix=" namespace ". Vous pouvez donc être en mesure de localiser la ligne :

xmlns:dc="http://purl.org/dc/elements/1.1/"

Cette entrée définit le namespace pour le "prefix" dc comme http://purl/dc/elements/1.1/. Donc pour déterminer l'élément "title", nous avons besoin de l'information http://purl/dc/elements/1.1/:title. La raison pour laquelle le "prefix" ne peut être utilisé est parce que XML autorise la définition de toute valeur de "prefix" pour un namespace donné (donc dc ne doit pas être le préfixe).

Tout namespace peut être utilisé en XMP, cependant il y a des standards basés sur des namespaces prédéfinis. La table ci-dessous les détaille. Pour une description complète du standard XMP, consulter les spécifications XMP.

Namespace

Standard Métadonnées

http://purl.org/dc/elements/1.1/

Dublin Core Schema

http://ns.adobe.com/xap/1.0/

XMP Basic Schema

http://ns.adobe.com/xap/1.0/rights/

XMP Rights Management Schema

http://ns.adobe.com/xap/1.0/mm/

XMP Media Management Schema

http://ns.adobe.com/xap/1.0/bj/

XMP Basic Job Ticket Schema

http://ns.adobe.com/xap/1.0/t/pg/

XMP Paged-Text Schema

http://ns.adobe.com/xmp/1.0/DynamicMedia/

XMP Paged-Text Schema

http://ns.adobe.com/pdf/1.3/

Adobe PDF Schema

http://ns.adobe.com/photoshop/1.0/

Photoshop Schema

http://ns.adobe.com/camera-rawsettings/1.0/

Camera Raw Schema

http://ns.adobe.com/tiff/1.0/

EXIF Schema for TIFF Properties

http://ns.adobe.com/exif/1.0/

EXIF Schema for EXIF-specific Properties

http://ns.adobe.com/exif/1.0/aux/

EXIF Schema for Additional EXIF Properties

http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/

IPTC Core Schema