This page contains notes about a framework for handling XMP metadata.


In order to satisfy the PDF/A-1 specification Apache FOP needs a small XMP metadata framework. A generalized framework for XMP could be used inside the whole XML Graphics project and in other projects such as PDFBox.

Existing Efforts

So far, there are no major open source XMP toolkits in Java around. iText has some code and Ben Litchfield's JempBox is another effort. Ben offered to work with us on this.



  • compatible with JDK 1.3 and higher
  • parsing XMP (both from a SAX stream as well as XMP packets loaded from arbitrary files)
  • writing XMP (both as XMP snippets and XMP packets)
  • a suitable in-memory representation of XMP
  • user-friendly read/write access to XMP values through XMP schemas
  • Merging of two XMP documents
    • Use case: The main XMP document is contained in an XSL-FO file but the user agent (FOP) has additional values that need to be merged in (FOP's values overriding the ones from the FO file).


  • extension schema support as required by PDF/A-1
  • validation


Source Code:

Example Code:

  • No labels