XMPMeta
Date: 2012-05-15

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

## com.adobe.xmp
Interface XMPMeta

All Superinterfaces:
  java.lang.Cloneable

    public interface XMPMeta

extends java.lang.Cloneable

This class represents the set of XMP metadata as a DOM representation. It has methods to read and modify all kinds of properties, create an iterator over all properties and serialize the metadata to a String, byte-array or `OutputStream`.

Since:
  20.01.2006

Method Summary
`void` | `appendArrayItem(java.lang.String schemaNS, java.lang.String arrayName, PropertyOptions arrayOptions, java.lang.String itemValue, PropertyOptions itemOptions)` Simplifies the construction of an array by not requiring that you pre-create an empty array.
`void` | `appendArrayItem(java.lang.String schemaNS, java.lang.String arrayName, java.lang.String itemValue)`
`java.lang.Object` | `clone()` Clones the complete metadata tree.
`int` | `countArrayItems(java.lang.String schemaNS, java.lang.String arrayName)` Returns the number of items in the array.
`void` | `deleteArrayItem(java.lang.String schemaNS, java.lang.String arrayName, int itemIndex)` Deletes the given XMP subtree rooted at the given array item.
`void` | `deleteProperty(java.lang.String schemaNS, java.lang.String propName)` Deletes the given XMP subtree rooted at the given property.
`void` | `deleteQualifier(java.lang.String schemaNS, java.lang.String propName, java.lang.String qualNS, java.lang.String qualName)` Deletes the given XMP subtree rooted at the given qualifier.
`void` | `deleteStructField(java.lang.String schemaNS, java.lang.String structName, java.lang.String fieldNS, java.lang.String fieldName)` Deletes the given XMP subtree rooted at the given struct field.
`boolean` | `doesArrayItemExist(java.lang.String schemaNS, java.lang.String arrayName, int itemIndex)` Tells if the array item exists.
`boolean` | `doesPropertyExist(java.lang.String schemaNS, java.lang.String propName)` Returns whether the property exists.
`boolean` | `doesQualifierExist(java.lang.String schemaNS, java.lang.String propName, java.lang.String qualNS, java.lang.String qualName)` DoesQualifierExist tells if the qualifier exists.
`boolean` | `doesStructFieldExist(java.lang.String schemaNS, java.lang.String structName, java.lang.String fieldNS, java.lang.String fieldName)` DoesStructFieldExist tells if the struct field exists.
`java.lang.String` | `dumpObject()` Renders this node and the tree unter this node in a human readable form.
`XMPProperty` | `getArrayItem(java.lang.String schemaNS, java.lang.String arrayName, int itemIndex)` Provides access to items within an array.
`XMPProperty` | `getLocalizedText(java.lang.String schemaNS, java.lang.String altTextName, java.lang.String genericLang, java.lang.String specificLang)` These functions provide convenient support for localized text properties, including a number of special and obscure aspects.
`java.lang.String` | `getObjectName()` This correlates to the about-attribute, returns the empty String if no name is set.
`java.lang.String` | `getPacketHeader()`
`XMPProperty` | `getProperty(java.lang.String schemaNS, java.lang.String propName)` The property value getter-methods all take a property specification: the first two parameters are always the top level namespace URI (the "schema" namespace) and the basic name of the property being referenced.
`byte[]` | `getPropertyBase64(java.lang.String schemaNS, java.lang.String propName)` Convenience method to retrieve the literal value of a property.
`java.lang.Boolean` | `getPropertyBoolean(java.lang.String schemaNS, java.lang.String propName)` These are very similar to `getProperty()` and `SetProperty()` above, but the value is returned or provided in a literal form instead of as a UTF-8 string.
`java.util.Calendar` | `getPropertyCalendar(java.lang.String schemaNS, java.lang.String propName)` Convenience method to retrieve the literal value of a property.
`XMPDateTime` | `getPropertyDate(java.lang.String schemaNS, java.lang.String propName)` Convenience method to retrieve the literal value of a property.
`java.lang.Double` | `getPropertyDouble(java.lang.String schemaNS, java.lang.String propName)` Convenience method to retrieve the literal value of a property.
`java.lang.Integer` | `getPropertyInteger(java.lang.String schemaNS, java.lang.String propName)` Convenience method to retrieve the literal value of a property.
`java.lang.Long` | `getPropertyLong(java.lang.String schemaNS, java.lang.String propName)` Convenience method to retrieve the literal value of a property.
`java.lang.String` | `getPropertyString(java.lang.String schemaNS, java.lang.String propName)` Convenience method to retrieve the literal value of a property.
`XMPProperty` | `getQualifier(java.lang.String schemaNS, java.lang.String propName, java.lang.String qualNS, java.lang.String qualName)` Provides access to a qualifier attached to a property.
`XMPProperty` | `getStructField(java.lang.String schemaNS, java.lang.String structName, java.lang.String fieldNS, java.lang.String fieldName)` Provides access to fields within a nested structure.
`void` | `insertArrayItem(java.lang.String schemaNS, java.lang.String arrayName, int itemIndex, java.lang.String itemValue)`
`void` | `insertArrayItem(java.lang.String schemaNS, java.lang.String arrayName, int itemIndex, java.lang.String itemValue, PropertyOptions options)` Inserts an item into an array previous to the given index.
`XMPIterator` | `iterator()` Constructs an iterator for the properties within this XMP object.
`XMPIterator` | `iterator(IteratorOptions options)` Constructs an iterator for the properties within this XMP object using some options.
`XMPIterator` | `iterator(java.lang.String schemaNS, java.lang.String propName, IteratorOptions options)` Construct an iterator for the properties within an XMP object.
`void` | `normalize(ParseOptions options)` Perform the normalization as a separate parsing step.
`void` | `setArrayItem(java.lang.String schemaNS, java.lang.String arrayName, int itemIndex, java.lang.String itemValue)`
`void` | `setArrayItem(java.lang.String schemaNS, java.lang.String arrayName, int itemIndex, java.lang.String itemValue, PropertyOptions options)` Replaces an item within an array.
`void` | `setLocalizedText(java.lang.String schemaNS, java.lang.String altTextName, java.lang.String genericLang, java.lang.String specificLang, java.lang.String itemValue)`
`void` | `setLocalizedText(java.lang.String schemaNS, java.lang.String altTextName, java.lang.String genericLang, java.lang.String specificLang, java.lang.String itemValue, PropertyOptions options)` Modifies the value of a selected item in an alt-text array.
`void` | `setObjectName(java.lang.String name)`
`void` | `setProperty(java.lang.String schemaNS, java.lang.String propName, java.lang.Object propValue)`
`void` | `setProperty(java.lang.String schemaNS, java.lang.String propName, java.lang.Object propValue, PropertyOptions options)` The property value `setters` all take a property specification, their differences are in the form of this.
`void` | `setPropertyBase64(java.lang.String schemaNS, java.lang.String propName, byte[] propValue)`
`void` | `setPropertyBase64(java.lang.String schemaNS, java.lang.String propName, byte[] propValue, PropertyOptions options)` Convenience method to set a property from a binary `byte[]`-array, which is serialized as base64-string.
`void` | `setPropertyBoolean(java.lang.String schemaNS, java.lang.String propName, boolean propValue)`
`void` | `setPropertyBoolean(java.lang.String schemaNS, java.lang.String propName, boolean propValue, PropertyOptions options)` Convenience method to set a property to a literal `boolean` value.
`void` | `setPropertyCalendar(java.lang.String schemaNS, java.lang.String propName, java.util.Calendar propValue)`
`void` | `setPropertyCalendar(java.lang.String schemaNS, java.lang.String propName, java.util.Calendar propValue, PropertyOptions options)` Convenience method to set a property with a Java Calendar-object, which is serialized to an ISO8601 date.
`void` | `setPropertyDate(java.lang.String schemaNS, java.lang.String propName, XMPDateTime propValue)`
`void` | `setPropertyDate(java.lang.String schemaNS, java.lang.String propName, XMPDateTime propValue, PropertyOptions options)` Convenience method to set a property with an XMPDateTime-object, which is serialized to an ISO8601 date.
`void` | `setPropertyDouble(java.lang.String schemaNS, java.lang.String propName, double propValue)`
`void` | `setPropertyDouble(java.lang.String schemaNS, java.lang.String propName, double propValue, PropertyOptions options)` Convenience method to set a property to a literal `double` value.
`void` | `setPropertyInteger(java.lang.String schemaNS, java.lang.String propName, int propValue)`
`void` | `setPropertyInteger(java.lang.String schemaNS, java.lang.String propName, int propValue, PropertyOptions options)` Convenience method to set a property to a literal `int` value.
`void` | `setPropertyLong(java.lang.String schemaNS, java.lang.String propName, long propValue)`
`void` | `setPropertyLong(java.lang.String schemaNS, java.lang.String propName, long propValue, PropertyOptions options)` Convenience method to set a property to a literal `long` value.
`void` | `setQualifier(java.lang.String schemaNS, java.lang.String propName, java.lang.String qualNS, java.lang.String qualName, java.lang.String qualValue)`
`void` | `setQualifier(java.lang.String schemaNS, java.lang.String propName, java.lang.String qualNS, java.lang.String qualName, java.lang.String qualValue, PropertyOptions options)` Provides access to a qualifier attached to a property.
`void` | `setStructField(java.lang.String schemaNS, java.lang.String structName, java.lang.String fieldNS, java.lang.String fieldName, java.lang.String fieldValue)`
`void` | `setStructField(java.lang.String schemaNS, java.lang.String structName, java.lang.String fieldNS, java.lang.String fieldName, java.lang.String fieldValue, PropertyOptions options)` Provides access to fields within a nested structure.
`void` | `sort()` Sorts the complete datamodel according to the following rules: Schema nodes are sorted by prefix.

Method Detail

### getProperty

    XMPProperty getProperty(java.lang.String schemaNS,
                            java.lang.String propName)
                            throws XMPException

  The property value getter-methods all take a property specification: the first two parameters are always the top level namespace URI (the "schema" namespace) and the basic name of the property being referenced. See the introductory discussion of path expression usage for more information.

  All of the functions return an object inherited from `PropertyBase` or `null` if the property does not exists. The result object contains the value of the property and option flags describing the property. Arrays and the non-leaf levels of nodes do not have values.

  See `PropertyOptions` for detailed information about the options.

  This is the simplest property getter, mainly for top level simple properties or after using the path composition functions in XMPPathFactory.

  Parameters:
    `schemaNS` - The namespace URI for the property. May be `null` or the empty string if the first component of the propName path contains a namespace prefix. The URI must be for a registered namespace.
    `propName` - The name of the property. May be a general path expression, must not be `null` or the empty string. Using a namespace prefix on the first component is optional. If present without a schemaNS value then the prefix specifies the namespace. The prefix must be for a registered namespace. If both a schemaNS URI and propName prefix are present, they must be corresponding parts of a registered namespace.
  Returns:
    Returns a `XMPProperty` containing the value and the options or `null` if the property does not exist.
  Throws:
    `XMPException` - Wraps all errors and exceptions that may occur.

### getArrayItem

    XMPProperty getArrayItem(java.lang.String schemaNS,
                             java.lang.String arrayName,
                             int itemIndex)
                             throws XMPException

  Provides access to items within an array. The index is passed as an integer, you need not worry about the path string syntax for array items, convert a loop index to a string, etc.

  Parameters:
    `schemaNS` - The namespace URI for the array. Has the same usage as in getProperty.
    `arrayName` - The name of the array. May be a general path expression, must not be `null` or the empty string. Has the same namespace prefix usage as propName in `getProperty()`.
    `itemIndex` - The index of the desired item. Arrays in XMP are indexed from 1. The constant `XMPConst.ARRAY_LAST_ITEM` always refers to the last existing array item.
  Returns:
    Returns a `XMPProperty` containing the value and the options or `null` if the property does not exist.
  Throws:
    `XMPException` - Wraps all errors and exceptions that may occur.

### countArrayItems

    int countArrayItems(java.lang.String schemaNS,
                        java.lang.String arrayName)
                        throws XMPException

  Returns the number of items in the array.

  Parameters:
    `schemaNS` - The namespace URI for the array. Has the same usage as in getProperty.
    `arrayName` - The name of the array. May be a general path expression, must not be `null` or the empty string. Has the same namespace prefix usage as propName in `getProperty()`.
  Returns:
    Returns the number of items in the array.
  Throws:
    `XMPException` - Wraps all errors and exceptions that may occur.

### getStructField

    XMPProperty getStructField(java.lang.String schemaNS,
                               java.lang.String structName,
                               java.lang.String fieldNS,
                               java.lang.String fieldName)
                               throws XMPException

  Provides access to fields within a nested structure. The namespace for the field is passed as a URI, you need not worry about the path string syntax.

  The names of fields should be XML qualified names, that is within an XML namespace. The path syntax for a qualified name uses the namespace prefix. This is unreliable since the prefix is never guaranteed. The URI is the formal name, the prefix is just a local shorthand in a given sequence of XML text.

  Parameters:
    `schemaNS` - The namespace URI for the struct. Has the same usage as in getProperty.
    `structName` - The name of the struct. May be a general path expression, must not be `null` or the empty string. Has the same namespace prefix usage as propName in `getProperty()`.
    `fieldNS` - The namespace URI for the field. Has the same URI and prefix usage as the schemaNS parameter.
    `fieldName` - The name of the field. Must be a single XML name, must not be `null` or the empty string. Has the same namespace prefix usage as the structName parameter.
  Returns:
    Returns a `XMPProperty` containing the value and the options or `null` if the property does not exist. Arrays and non-leaf levels of structs do not have values.
  Throws:
    `XMPException` - Wraps all errors and exceptions that may occur.

### getQualifier

    XMPProperty getQualifier(java.lang.String schemaNS,
                             java.lang.String propName,
                             java.lang.String qualNS,
                             java.lang.String qualName)
                             throws XMPException

  Provides access to a qualifier attached to a property. The namespace for the qualifier is passed as a URI, you need not worry about the path string syntax. In many regards qualifiers are like struct fields. See the introductory discussion of qualified properties for more information.

  The names of qualifiers should be XML qualified names, that is within an XML namespace. The path syntax for a qualified name uses the namespace prefix. This is unreliable since the prefix is never guaranteed. The URI is the formal name, the prefix is just a local shorthand in a given sequence of XML text.

  Note: Qualifiers are only supported for simple leaf properties at this time.

  Parameters:
    `schemaNS` - The namespace URI for the struct. Has the same usage as in getProperty.
    `propName` - The name of the property to which the qualifier is attached. May be a general path expression, must not be `null` or the empty string. Has the same namespace prefix usage as in `getProperty()`.
    `qualNS` - The namespace URI for the qualifier. Has the same URI and prefix usage as the schemaNS parameter.
    `qualName` - The name of the qualifier. Must be a single XML name, must not be `null` or the empty string. Has the same namespace prefix usage as the propName parameter.
  Returns:
    Returns a `XMPProperty` containing the value and the options of the qualifier or `null` if the property does not exist. The name of the qualifier must be a single XML name, must not be `null` or the empty string. Has the same namespace prefix usage as the propName parameter.

    The value of the qualifier is only set if it has one (Arrays and non-leaf levels of structs do not have values).

  Throws:
    `XMPException` - Wraps all errors and exceptions that may occur.

### setProperty

    void setProperty(java.lang.String schemaNS,
                     java.lang.String propName,
                     java.lang.Object propValue,
                     PropertyOptions options)
                     throws XMPException

  The property value `setters` all take a property specification, their differences are in the form of this. The first two parameters are always the top level namespace URI (the `schema` namespace) and the basic name of the property being referenced. See the introductory discussion of path expression usage for more information.

  All of the functions take a string value for the property and option flags describing the property. The value must be Unicode in UTF-8 encoding. Arrays and non-leaf levels of structs do not have values. Empty arrays and structs may be created using appropriate option flags. All levels of structs that is assigned implicitly are created if necessary. appendArayItem implicitly creates the named array if necessary.

  See `PropertyOptions` for detailed information about the options.

  This is the simplest property setter, mainly for top level simple properties or after using the path composition functions in `XMPPathFactory`.

  Parameters:
    `schemaNS` - The namespace URI for the property. Has the same usage as in getProperty.
    `propName` - The name of the property. Has the same usage as in `getProperty()`.
    `propValue` - the value for the property (only leaf properties have a value). Arrays and non-leaf levels of structs do not have values. Must be `null` if the value is not relevant.
    The value is automatically detected: Boolean, Integer, Long, Double, XMPDateTime and byte[] are handled, on all other `toString()` is called.
    `options` - Option flags describing the property. See the earlier description.
  Throws:
    `XMPException` - Wraps all errors and exceptions that may occur.

### setProperty

    void setProperty(java.lang.String schemaNS,
                     java.lang.String propName,
                     java.lang.Object propValue)
                     throws XMPException

  Parameters:
    `schemaNS` - The namespace URI
    `propName` - The name of the property
    `propValue` - the value for the property
  Throws:
    `XMPException` - Wraps all errors and exceptions
  See Also:
    `setProperty(String, String, Object, PropertyOptions)`

### setArrayItem

    void setArrayItem(java.lang.String schemaNS,
                      java.lang.String arrayName,
                      int itemIndex,
                      java.lang.String itemValue,
                      PropertyOptions options)
                      throws XMPException

  Replaces an item within an array. The index is passed as an integer, you need not worry about the path string syntax for array items, convert a loop index to a string, etc. The array passed must already exist. In normal usage the selected array item is modified. A new item is automatically appended if the index is the array size plus 1.

  Parameters:
    `schemaNS` - The namespace URI for the array. Has the same usage as in getProperty.
    `arrayName` - The name of the array. May be a general path expression, must not be `null` or the empty string. Has the same namespace prefix usage as propName in getProperty.
    `itemIndex` - The index of the desired item. Arrays in XMP are indexed from 1. To address the last existing item, use `countArrayItems(String, String)` to find out the length of the array.
    `itemValue` - the new value of the array item. Has the same usage as propValue in `setProperty()`.
    `options` - the set options for the item.
  Throws:
    `XMPException` - Wraps all errors and exceptions that may occur.

### setArrayItem

    void setArrayItem(java.lang.String schemaNS,
                      java.lang.String arrayName,
                      int itemIndex,
                      java.lang.String itemValue)
                      throws XMPException

  Parameters:
    `schemaNS` - The namespace URI
    `arrayName` - The name of the array
    `itemIndex` - The index to insert the new item
    `itemValue` - the new value of the array item
  Throws:
    `XMPException` - Wraps all errors and exceptions
  See Also:
    `setArrayItem(String, String, int, String, PropertyOptions)`

### insertArrayItem

    void insertArrayItem(java.lang.String schemaNS,
                         java.lang.String arrayName,
                         int itemIndex,
                         java.lang.String itemValue,
                         PropertyOptions options)
                         throws XMPException

  Inserts an item into an array previous to the given index. The index is passed as an integer, you need not worry about the path string syntax for array items, convert a loop index to a string, etc. The array passed must already exist. In normal usage the selected array item is modified. A new item is automatically appended if the index is the array size plus 1.

  Parameters:
    `schemaNS` - The namespace URI for the array. Has the same usage as in getProperty.
    `arrayName` - The name of the array. May be a general path expression, must not be `null` or the empty string. Has the same namespace prefix usage as propName in getProperty.
    `itemIndex` - The index to insert the new item. Arrays in XMP are indexed from 1. Use `XMPConst.ARRAY_LAST_ITEM` to append items.
    `itemValue` - the new value of the array item. Has the same usage as propValue in `setProperty()`.
    `options` - the set options that decide about the kind of the node.
  Throws:
    `XMPException` - Wraps all errors and exceptions that may occur.

### insertArrayItem

    void insertArrayItem(java.lang.String schemaNS,
                         java.lang.String arrayName,
                         int itemIndex,
                         java.lang.String itemValue)
                         throws XMPException

  Parameters:
    `schemaNS` - The namespace URI for the array
    `arrayName` - The name of the array
    `itemIndex` - The index to insert the new item
    `itemValue` - the value of the array item
  Throws:
    `XMPException` - Wraps all errors and exceptions
  See Also:
    `insertArrayItem(String, String, int, String, PropertyOptions)`

### appendArrayItem

    void appendArrayItem(java.lang.String schemaNS,
                         java.lang.String arrayName,
                         PropertyOptions arrayOptions,
                         java.lang.String itemValue,
                         PropertyOptions itemOptions)
                         throws XMPException

  Simplifies the construction of an array by not requiring that you pre-create an empty array. The array that is assigned is created automatically if it does not yet exist. Each call to appendArrayItem() appends an item to the array. The corresponding parameters have the same use as setArrayItem(). The arrayOptions parameter is used to specify what kind of array. If the array exists, it must have the specified form.

  Parameters:
    `schemaNS` - The namespace URI for the array. Has the same usage as in getProperty.
    `arrayName` - The name of the array. May be a general path expression, must not be null or the empty string. Has the same namespace prefix usage as propPath in getProperty.
    `arrayOptions` - Option flags describing the array form. The only valid options are
    - `PropertyOptions.ARRAY`,
    - `PropertyOptions.ARRAY_ORDERED`,
    - `PropertyOptions.ARRAY_ALTERNATE` or
    - `PropertyOptions.ARRAY_ALT_TEXT`.
    Note: the array options only need to be provided if the array is not already existing, otherwise you can set them to `null` or use `appendArrayItem(String, String, String)`.
    `itemValue` - the value of the array item. Has the same usage as propValue in getProperty.
    `itemOptions` - Option flags describing the item to append (`PropertyOptions`)
  Throws:
    `XMPException` - Wraps all errors and exceptions that may occur.

### appendArrayItem

    void appendArrayItem(java.lang.String schemaNS,
                         java.lang.String arrayName,
                         java.lang.String itemValue)
                         throws XMPException

  Parameters:
    `schemaNS` - The namespace URI for the array
    `arrayName` - The name of the array
    `itemValue` - the value of the array item
  Throws:
    `XMPException` - Wraps all errors and exceptions
  See Also:
    `appendArrayItem(String, String, PropertyOptions, String, PropertyOptions)`

### setStructField

    void setStructField(java.lang.String schemaNS,
                        java.lang.String structName,
                        java.lang.String fieldNS,
                        java.lang.String fieldName,
                        java.lang.String fieldValue,
                        PropertyOptions options)
                        throws XMPException

  Provides access to fields within a nested structure. The namespace for the field is passed as a URI, you need not worry about the path string syntax. The names of fields should be XML qualified names, that is within an XML namespace. The path syntax for a qualified name uses the namespace prefix, which is unreliable because the prefix is never guaranteed. The URI is the formal name, the prefix is just a local shorthand in a given sequence of XML text.

  Parameters:
    `schemaNS` - The namespace URI for the struct. Has the same usage as in getProperty.
    `structName` - The name of the struct. May be a general path expression, must not be null or the empty string. Has the same namespace prefix usage as propName in getProperty.
    `fieldNS` - The namespace URI for the field. Has the same URI and prefix usage as the schemaNS parameter.
    `fieldName` - The name of the field. Must be a single XML name, must not be null or the empty string. Has the same namespace prefix usage as the structName parameter.
    `fieldValue` - the value of thefield, if the field has a value. Has the same usage as propValue in getProperty.
    `options` - Option flags describing the field. See the earlier description.
  Throws:
    `XMPException` - Wraps all errors and exceptions that may occur.

### setStructField

    void setStructField(java.lang.String schemaNS,
                        java.lang.String structName,
                        java.lang.String fieldNS,
                        java.lang.String fieldName,
                        java.lang.String fieldValue)
                        throws XMPException

  Parameters:
    `schemaNS` - The namespace URI for the struct
    `structName` - The name of the struct
    `fieldNS` - The namespace URI for the field
    `fieldName` - The name of the field
    `fieldValue` - the value of the field
  Throws:
    `XMPException` - Wraps all errors and exceptions
  See Also:
    `setStructField(String, String, String, String, String, PropertyOptions)`

### setQualifier

    void setQualifier(java.lang.String schemaNS,
                      java.lang.String propName,
                      java.lang.String qualNS,
                      java.lang.String qualName,
                      java.lang.String qualValue,
                      PropertyOptions options)
                      throws XMPException

  Provides access to a qualifier attached to a property. The namespace for the qualifier is passed as a URI, you need not worry about the path string syntax. In many regards qualifiers are like struct fields. See the introductory discussion of qualified properties for more information. The names of qualifiers should be XML qualified names, that is within an XML namespace. The path syntax for a qualified name uses the namespace prefix, which is unreliable because the prefix is never guaranteed. The URI is the formal name, the prefix is just a local shorthand in a given sequence of XML text. The property the qualifier will be attached has to exist.

  Parameters:
    `schemaNS` - The namespace URI for the struct. Has the same usage as in getProperty.
    `propName` - The name of the property to which the qualifier is attached. Has the same usage as in getProperty.
    `qualNS` - The namespace URI for the qualifier. Has the same URI and prefix usage as the schemaNS parameter.
    `qualName` - The name of the qualifier. Must be a single XML name, must not be `null` or the empty string. Has the same namespace prefix usage as the propName parameter.
    `qualValue` - A pointer to the `null` terminated UTF-8 string that is the value of the qualifier, if the qualifier has a value. Has the same usage as propValue in getProperty.
    `options` - Option flags describing the qualifier. See the earlier description.
  Throws:
    `XMPException` - Wraps all errors and exceptions that may occur.

### setQualifier

    void setQualifier(java.lang.String schemaNS,
                      java.lang.String propName,
                      java.lang.String qualNS,
                      java.lang.String qualName,
                      java.lang.String qualValue)
                      throws XMPException

  Parameters:
    `schemaNS` - The namespace URI for the struct
    `propName` - The name of the property to which the qualifier is attached
    `qualNS` - The namespace URI for the qualifier
    `qualName` - The name of the qualifier
    `qualValue` - the value of the qualifier
  Throws:
    `XMPException` - Wraps all errors and exceptions
  See Also:
    `setQualifier(String, String, String, String, String, PropertyOptions)`

### deleteProperty

    void deleteProperty(java.lang.String schemaNS,
                        java.lang.String propName)

  Deletes the given XMP subtree rooted at the given property. It is not an error if the property does not exist.

  Parameters:
    `schemaNS` - The namespace URI for the property. Has the same usage as in `getProperty()`.
    `propName` - The name of the property. Has the same usage as in getProperty.

### deleteArrayItem

    void deleteArrayItem(java.lang.String schemaNS,
                         java.lang.String arrayName,
                         int itemIndex)

  Deletes the given XMP subtree rooted at the given array item. It is not an error if the array item does not exist.

  Parameters:
    `schemaNS` - The namespace URI for the array. Has the same usage as in getProperty.
    `arrayName` - The name of the array. May be a general path expression, must not be `null` or the empty string. Has the same namespace prefix usage as propName in `getProperty()`.
    `itemIndex` - The index of the desired item. Arrays in XMP are indexed from 1. The constant `XMPConst.ARRAY_LAST_ITEM` always refers to the last existing array item.

### deleteStructField

    void deleteStructField(java.lang.String schemaNS,
                           java.lang.String structName,
                           java.lang.String fieldNS,
                           java.lang.String fieldName)

  Deletes the given XMP subtree rooted at the given struct field. It is not an error if the field does not exist.

  Parameters:
    `schemaNS` - The namespace URI for the struct. Has the same usage as in `getProperty()`.
    `structName` - The name of the struct. May be a general path expression, must not be `null` or the empty string. Has the same namespace prefix usage as propName in getProperty.
    `fieldNS` - The namespace URI for the field. Has the same URI and prefix usage as the schemaNS parameter.
    `fieldName` - The name of the field. Must be a single XML name, must not be `null` or the empty string. Has the same namespace prefix usage as the structName parameter.

### deleteQualifier

    void deleteQualifier(java.lang.String schemaNS,
                         java.lang.String propName,
                         java.lang.String qualNS,
                         java.lang.String qualName)

  Deletes the given XMP subtree rooted at the given qualifier. It is not an error if the qualifier does not exist.

  Parameters:
    `schemaNS` - The namespace URI for the struct. Has the same usage as in `getProperty()`.
    `propName` - The name of the property to which the qualifier is attached. Has the same usage as in getProperty.
    `qualNS` - The namespace URI for the qualifier. Has the same URI and prefix usage as the schemaNS parameter.
    `qualName` - The name of the qualifier. Must be a single XML name, must not be `null` or the empty string. Has the same namespace prefix usage as the propName parameter.

### doesPropertyExist

    boolean doesPropertyExist(java.lang.String schemaNS,
                              java.lang.String propName)

  Returns whether the property exists.

  Parameters:
    `schemaNS` - The namespace URI for the property. Has the same usage as in `getProperty()`.
    `propName` - The name of the property. Has the same usage as in `getProperty()`.
  Returns:
    Returns true if the property exists.

### doesArrayItemExist

    boolean doesArrayItemExist(java.lang.String schemaNS,
                               java.lang.String arrayName,
                               int itemIndex)

  Tells if the array item exists.

  Parameters:
    `schemaNS` - The namespace URI for the array. Has the same usage as in `getProperty()`.
    `arrayName` - The name of the array. May be a general path expression, must not be `null` or the empty string. Has the same namespace prefix usage as propName in `getProperty()`.
    `itemIndex` - The index of the desired item. Arrays in XMP are indexed from 1. The constant `XMPConst.ARRAY_LAST_ITEM` always refers to the last existing array item.
  Returns:
    Returns `true` if the array exists, `false` otherwise.

### doesStructFieldExist

    boolean doesStructFieldExist(java.lang.String schemaNS,
                                 java.lang.String structName,
                                 java.lang.String fieldNS,
                                 java.lang.String fieldName)

  DoesStructFieldExist tells if the struct field exists.

  Parameters:
    `schemaNS` - The namespace URI for the struct. Has the same usage as in `getProperty()`.
    `structName` - The name of the struct. May be a general path expression, must not be `null` or the empty string. Has the same namespace prefix usage as propName in `getProperty()`.
    `fieldNS` - The namespace URI for the field. Has the same URI and prefix usage as the schemaNS parameter.
    `fieldName` - The name of the field. Must be a single XML name, must not be `null` or the empty string. Has the same namespace prefix usage as the structName parameter.
  Returns:
    Returns true if the field exists.

### doesQualifierExist

    boolean doesQualifierExist(java.lang.String schemaNS,
                               java.lang.String propName,
                               java.lang.String qualNS,
                               java.lang.String qualName)

  DoesQualifierExist tells if the qualifier exists.

  Parameters:
    `schemaNS` - The namespace URI for the struct. Has the same usage as in `getProperty()`.
    `propName` - The name of the property to which the qualifier is attached. Has the same usage as in `getProperty()`.
    `qualNS` - The namespace URI for the qualifier. Has the same URI and prefix usage as the schemaNS parameter.
    `qualName` - The name of the qualifier. Must be a single XML name, must not be `null` or the empty string. Has the same namespace prefix usage as the propName parameter.
  Returns:
    Returns true if the qualifier exists.

### getLocalizedText

    XMPProperty getLocalizedText(java.lang.String schemaNS,
                                 java.lang.String altTextName,
                                 java.lang.String genericLang,
                                 java.lang.String specificLang)
                                 throws XMPException

  These functions provide convenient support for localized text properties, including a number of special and obscure aspects. Localized text properties are stored in alt-text arrays. They allow multiple concurrent localizations of a property value, for example a document title or copyright in several languages. The most important aspect of these functions is that they select an appropriate array item based on one or two RFC 3066 language tags. One of these languages, the "specific" language, is preferred and selected if there is an exact match. For many languages it is also possible to define a "generic" language that may be used if there is no specific language match. The generic language must be a valid RFC 3066 primary subtag, or the empty string. For example, a specific language of "en-US" should be used in the US, and a specific language of "en-UK" should be used in England. It is also appropriate to use "en" as the generic language in each case. If a US document goes to England, the "en-US" title is selected by using the "en" generic language and the "en-UK" specific language. It is considered poor practice, but allowed, to pass a specific language that is just an RFC 3066 primary tag. For example "en" is not a good specific language, it should only be used as a generic language. Passing "i" or "x" as the generic language is also considered poor practice but allowed. Advice from the W3C about the use of RFC 3066 language tags can be found at: http://www.w3.org/International/articles/language-tags/

  Note: RFC 3066 language tags must be treated in a case insensitive manner. The XMP Toolkit does this by normalizing their capitalization:

  - The primary subtag is lower case, the suggested practice of ISO 639.
  - All 2 letter secondary subtags are upper case, the suggested practice of ISO 3166.
  - All other subtags are lower case. The XMP specification defines an artificial language,
  - "x-default", that is used to explicitly denote a default item in an alt-text array.
  The XMP toolkit normalizes alt-text arrays such that the x-default item is the first item. The SetLocalizedText function has several special features related to the x-default item, see its description for details. The selection of the array item is the same for GetLocalizedText and SetLocalizedText:
  - Look for an exact match with the specific language.
  - If a generic language is given, look for a partial match.
  - Look for an x-default item.
  - Choose the first item.
  A partial match with the generic language is where the start of the item's language matches the generic string and the next character is '-'. An exact match is also recognized as a degenerate case. It is fine to pass x-default as the specific language. In this case, selection of an x-default item is an exact match by the first rule, not a selection by the 3rd rule. The last 2 rules are fallbacks used when the specific and generic languages fail to produce a match. `getLocalizedText` returns information about a selected item in an alt-text array. The array item is selected according to the rules given above. Note: In a future version of this API a method using Java `java.lang.Locale` will be added.

  Parameters:
    `schemaNS` - The namespace URI for the alt-text array. Has the same usage as in `getProperty()`.
    `altTextName` - The name of the alt-text array. May be a general path expression, must not be `null` or the empty string. Has the same namespace prefix usage as propName in `getProperty()`.
    `genericLang` - The name of the generic language as an RFC 3066 primary subtag. May be `null` or the empty string if no generic language is wanted.
    `specificLang` - The name of the specific language as an RFC 3066 tag. Must not be `null` or the empty string.
  Returns:
    Returns an `XMPProperty` containing the value, the actual language and the options if an appropriate alternate collection item exists, `null` if the property. does not exist.
  Throws:
    `XMPException` - Wraps all errors and exceptions that may occur.

### setLocalizedText

    void setLocalizedText(java.lang.String schemaNS,
                          java.lang.String altTextName,
                          java.lang.String genericLang,
                          java.lang.String specificLang,
                          java.lang.String itemValue,
                          PropertyOptions options)
                          throws XMPException

  Modifies the value of a selected item in an alt-text array. Creates an appropriate array item if necessary, and handles special cases for the x-default item. If the selected item is from a match with the specific language, the value of that item is modified. If the existing value of that item matches the existing value of the x-default item, the x-default item is also modified. If the array only has 1 existing item (which is not x-default), an x-default item is added with the given value. If the selected item is from a match with the generic language and there are no other generic matches, the value of that item is modified. If the existing value of that item matches the existing value of the x-default item, the x-default item is also modified. If the array only has 1 existing item (which is not x-default), an x-default item is added with the given value. If the selected item is from a partial match with the generic language and there are other partial matches, a new item is created for the specific language. The x-default item is not modified. If the selected item is from the last 2 rules then a new item is created for the specific language. If the array only had an x-default item, the x-default item is also modified. If the array was empty, items are created for the specific language and x-default. Note: In a future version of this API a method using Java `java.lang.Locale` will be added.

  Parameters:
    `schemaNS` - The namespace URI for the alt-text array. Has the same usage as in `getProperty()`.
    `altTextName` - The name of the alt-text array. May be a general path expression, must not be `null` or the empty string. Has the same namespace prefix usage as propName in `getProperty()`.
    `genericLang` - The name of the generic language as an RFC 3066 primary subtag. May be `null` or the empty string if no generic language is wanted.
    `specificLang` - The name of the specific language as an RFC 3066 tag. Must not be `null` or the empty string.
    `itemValue` - A pointer to the `null` terminated UTF-8 string that is the new value for the appropriate array item.
    `options` - Option flags, none are defined at present.
  Throws:
    `XMPException` - Wraps all errors and exceptions that may occur.

### setLocalizedText

    void setLocalizedText(java.lang.String schemaNS,
                          java.lang.String altTextName,
                          java.lang.String genericLang,
                          java.lang.String specificLang,
                          java.lang.String itemValue)
                          throws XMPException

  Parameters:
    `schemaNS` - The namespace URI for the alt-text array
    `altTextName` - The name of the alt-text array
    `genericLang` - The name of the generic language
    `specificLang` - The name of the specific language
    `itemValue` - the new value for the appropriate array item
  Throws:
    `XMPException` - Wraps all errors and exceptions
  See Also:
    `setLocalizedText(String, String, String, String, String, PropertyOptions)`

### getPropertyBoolean

    java.lang.Boolean getPropertyBoolean(java.lang.String schemaNS,
                                         java.lang.String propName)
                                         throws XMPException

  These are very similar to `getProperty()` and `SetProperty()` above, but the value is returned or provided in a literal form instead of as a UTF-8 string. The path composition functions in `XMPPathFactory` may be used to compose an path expression for fields in nested structures, items in arrays, or qualifiers.

  Parameters:
    `schemaNS` - The namespace URI for the property. Has the same usage as in `getProperty()`.
    `propName` - The name of the property. Has the same usage as in `getProperty()`.
  Returns:
    Returns a `Boolean` value or `null` if the property does not exist.
  Throws:
    `XMPException` - Wraps all exceptions that may occur, especially conversion errors.

### getPropertyInteger

    java.lang.Integer getPropertyInteger(java.lang.String schemaNS,
                                         java.lang.String propName)
                                         throws XMPException

  Convenience method to retrieve the literal value of a property.

  Parameters:
    `schemaNS` - The namespace URI for the property. Has the same usage as in `getProperty()`.
    `propName` - The name of the property. Has the same usage as in `getProperty()`.
  Returns:
    Returns an `Integer` value or `null` if the property does not exist.
  Throws:
    `XMPException` - Wraps all exceptions that may occur, especially conversion errors.

### getPropertyLong

    java.lang.Long getPropertyLong(java.lang.String schemaNS,
                                   java.lang.String propName)
                                   throws XMPException

  Convenience method to retrieve the literal value of a property.

  Parameters:
    `schemaNS` - The namespace URI for the property. Has the same usage as in `getProperty()`.
    `propName` - The name of the property. Has the same usage as in `getProperty()`.
  Returns:
    Returns a `Long` value or `null` if the property does not exist.
  Throws:
    `XMPException` - Wraps all exceptions that may occur, especially conversion errors.

### getPropertyDouble

    java.lang.Double getPropertyDouble(java.lang.String schemaNS,
                                       java.lang.String propName)
                                       throws XMPException

  Convenience method to retrieve the literal value of a property.

  Parameters:
    `schemaNS` - The namespace URI for the property. Has the same usage as in `getProperty()`.
    `propName` - The name of the property. Has the same usage as in `getProperty()`.
  Returns:
    Returns a `Double` value or `null` if the property does not exist.
  Throws:
    `XMPException` - Wraps all exceptions that may occur, especially conversion errors.

### getPropertyDate

    XMPDateTime getPropertyDate(java.lang.String schemaNS,
                                java.lang.String propName)
                                throws XMPException

  Convenience method to retrieve the literal value of a property.

  Parameters:
    `schemaNS` - The namespace URI for the property. Has the same usage as in `getProperty()`.
    `propName` - The name of the property. Has the same usage as in `getProperty()`.
  Returns:
    Returns a `XMPDateTime`-object or `null` if the property does not exist.
  Throws:
    `XMPException` - Wraps all exceptions that may occur, especially conversion errors.

### getPropertyCalendar

    java.util.Calendar getPropertyCalendar(java.lang.String schemaNS,
                                           java.lang.String propName)
                                           throws XMPException

  Convenience method to retrieve the literal value of a property.

  Parameters:
    `schemaNS` - The namespace URI for the property. Has the same usage as in `getProperty()`.
    `propName` - The name of the property. Has the same usage as in `getProperty()`.
  Returns:
    Returns a Java `Calendar`-object or `null` if the property does not exist.
  Throws:
    `XMPException` - Wraps all exceptions that may occur, especially conversion errors.

### getPropertyBase64

    byte[] getPropertyBase64(java.lang.String schemaNS,
                             java.lang.String propName)
                             throws XMPException

  Convenience method to retrieve the literal value of a property.

  Parameters:
    `schemaNS` - The namespace URI for the property. Has the same usage as in `getProperty()`.
    `propName` - The name of the property. Has the same usage as in `getProperty()`.
  Returns:
    Returns a `byte[]`-array contained the decoded base64 value or `null` if the property does not exist.
  Throws:
    `XMPException` - Wraps all exceptions that may occur, especially conversion errors.

### getPropertyString

    java.lang.String getPropertyString(java.lang.String schemaNS,
                                       java.lang.String propName)
                                       throws XMPException

  Convenience method to retrieve the literal value of a property. Note: There is no `setPropertyString()`, because `setProperty()` sets a string value.

  Parameters:
    `schemaNS` - The namespace URI for the property. Has the same usage as in `getProperty()`.
    `propName` - The name of the property. Has the same usage as in `getProperty()`.
  Returns:
    Returns a `String` value or `null` if the property does not exist.
  Throws:
    `XMPException` - Wraps all exceptions that may occur, especially conversion errors.

### setPropertyBoolean

    void setPropertyBoolean(java.lang.String schemaNS,
                            java.lang.String propName,
                            boolean propValue,
                            PropertyOptions options)
                            throws XMPException

  Convenience method to set a property to a literal `boolean` value.

  Parameters:
    `schemaNS` - The namespace URI for the property. Has the same usage as in `setProperty()`.
    `propName` - The name of the property. Has the same usage as in `getProperty()`.
    `propValue` - the literal property value as `boolean`.
    `options` - options of the property to set (optional).
  Throws:
    `XMPException` - Wraps all exceptions that may occur.

### setPropertyBoolean

    void setPropertyBoolean(java.lang.String schemaNS,
                            java.lang.String propName,
                            boolean propValue)
                            throws XMPException

  Parameters:
    `schemaNS` - The namespace URI for the property
    `propName` - The name of the property
    `propValue` - the literal property value as `boolean`
  Throws:
    `XMPException` - Wraps all exceptions
  See Also:
    `setPropertyBoolean(String, String, boolean, PropertyOptions)`

### setPropertyInteger

    void setPropertyInteger(java.lang.String schemaNS,
                            java.lang.String propName,
                            int propValue,
                            PropertyOptions options)
                            throws XMPException

  Convenience method to set a property to a literal `int` value.

  Parameters:
    `schemaNS` - The namespace URI for the property. Has the same usage as in `setProperty()`.
    `propName` - The name of the property. Has the same usage as in `getProperty()`.
    `propValue` - the literal property value as `int`.
    `options` - options of the property to set (optional).
  Throws:
    `XMPException` - Wraps all exceptions that may occur.

### setPropertyInteger

    void setPropertyInteger(java.lang.String schemaNS,
                            java.lang.String propName,
                            int propValue)
                            throws XMPException

  Parameters:
    `schemaNS` - The namespace URI for the property
    `propName` - The name of the property
    `propValue` - the literal property value as `int`
  Throws:
    `XMPException` - Wraps all exceptions
  See Also:
    `setPropertyInteger(String, String, int, PropertyOptions)`

### setPropertyLong

    void setPropertyLong(java.lang.String schemaNS,
                         java.lang.String propName,
                         long propValue,
                         PropertyOptions options)
                         throws XMPException

  Convenience method to set a property to a literal `long` value.

  Parameters:
    `schemaNS` - The namespace URI for the property. Has the same usage as in `setProperty()`.
    `propName` - The name of the property. Has the same usage as in `getProperty()`.
    `propValue` - the literal property value as `long`.
    `options` - options of the property to set (optional).
  Throws:
    `XMPException` - Wraps all exceptions that may occur.

### setPropertyLong

    void setPropertyLong(java.lang.String schemaNS,
                         java.lang.String propName,
                         long propValue)
                         throws XMPException

  Parameters:
    `schemaNS` - The namespace URI for the property
    `propName` - The name of the property
    `propValue` - the literal property value as `long`
  Throws:
    `XMPException` - Wraps all exceptions
  See Also:
    `setPropertyLong(String, String, long, PropertyOptions)`

### setPropertyDouble

    void setPropertyDouble(java.lang.String schemaNS,
                           java.lang.String propName,
                           double propValue,
                           PropertyOptions options)
                           throws XMPException

  Convenience method to set a property to a literal `double` value.

  Parameters:
    `schemaNS` - The namespace URI for the property. Has the same usage as in `setProperty()`.
    `propName` - The name of the property. Has the same usage as in `getProperty()`.
    `propValue` - the literal property value as `double`.
    `options` - options of the property to set (optional).
  Throws:
    `XMPException` - Wraps all exceptions that may occur.

### setPropertyDouble

    void setPropertyDouble(java.lang.String schemaNS,
                           java.lang.String propName,
                           double propValue)
                           throws XMPException

  Parameters:
    `schemaNS` - The namespace URI for the property
    `propName` - The name of the property
    `propValue` - the literal property value as `double`
  Throws:
    `XMPException` - Wraps all exceptions
  See Also:
    `setPropertyDouble(String, String, double, PropertyOptions)`

