BASKET
Search

XMP validation

In order to create valid XMP metadata you must ensure that it conforms to the XMP specification, and (depending on context) additional requirements such as those mandated by PDF/A. Since XMP is based on XML, the first step in checking your XMP is to make sure that it is indeed well-formed XML. You can use any of the existing XML valdation tools for this step. Taking into account that XMP is derived from W3C's RDF, you must also make sure that your XMP contains valid RDF. This can be tested with the RDF validation service provided by the W3C.

But how do you make sure that your XMP conforms to Adobe's XMP specification, and that it possibly conforms to the additional XMP requirements of PDF/A? Having XMP validation results is useful for developers and administrators who want to create their own custom XMP for inclusion in PDF and especially PDF/A. Since Acrobat does not supply XMP validation information we provide a free XMP validation service for PDF/A.

XMP validator for PDF/A (powered by PDFlib)

PDFlib was the first product worldwide with dedicated support for XMP extension schemas in PDF/A. As a free service to users interested in PDF/A, PDFlib GmbH offers an online validator which checks XMP metadata for compliance with the PDF/A standard.

The XMP validation service provided below is based on the XMP implementation in PDFlib. It can be used to check XMP metadata for conformance with the XMP specification and the additional XMP requirements in PDF/A. In particular, it checks the following:

XML and RDF syntax

Schemas and properties are taken from XMP 2004 (predefined schemas)

Predefined properties with container types (i.e. Seq, Bag, Lang Alt) are type-checked

Schemas and properties outside the predefined set must be accompanied by a schema description according to the PDF/A extension schema container schema

Extension schema descriptions in the XMP must conform to the rules set forth by PDF/A.

The test data can be pasted into a text field or uploaded as a file. The test data may consist of XMP text or a PDF/A file (regardless of the conformance status of the document). In the latter case XMP metadata (at the document level) will be extracted from the PDF and used as input for the validator. The validator will either flag the input as ok, or provide a single error message describing a problem in the input.

This validator checks user-supplied XMP for PDF/A generation with PDFlib products. XMP validation details are as follows:

XMP validation is performed against the PDF/A standard chosen in the select box below. You can select PDF/A-1 or PDF/A-2/3 since PDF/A-2 and PDF/A-3 have identical XMP requirements. Some XMP differences between PDF/A-1 and PDF/A-2/3 exist, but are very minor in nature. The conformance level (a, b, or u) cannot be selected since XMP requirements don't depend on it.

Any PDF/A identification entry (version and conformance level) which may be present in the input is ignored in favor of the manually selected PDF/A standard. Similarly, if the identification entry is missing this is not reported as an error.

XMP packet decoration (<?xpacket> element) is not required. If it is missing, this is not reported as an error.

If you upload a PDF document, the XMP validator doesn't apply any PDF/A validation other than XMP checks.

The XMP validator doesn't apply any semantic type checking, e.g. plausibility of dates or data type validation.

Only one error at a time is reported even if the input contains multiple problems. You must fix the reported problem and revalidate in order to check for other problems.

If you have questions or comments regarding this service please contact PDFlib support. In order to install it locally you can download the evaluation version of PDFlib from the PDFlib download page.

To use the validation service you can upload a PDF/A or UTF8-encoded XMP file, or copy XMP metadata to the text field below. If you upload PDF/A, the XMP metadata stream will be extracted and used as input for validation.

Upload XMP or PDF/A file
or input XMP data to the text field below:


Check against: