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


Reply via email to