### setPropertyDate

    void setPropertyDate(java.lang.String schemaNS,
                         java.lang.String propName,
                         XMPDateTime propValue,
                         PropertyOptions options)
                         throws XMPException

  Convenience method to set a property with an XMPDateTime-object, which is serialized to an ISO8601 date.

  Parameters:
    `schemaNS` - The namespace URI for the property. Has the same usage as in `setProperty()`.
    `propName` - The name of the property. Has the same usage as in `getProperty()`.
    `propValue` - the property value as `XMPDateTime`.
    `options` - options of the property to set (optional).
  Throws:
    `XMPException` - Wraps all exceptions that may occur.

### setPropertyDate

    void setPropertyDate(java.lang.String schemaNS,
                         java.lang.String propName,
                         XMPDateTime propValue)
                         throws XMPException

  Parameters:
    `schemaNS` - The namespace URI for the property
    `propName` - The name of the property
    `propValue` - the property value as `XMPDateTime`
  Throws:
    `XMPException` - Wraps all exceptions
  See Also:
    `setPropertyDate(String, String, XMPDateTime, PropertyOptions)`

### setPropertyCalendar

    void setPropertyCalendar(java.lang.String schemaNS,
                             java.lang.String propName,
                             java.util.Calendar propValue,
                             PropertyOptions options)
                             throws XMPException

  Convenience method to set a property with a Java Calendar-object, which is serialized to an ISO8601 date.

  Parameters:
    `schemaNS` - The namespace URI for the property. Has the same usage as in `setProperty()`.
    `propName` - The name of the property. Has the same usage as in `getProperty()`.
    `propValue` - the property value as Java `Calendar`.
    `options` - options of the property to set (optional).
  Throws:
    `XMPException` - Wraps all exceptions that may occur.

### setPropertyCalendar

    void setPropertyCalendar(java.lang.String schemaNS,
                             java.lang.String propName,
                             java.util.Calendar propValue)
                             throws XMPException

  Parameters:
    `schemaNS` - The namespace URI for the property
    `propName` - The name of the property
    `propValue` - the property value as `Calendar`
  Throws:
    `XMPException` - Wraps all exceptions
  See Also:
    `setPropertyCalendar(String, String, Calendar, PropertyOptions)`

### setPropertyBase64

    void setPropertyBase64(java.lang.String schemaNS,
                           java.lang.String propName,
                           byte[] propValue,
                           PropertyOptions options)
                           throws XMPException

  Convenience method to set a property from a binary `byte[]`-array, which is serialized as base64-string.

  Parameters:
    `schemaNS` - The namespace URI for the property. Has the same usage as in `setProperty()`.
    `propName` - The name of the property. Has the same usage as in `getProperty()`.
    `propValue` - the literal property value as byte array.
    `options` - options of the property to set (optional).
  Throws:
    `XMPException` - Wraps all exceptions that may occur.

### setPropertyBase64

    void setPropertyBase64(java.lang.String schemaNS,
                           java.lang.String propName,
                           byte[] propValue)
                           throws XMPException

  Parameters:
    `schemaNS` - The namespace URI for the property
    `propName` - The name of the property
    `propValue` - the literal property value as byte array
  Throws:
    `XMPException` - Wraps all exceptions
  See Also:
    `setPropertyBase64(String, String, byte[], PropertyOptions)`

### iterator

    XMPIterator iterator()
                         throws XMPException

  Constructs an iterator for the properties within this XMP object.

  Returns:
    Returns an `XMPIterator`.
  Throws:
    `XMPException` - Wraps all errors and exceptions that may occur.
  See Also:
    `iterator(String, String, IteratorOptions)`

### iterator

    XMPIterator iterator(IteratorOptions options)
                         throws XMPException

  Constructs an iterator for the properties within this XMP object using some options.

  Parameters:
    `options` - Option flags to control the iteration.
  Returns:
    Returns an `XMPIterator`.
  Throws:
    `XMPException` - Wraps all errors and exceptions that may occur.
  See Also:
    `iterator(String, String, IteratorOptions)`

### iterator

    XMPIterator iterator(java.lang.String schemaNS,
                         java.lang.String propName,
                         IteratorOptions options)
                         throws XMPException

  Construct an iterator for the properties within an XMP object. According to the parameters it iterates the entire data tree, properties within a specific schema, or a subtree rooted at a specific node.

  Parameters:
    `schemaNS` - Optional schema namespace URI to restrict the iteration. Omitted (visit all schema) by passing `null` or empty String.
    `propName` - Optional property name to restrict the iteration. May be an arbitrary path expression. Omitted (visit all properties) by passing `null` or empty String. If no schema URI is given, it is ignored.
    `options` - Option flags to control the iteration. See `IteratorOptions` for details.
  Returns:
    Returns an `XMPIterator` for this `XMPMeta`-object considering the given options.
  Throws:
    `XMPException` - Wraps all errors and exceptions that may occur.

### getObjectName

    java.lang.String getObjectName()

  This correlates to the about-attribute, returns the empty String if no name is set.

  Returns:
    Returns the name of the XMP object.

### setObjectName

    void setObjectName(java.lang.String name)

  Parameters:
    `name` - Sets the name of the XMP object.

### getPacketHeader

    java.lang.String getPacketHeader()

  Returns:
    Returns the unparsed content of the <?xpacket> processing instruction. This contains normally the attribute-like elements 'begin="<BOM>" id="W5M0MpCehiHzreSzNTczkc9d"' and possibly the deprecated elements 'bytes="1234"' or 'encoding="XXX"'. If the parsed packet has not been wrapped into an xpacket, `null` is returned.

### clone

    java.lang.Object clone()

  Clones the complete metadata tree.

  Returns:
    Returns a deep copy of this instance.

### sort

    void sort()

  Sorts the complete datamodel according to the following rules:
  - Schema nodes are sorted by prefix.
  - Properties at top level and within structs are sorted by full name, that is prefix + local name.
  - Array items are not sorted, even if they have no certain order such as bags.
  - Qualifier are sorted, with the exception of "xml:lang" and/or "rdf:type" that stay at the top of the list in that order.

### normalize

    void normalize(ParseOptions options)
                   throws XMPException

  Perform the normalization as a separate parsing step. Normally it is done during parsing, unless the parsing option `ParseOptions.OMIT_NORMALIZATION` is set to `true`. Note: It does no harm to call this method to an already normalized xmp object. It was a PDF/A requirement to get hand on the unnormalized `XMPMeta` object.

  Parameters:
    `options` - optional parsing options.
  Throws:
    `XMPException` - Wraps all errors and exceptions that may occur.

### dumpObject

    java.lang.String dumpObject()

  Renders this node and the tree unter this node in a human readable form.

  Returns:
    Returns a multiline string containing the dump.

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

Copyright © 2006-2007 Adobe Systems Inc. All Rights Reserved.