Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.jempbox.xmp
Class XMPMetadata

    java.lang.Object
      org.jempbox.xmp.XMPMetadata

Direct Known Subclasses:
  XMPMetadataPDFA

public class XMPMetadata
extends java.lang.Object

This class represents the top level XMP data structure and gives access to the various schemas that are available as part of the XMP specification.

Version:
  $Revision: 1.10 $
Author:
  Ben Litchfield

Field Summary
`protected java.lang.String` | `encoding` The encoding of the XMP document.
`static java.lang.String` | `ENCODING_UTF16BE` Supported encoding for persisted XML.
`static java.lang.String` | `ENCODING_UTF16LE` Supported encoding for persisted XML.
`static java.lang.String` | `ENCODING_UTF8` Supported encoding for persisted XML.
`protected java.util.Map` | `nsMappings` A mapping of namespaces.
`protected org.w3c.dom.Document` | `xmpDocument` The DOM representation of the metadata.

Constructor Summary
`XMPMetadata()` Default constructor, creates blank XMP doc.
`XMPMetadata(org.w3c.dom.Document doc)` Constructor from an existing XML document.

Method Summary
`XMPSchemaBasicJobTicket` | `addBasicJobTicketSchema()` Add a new Job Ticket schema.
`XMPSchemaBasic` | `addBasicSchema()` Create and add a new Basic Schema to this metadata.
`XMPSchemaDublinCore` | `addDublinCoreSchema()` Create and add a new Dublin Core Schema to this metadata.
`XMPSchemaDynamicMedia` | `addDynamicMediaSchema()` Add a new Dynamic Media schema.
`XMPSchemaIptc4xmpCore` | `addIptc4xmpCoreSchema()` Create and add a new IPTC schema to this metadata.
`XMPSchemaMediaManagement` | `addMediaManagementSchema()` Add a new Media Management schema.
`XMPSchemaPagedText` | `addPagedTextSchema()` Add a new Paged Text schema.
`XMPSchemaPDF` | `addPDFSchema()` Create and add a new PDF Schema to this metadata.
`XMPSchemaPhotoshop` | `addPhotoshopSchema()` Create and add a new Photoshop schema to this metadata.
`XMPSchemaRightsManagement` | `addRightsManagementSchema()` Add a new Rights Managment schema.
`void` | `addSchema(XMPSchema schema)` Add a custom schema to the root rdf.
`void` | `addXMLNSMapping(java.lang.String namespace, java.lang.Class xmpSchema)` Will add a XMPSchema to the set of identified schemas.
`byte[]` | `asByteArray()` Get the XML document as a byte array.
`protected XMPSchema` | `basicAddSchema(XMPSchema schema)` Generic add schema method.
`XMPSchemaBasicJobTicket` | `getBasicJobTicketSchema()` Get the Job Ticket Schema.
`XMPSchemaBasic` | `getBasicSchema()` Get the Basic Schema.
`XMPSchemaDublinCore` | `getDublinCoreSchema()` Get the Dublin Core Schema.
`XMPSchemaDynamicMedia` | `getDynamicMediaSchema()` Get the Dynamic Media Schema.
`java.lang.String` | `getEncoding()` Get the current encoding that will be used to write the XML.
`XMPSchemaMediaManagement` | `getMediaManagementSchema()` Get the Media Management Schema.
`XMPSchemaPagedText` | `getPagedTextSchema()` Get the Paged Text Schema.
`XMPSchemaPDF` | `getPDFSchema()` Get the PDF Schema.
`XMPSchemaRightsManagement` | `getRightsManagementSchema()` Get the Schema Rights Schema.
`XMPSchema` | `getSchemaByClass(java.lang.Class targetSchema)` Tries to retrieve a schema from this by classname.
`java.util.List` | `getSchemas()` This will get a list of XMPSchema(or subclass) objects.
`java.util.List` | `getSchemasByNamespaceURI(java.lang.String namespaceURI)` Will return all schemas that fit the given namespaceURI.
`org.w3c.dom.Document` | `getXMPDocument()` Get the XML document from this object.
`boolean` | `hasUnknownSchema()` This will return true if the XMP contains an unknown schema.
`static XMPMetadata` | `load(org.xml.sax.InputSource is)` Load a schema from an input source.
`static XMPMetadata` | `load(java.io.InputStream is)` Load metadata from the filesystem.
`static XMPMetadata` | `load(java.lang.String file)` Load metadata from the filesystem.
`static void` | `main(java.lang.String[] args)` Test main program.
`void` | `merge(XMPMetadata metadata)` Merge this metadata with the given metadata object.
`void` | `save(java.io.OutputStream outStream)` Save the XMP document to a stream.
`void` | `save(java.lang.String file)` Save the XMP document to a file.
`void` | `setEncoding(java.lang.String xmlEncoding)` The encoding used to write the XML.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### ENCODING_UTF8

    public static final java.lang.String ENCODING_UTF8

  Supported encoding for persisted XML.

  See Also:
    Constant Field Values

### ENCODING_UTF16BE

    public static final java.lang.String ENCODING_UTF16BE

  Supported encoding for persisted XML.

  See Also:
    Constant Field Values

### ENCODING_UTF16LE

    public static final java.lang.String ENCODING_UTF16LE

  Supported encoding for persisted XML.

  See Also:
    Constant Field Values

### xmpDocument

    protected org.w3c.dom.Document xmpDocument

  The DOM representation of the metadata.

### encoding

    protected java.lang.String encoding

  The encoding of the XMP document. Default is UTF8.

### nsMappings

    protected java.util.Map nsMappings

  A mapping of namespaces.

Constructor Detail

### XMPMetadata

    public XMPMetadata()
                throws java.io.IOException

  Default constructor, creates blank XMP doc.

Throws:
  `java.io.IOException` - If there is an error creating the initial document.

### XMPMetadata

    public XMPMetadata(org.w3c.dom.Document doc)

  Constructor from an existing XML document.

Parameters:
  `doc` - The root XMP document.

Method Detail

### addXMLNSMapping

    public void addXMLNSMapping(java.lang.String namespace,
                                java.lang.Class xmpSchema)

  Will add a XMPSchema to the set of identified schemas. The class needs to have a constructor with parameter Element

  Parameters:
    `namespace` - The namespace URI of the schmema for instance http://purl.org/dc/elements/1.1/.
    `xmpSchema` - The schema to associated this identifier with.

### getPDFSchema

    public XMPSchemaPDF getPDFSchema()
                              throws java.io.IOException

  Get the PDF Schema.

  Returns:
    The first PDF schema in the list.
  Throws:
    `java.io.IOException` - If there is an error accessing the schema.

### getBasicSchema

    public XMPSchemaBasic getBasicSchema()
                                  throws java.io.IOException

  Get the Basic Schema.

  Returns:
    The first Basic schema in the list.
  Throws:
    `java.io.IOException` - If there is an error accessing the schema.

### getDublinCoreSchema

    public XMPSchemaDublinCore getDublinCoreSchema()
                                            throws java.io.IOException

  Get the Dublin Core Schema.

  Returns:
    The first Dublin schema in the list.
  Throws:
    `java.io.IOException` - If there is an error accessing the schema.

### getMediaManagementSchema

    public XMPSchemaMediaManagement getMediaManagementSchema()
                                                      throws java.io.IOException

  Get the Media Management Schema.

  Returns:
    The first Media Management schema in the list.
  Throws:
    `java.io.IOException` - If there is an error accessing the schema.

### getRightsManagementSchema

    public XMPSchemaRightsManagement getRightsManagementSchema()
                                                        throws java.io.IOException

  Get the Schema Rights Schema.

  Returns:
    The first Schema Rights schema in the list.
  Throws:
    `java.io.IOException` - If there is an error accessing the schema.

### getBasicJobTicketSchema

    public XMPSchemaBasicJobTicket getBasicJobTicketSchema()
                                                    throws java.io.IOException

  Get the Job Ticket Schema.

  Returns:
    The first Job Ticket schema in the list.
  Throws:
    `java.io.IOException` - If there is an error accessing the schema.

### getDynamicMediaSchema

    public XMPSchemaDynamicMedia getDynamicMediaSchema()
                                                throws java.io.IOException

  Get the Dynamic Media Schema.

  Returns:
    The first Dynamic Media schema in the list.
  Throws:
    `java.io.IOException` - If there is an error accessing the schema.

### getPagedTextSchema

    public XMPSchemaPagedText getPagedTextSchema()
                                          throws java.io.IOException

  Get the Paged Text Schema.

  Returns:
    The first Paged Text schema in the list.
  Throws:
    `java.io.IOException` - If there is an error accessing the schema.

### addMediaManagementSchema

    public XMPSchemaMediaManagement addMediaManagementSchema()

  Add a new Media Management schema.

  Returns:
    The newly added schema.

### addRightsManagementSchema

    public XMPSchemaRightsManagement addRightsManagementSchema()

  Add a new Rights Managment schema.

  Returns:
    The newly added schema.

### addBasicJobTicketSchema

    public XMPSchemaBasicJobTicket addBasicJobTicketSchema()

  Add a new Job Ticket schema.

  Returns:
    The newly added schema.

### addDynamicMediaSchema

    public XMPSchemaDynamicMedia addDynamicMediaSchema()

  Add a new Dynamic Media schema.

  Returns:
    The newly added schema.

### addPagedTextSchema

    public XMPSchemaPagedText addPagedTextSchema()

  Add a new Paged Text schema.

  Returns:
    The newly added schema.

### addSchema

    public void addSchema(XMPSchema schema)

  Add a custom schema to the root rdf. The schema has to have been created as a child of this XMPMetadata.

  Parameters:
    `schema` - The schema to add.

### save

    public void save(java.lang.String file)
              throws java.lang.Exception

  Save the XMP document to a file.

  Parameters:
    `file` - The file to save the XMP document to.
  Throws:
    `java.lang.Exception` - If there is an error while writing to the stream.

### save

    public void save(java.io.OutputStream outStream)
              throws javax.xml.transform.TransformerException

  Save the XMP document to a stream.

  Parameters:
    `outStream` - The stream to save the XMP document to.
  Throws:
    `javax.xml.transform.TransformerException` - If there is an error while writing to the stream.

### asByteArray

    public byte[] asByteArray()
                       throws java.lang.Exception

  Get the XML document as a byte array.

  Returns:
    The metadata as an XML byte stream.
  Throws:
    `java.lang.Exception` - If there is an error creating the stream.

### getXMPDocument

    public org.w3c.dom.Document getXMPDocument()

  Get the XML document from this object.

  Returns:
    This object as an XML document.

### basicAddSchema

    protected XMPSchema basicAddSchema(XMPSchema schema)

  Generic add schema method.

  Parameters:
    `schema` - The schema to add.
  Returns:
    The newly added schema.

### addPDFSchema

    public XMPSchemaPDF addPDFSchema()

  Create and add a new PDF Schema to this metadata. Typically a XMP document will only have one PDF schema (but multiple are supported) so it is recommended that you first check the existence of a PDF scheme by using getPDFSchema()

  Returns:
    A new blank PDF schema that is now part of the metadata.

### addDublinCoreSchema

    public XMPSchemaDublinCore addDublinCoreSchema()

  Create and add a new Dublin Core Schema to this metadata. Typically a XMP document will only have one schema for each type (but multiple are supported) so it is recommended that you first check the existence of a this scheme by using getDublinCoreSchema()

  Returns:
    A new blank PDF schema that is now part of the metadata.

### addBasicSchema

    public XMPSchemaBasic addBasicSchema()

  Create and add a new Basic Schema to this metadata. Typically a XMP document will only have one schema for each type (but multiple are supported) so it is recommended that you first check the existence of a this scheme by using getDublinCoreSchema()

  Returns:
    A new blank PDF schema that is now part of the metadata.

### addIptc4xmpCoreSchema

    public XMPSchemaIptc4xmpCore addIptc4xmpCoreSchema()

  Create and add a new IPTC schema to this metadata.

  Returns:
    A new blank IPTC schema that is now part of the metadata.

### addPhotoshopSchema

    public XMPSchemaPhotoshop addPhotoshopSchema()

  Create and add a new Photoshop schema to this metadata.

  Returns:
    A new blank Photoshop schema that is now part of the metadata.

### setEncoding

    public void setEncoding(java.lang.String xmlEncoding)

  The encoding used to write the XML. Default value:UTF-8
  See the ENCODING_XXX constants

  Parameters:
    `xmlEncoding` - The encoding to write the XML as.

### getEncoding

    public java.lang.String getEncoding()

  Get the current encoding that will be used to write the XML.

  Returns:
    The current encoding to write the XML to.

### load

    public static XMPMetadata load(java.lang.String file)
                            throws java.io.IOException

  Load metadata from the filesystem.

  Parameters:
    `file` - The file to load the metadata from.
  Returns:
    The loaded XMP document.
  Throws:
    `java.io.IOException` - If there is an error reading the data.

### load

    public static XMPMetadata load(org.xml.sax.InputSource is)
                            throws java.io.IOException

  Load a schema from an input source.

  Parameters:
    `is` - The input source to load the schema from.
  Returns:
    The loaded/parsed schema.
  Throws:
    `java.io.IOException` - If there was an error while loading the schema.

### load

    public static XMPMetadata load(java.io.InputStream is)
                            throws java.io.IOException

  Load metadata from the filesystem.

  Parameters:
    `is` - The stream to load the data from.
  Returns:
    The loaded XMP document.
  Throws:
    `java.io.IOException` - If there is an error reading the data.

### main

    public static void main(java.lang.String[] args)
                     throws java.lang.Exception

  Test main program.

  Parameters:
    `args` - The command line arguments.
  Throws:
    `java.lang.Exception` - If there is an error.

### getSchemas

    public java.util.List getSchemas()
                              throws java.io.IOException

  This will get a list of XMPSchema(or subclass) objects.

  Returns:
    A non null read-only list of schemas that are part of this metadata.
  Throws:
    `java.io.IOException` - If there is an error creating a specific schema.

### getSchemasByNamespaceURI

    public java.util.List getSchemasByNamespaceURI(java.lang.String namespaceURI)
                                            throws java.io.IOException

  Will return all schemas that fit the given namespaceURI. Which is only done by using the namespace mapping (nsMapping) and not by actually checking the xmlns property.

  Parameters:
    `namespaceURI` - The namespaceURI to filter for.
  Returns:
    A list containing the found schemas or an empty list if non are found or the namespaceURI could not be found in the namespace mapping.
  Throws:
    `java.io.IOException` - If an operation on the document fails.

### hasUnknownSchema

    public boolean hasUnknownSchema()
                             throws java.io.IOException

  This will return true if the XMP contains an unknown schema.

  Returns:
    True if an unknown schema is found, false otherwise
  Throws:
    `java.io.IOException` - If there is an error

### getSchemaByClass

    public XMPSchema getSchemaByClass(java.lang.Class targetSchema)
                               throws java.io.IOException

  Tries to retrieve a schema from this by classname.

  Parameters:
    `targetSchema` - Class for targetSchema.
  Returns:
    XMPSchema or null if no target is found.
  Throws:
    `java.io.IOException` - if there was an error creating the schemas of this.

### merge

    public void merge(XMPMetadata metadata)
               throws java.io.IOException

  Merge this metadata with the given metadata object.

  Parameters:
    `metadata` - The metadata to merge with this document.
  Throws:
    `java.io.IOException` - If there is an error merging the data.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD