Hello,
my goal is to create an updated set of XMP metadata but when I try to use the
XMPSchemaMediaManagement createDerivedFrom() method I get an error:
Exception in thread "Thread-1" org.w3c.dom.DOMException: NAMESPACE_ERR: An
attempt is made to create or change an object in a way which is incorrect with
regard to namespaces.
when I use:
ResourceRef derivedFromRef = destXmpMM.createDerivedFrom();
to create the DerivedFrom element as seen in the my method (source below)
/**
* Create new XMP Media Management schema from existing XMP Media
Management schema data.
*
* @param xmpMM XMP Media Management schema extracted from original PDF
*/
public void loadDestMediaManagmentSchema(XMPSchemaMediaManagement xmpMM) {
// add XMPSchemaMediaManagment to destination XMP metadata
XMPSchemaMediaManagement destXmpMM =
destXmpMetadata.addMediaManagementSchema();
// create DerivedFrom ResourceRef element from XMPSchemaMediaManagement
object
ResourceRef derivedFromRef = destXmpMM.createDerivedFrom();
loadDerivedFromResourceRef(derivedFromRef,
xmpMM.getTextProperty("xmpMM:InstanceID")));
destXmpMM.setDerivedFrom(derivedFromRef);
// add History ResourceEvents
destXmpMM.addHistory(loadResourceEvent(destXmpMM,
ResourceEvent.ACTION_EDITED, PLMLoader.AGENT_NAME));
destXmpMM.addHistory(loadResourceEvent(destXmpMM,
ResourceEvent.ACTION_MANAGED, PLMLoader.MANAGED_AGENT_NAME));
destXmpMM.setDocumentID(xmpMM.getDocumentID());
}
Watching the debugger I believe the error is caused because the new destination
XMP Media Management element returns "rdf" as its prefix (from rdf:Description
element that wraps the xmpMM content).
<rdf:Description xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/">
How can I correct this and generate a DerivedFrom element?
Thanks in advance,
Chris