XMP SDK 5.1.2 - Thumbnails

I've been doing a lot of research today about the XMP SDK 5.1.2 and the C# wrapper by Martin Sanneblad.  I believe he was using XMP SDK 4.1.1.
It appears that the 4.1.1. SDK had properties/functions that dealt with thumbnails.  Am I crazy, or has all that been removed sometime between 4.1.1. and 5.1.2?  If not, where is it?  If so, what's the better alternative?
Thanks for your help,
Kyle

> We removed thumbnails from the XMP because a) binary blobs are no[t] actual metadata and b) just bloating the XMP packet of files especially as thumbnails were rarely used anyways.
Both points are absurd.  Thumbnails are used frequently in the Digital Asset Management world, and thumbnails are metadata.
If these were truly the reasons for removing thumbnails from the SDK (and it wasn't to discourage the use of non-Adobe viewers), then I don't think you included the DAM world when evaluating whether thumbnails were needed.
Fortunately, the product teams have not lost touch with reality and continue to offer the ability to embed XMP thumbnails.

Similar Messages

  • [CS3 JS] How to force XMP metadata update for a thumbnail?

    Hi Folks,
    In a JavaScript in Bridge CS3, I'm updating a value in the XMP metadata for a Thumbnail. Later in the script I want to read the updated XMP metadata information from the Thumbnail, but often Bridge hasn't updated the metadata by the time I read it. In other words, my script reads the value prior to the update. I'm guessing there's a caching issue going on.
    I'm new to Bridge scripting, and I am hoping someone here can offer suggestions on how I can (or, even *if* I can) force Bridge to update the XMP metadata cache for a file so that when I read it later in the script it will reflect the recent changes. I've tried using Thumbnail.refresh(), but that doesn't seem to do the trick. I don't mind a slower script, I just want to be able to read the correct value.
    Thanks in advance for any help!
    -- Jim

    Hi David,
    I'm running this script on a MacBook Pro, 2.5GHz, 4GB RAM.
    Here is a sample JSX that shows the issue I'm having:
    #target "bridge-2.0"
    main();
    function main() {
        if( xmpLib == undefined ) {
            var pathToLib = Folder.startup.fsName + "/AdobeXMPScript.framework";
            var libfile = new File( pathToLib );
            var xmpLib = new ExternalObject("lib:" + pathToLib );
        var myValue = "Headline Test";
        var myFilePath = "~/Desktop/TestFile.tif";
        var curHeadlineStr = XMPGetHeadline(myFilePath);
        $.writeln("Headline value: \"" +  curHeadlineStr + "\"");
        XMPWriteHeadline(myFilePath, myValue);
        // *** I would like to refresh the cache here ***
        curHeadlineStr = XMPGetHeadline(myFilePath);
        $.writeln("Headline value: \"" +  curHeadlineStr + "\"");
    function XMPGetHeadline(theFilePath) {
        var thumb = new Thumbnail(File (theFilePath) );
        md = thumb.synchronousMetadata;   
        xmp = new XMPMeta(md.serialize());
        var myHeadlineXMPProp = xmp.getProperty
            (XMPConst.NS_PHOTOSHOP, "Headline", XMPConst.STRING);
        return myHeadlineXMPProp;
    function XMPWriteHeadline(theFilePath, theTextStr){
        var thumb = new Thumbnail(File (theFilePath) );
        md = thumb.synchronousMetadata;   
        xmp = new XMPMeta(md.serialize());
        var myOrigHeadlineXMPProp = xmp.getProperty
            (XMPConst.NS_PHOTOSHOP, "Headline", XMPConst.STRING);
        xmp.deleteProperty(XMPConst.NS_PHOTOSHOP, "Headline");
        xmp.setProperty(XMPConst.NS_PHOTOSHOP, "Headline", theTextStr, 0, XMPConst.STRING);
        var updatedPacket = xmp.serialize
            (XMPConst.SERIALIZE_OMIT_PACKET_WRAPPER | XMPConst.SERIALIZE_USE_COMPACT_FORMAT);
        thumb.metadata = new Metadata(updatedPacket);
    To run this script, in main(), set the myFilePath variable to the path of a file that has an "IPTC Code" "Headline" property.
    This script, when run, sets the "Headline" property value to the value of myValue. After runing the script for the first time, take a look at the console log. You should see that Headline value displayed does not change between the two console entries. My log looks like this after the first run:
      Headline value: "undefined"
      Headline value: "undefined"
    The thing is, the second entry in the console listing, above, was created after the Headline value was set by XMPWriteHeadline(). The two values should be different between the two console entries.
    If you run the script a second time against the same file, you will see that the Headline value does contain the value that was written in the first run of the script--it just took some time to update the cache, I'm guessing. Here's the second run's log:
      Headline value: "Headline Test"
       Headline value: "Headline Test"
    So, what I'm looking for is a way to insert code (where the comment line "//*** I would like to refresh the cache here ***" appears), to force Bridge CS3 to refresh its cache so that when I call XMPGetHeadline() after calling XMPWriteHeadline(), the Headline value will return the value that was just written.
    I hope this is clear enough...
    Thanks!!!!
    -- Jim

  • PLUS attributes in a Bridge Panel with XMP SDK

    Hi all,
    I' m developing a Bridge Info Panel with Flash Builder 4 and XMP SDK.
    I have to build a panel that contains the "Model Release Status" metadata.
    This metadata belongs to the PLUS Namespace.
    This is my form item:
    <!-- Model Release Status -->
         <fi:XMPFormItem
              label="$$$/xmp/sdk/custompanels/MySample/ModelRS=Model Release Status:"
              labelTooltip="$$$/xmp/sdk/custompanels/MySample/ModelRST=Summarizes the availability and scope of model releases authorizing usage of the likenesses of persons appearing in the photograph.">
              <fi:XMPComboBox xmpPath="plus:ModelReleaseStatus">
                   <fi:XMPComboBoxItem label="$$$/xmp/sdk/custompanels/MySample/ModelRST/None=None" xmpValue="http://ns.useplus.org/ldf/vocab/MR-NON">
                   </fi:XMPComboBoxItem>
                   <fi:XMPComboBoxItem label="$$$/xmp/sdk/custompanels/MySample/ModelRST/NAP=Not Applicable" xmpValue="http://ns.useplus.org/ldf/vocab/MR-NAP">
                   </fi:XMPComboBoxItem>
              </fi:XMPComboBox>     
         </fi:XMPFormItem>
    But I see a little difference from the original one.
    If I write metadata with Adobe Bridge original panel, I see this:
         <rdf:Description rdf:about=""
                xmlns:plus_1_="http://ns.useplus.org/ldf/xmp/1.0/">
             <plus_1_:ModelReleaseStatus>http://ns.useplus.org/ldf/vocab/MR-NON</plus_1_:ModelReleaseStatus>
             <plus_1_:Version>1.2.0</plus_1_:Version>
          </rdf:Description>
    Instead, in my custom panel, I see this.
           <rdf:Description rdf:about=""
                xmlns:plus_1_="http://ns.useplus.org/ldf/xmp/1.0/">
             <plus_1_:ModelReleaseStatus>http://ns.useplus.org/ldf/vocab/MR-NAP</plus_1_:ModelReleaseStatus>
          </rdf:Description>
    The Version attribute doesn't compare in my.
    I have two questions:
    1. is it mandatory this attribute?
    In http://ns.useplus.org/LDF/ldf-XMPSpecification they says that is only used in case of misunderstanding.
    2. If yes, how can I implement this?
    With an event on the save button?
    I believe it's more difficult and it's not so useful..
    Any idea, guys?
    Regards,

    Hi,
    to answer your questions.
    1. As far as I know, the plus:Version is not mandatory.
    2. I used the following algorithm in "FileInfo". A hidden XMPTextInput field at the end of the form contains the version.
    On the xmpWrite event, I check if the XMP packet has been modified and contains any plus:* values.
    In that case I add the version only if at least one plus property is contained in the packet, otherwise it is removed.
    Hope this helps,
    -- Stefan

  • Compiling XMP SDK on Mac OS X 10.6

    Has anybody managed to successfully compile the (C++) XMP SDK on Snow Leopard?
    The programmers guide contains references for building the SDK using XCode 2.4 - I am using 3.2. Some of the configuration files also contain references to earlier versions of OS X. For example, I modified the file XMPToolkitSDK-Common.xcconfig to reference the appropriate SDK on my Mac - it was pointing to a 10.4 SDK.
    Thanks
    Simon

    Hi Simon,
    for your interest: The next SDK release of XMP toolkit  will have full support for XCode 3.x and the Mac 10.5 SDK.
    Kind regards
    Jörg
    Adobe  XMP

  • Do I need the XMP SDK?

    Hello,
    I've been able to open, populate, and print an Adobe .pdf form from VB.NET.
    However, the example that I have requires me to know the structure of the form. I'd like to be able to "read" the structure of the form and populate it on the fly from a database. If I'm understanding what they mean by metadata, I believe that XMP would be the technology to use to do this.
    I don't need to be able to save changes to the form, and since my user's workstations won't have Acrobat writer, I'd be unable to do this anyway.
    -Eric

    The XMP SDK provides ways to scan and inject metadata into a file that is saved from an application. Sometimes the app does it for you and sometimes you have to know the structure of the file format and do it yourself. You may not understand the "data about data" approach XMP is taking. It seems designed for making content smart but not actually being the content itself. It could get dicey trying to stuff, even temporarily, a lot of data in the space alloted in different file formats.

  • How to read AVCHD in XMP SDK sample programs

    I am just getting started with the xmp sdk. 
    It seems to me that the XMP SDK sample programs , (e.g. ReadXMP) do not work with AVCHD video. 
    Is that right?  Or am I missing something?
    (Prelude CC puts metadata into sidecar .xmp files in ACVHD/BDMV/STREAM   next to the .MTS files. That's the metadata I want to read.)
    I have tried
    ReadingXMP ../ACVHD
    which returns: "Unable to open ../AVCHD"
    I have tried
    ReadingXMP ../AVCHD/BDMV/STREAM/00000.MTS
    which returns
    "No smart handler available for ../AVCHD/BDMV/STREAM/00000.MTS
    Trying packet scanning.
    ../ AVCHD/AVCHD/BDMV/STREAM/00000.MTS is opened successfully
    dc:title in English =
    dc:title in French =
    XMP dumped to XMPDump.txt"
    Examination of XMPDump.txt reveals:
    "Dumping XMPMeta object ""  (0x0)"
    Which means that the scan found no xmp info.  Not surprising.  There should be none in the .MTS file.
    How do you get it to open up and scan the sidecar?
    If I give it the sidecar explicitly
    ReadingXMP  ../AVCHD/BDMV/STREAM/00000.XMP
    that also leads to the packet scan not finding any xmp info (which I have read elsewhere is because the xmp files don't include
    an initial xmp packet tag.... a mystery for another day.)
    So...
    Is there sample code that handles AVCHD?
    I see that there is an AVCHD_Handler.cpp in the XMPFiles library/framework, but I don't see how to get through to it.
    The XMPFiles.cpp function FileIsExcluded(...) seems to rule out any path that is a folder.
    Thanks.
    Keith

    Answering my own question ---
    After a long time of studying the XMPFiles library code, it became clear that it was NOT going to work with AVCHD... There are some places where it checks for folder-based files, (like P2 and XDCAM) but no mention of AVCHD. 
    There IS an entire file: AVCHD_Handler.cpp, but the routine that loads all the other file handlers omits this one.
    Also, there are some checks for "folder-based" formats that explictly check for the other formats, but not for AVCHD.
    I have modified the XMPFiles code to fix these oversights, and now I am happily reading the metadata I put on the AVCHD files using Prelude.   I may post more details as I go along.
    This pertains to the version downloaded as XMP-Toolkit-SDK-CC-201306.zip

  • FileFormats supported by XMP SDK 4.0 Prerelease

    Hi,
    I am using XMP SDK 4 Prerelease to extract/inject XMP info.
    Can you please tell me what are all the fileformats supported by XMP SDK 4 Prerelease.
    Thanks,
    Venkatesh

    Hello Tikku
    On page 327 of the SAP Web Intelligence RESTful web service SDK User Guide, SAP BusinessObjects Business Intelligence platform 4.1 there is a section "Getting the document refresh parameters before refreshing a document:
    Request
    GET http://<serverName>:6405/biprws/raylight/v1/documents/{documentId}/param
    eters
    Example: To get the refresh parameters
    Windows
    curl -G -i -H "accept:application/xml" -H X-SAP-LogonToken:"""%tokenValue%""" http://<server
    Name>:6405/biprws/raylight/v1/documents/{documentId}/parameters
    Etc., etc.
    Please have a look at the referenced section of the Guide. If that does not help, let me know. I should have more code on an image that is not up right now and I can share that if need be.
    Oh., BTW, this really is another question and should have been posted as a new Discussion. Just want to keep these seperate for easier searching .
    - Ludek
    Message was edited by: Ludek Uher

  • Who to send patches for XMP SDK to?

    Hi,
    I'm the maintainer of Exempi. Exempi started as a LGPL XMP library, and with the release of XMP SDK 4.1.1 under the BSD licence, it is now a wrapper around Adobe's SDK, under the same licence.
    I have several patches to the XMP SDK including bug fixes, build fixes on Linux and 64-bits platform (didn't build at all), and memory leaks.
    Who shall I send the patches to?

    Please send it to me: [email protected] - I'm the engineering manager for XMP.
    Thanks for your support.
    Frank Biederich
    Adobe Systems

  • CS4 XMP SDK - Can't get it to work with Eclipse IDE

    I've been trying to use the CS4 XMP (FileInfo) SDK with the Eclipse IDE, as described in the docs, but there must be a missing step in the documentation because I have added the Ant Plugin and the XMP plugin (jar) but there is no "XMP / Custom Panel" project option showing in Eclipse.
    Has anyone got this to work? Does it require a specific (i.e. not the latest Ganymede) version of Eclipse?

    Hi Fred,
    Unfortunately I do not have Flex Builder (it is pay-for software). The XMP FileInfo SDK Programmer's Guide says there are three options:
    1. Adobe Flex Builder
    2. Eclipse IDE with Flex-Builder plug-in
    3. Flex SDK
    I've been trying number 2 (Eclipse IDE) as I am familiar with Eclipse and the plugin is included with the SDK, but it doesn't work so I guess the documentation is missing a few steps.
    Thanks
    James.

  • Need help implimenting PLUS ldf in c++ via XMP sdk

    I'm apparently suffering major brainstem bitrot and generating lots of brain coredumps, and I need help.
    I'm using the XMP toolkit sdk 5.1.2 in c++ under gcc on Debian to impliment embedding PLUS ldf licensing metadata (reference: http://ns.useplus.org/LDF/ldf-XMPReference ) into images.
    I have no problems generating compliant plus ldf xmp in code for everything EXCEPT for single line detail entries like "<rdf:type rdf:resource="plus:LicenseeDetail"/>" in several places in the ldf specification, viz:
    <plus:Licensee>
       <rdf:Seq>
         <rdf:li>
              <rdf:type rdf:resource="plus:LicenseeDetail"/>
              <plus:LicenseeID>http://plus-id.org/AAA-987</plus:LicenseeID>
              <plus:LicenseeName>ABC Advertising Agency</plus:LicenseeName>
         </rdf:li>
       </rdf:Seq>
    </plus:Licensee>
    I can generate the appropriate text in memory then parse that to get an appropriate SXMPMeta and merge that, but I would really like to be able to properly generate the proper xmp in code, and would really appreciate any help preventing further brainrot!
    I'm certain it's both simple and trivial, but I now can't see the trees because of the forest ... Thanks

    Hi,
    I'm not a XMP expert but I've been working for some years with Semantic Web technologies. My understanding is that XMP is a subset of RDF (one of the main pieces of the Semantic Web) so I will try to make my contribution to this problem from there.
    Consequently, looking at your problematic piece of XMP:
    <plus:Licensee>
       <rdf:Seq>
         <rdf:li>
              <rdf:type rdf:resource="plus:LicenseeDetail"/>
              <plus:LicenseeID>http://plus-id.org/AAA-987</plus:LicenseeID>
              <plus:LicenseeName>ABC Advertising Agency</plus:LicenseeName>
         </rdf:li>
       </rdf:Seq>
    </plus:Licensee>
    I can say that it isn't valid RDF so it shouldn't be proper XMP. This can be confirmed looking at the example for the property plus:Licensee available from the specification (http://ns.useplus.org/LDF/ldf-XMPSpecification#Licensee):
    <plus:Licensee>
       <rdf:Seq>
          <rdf:li rdf:parseType="Resource">
             <rdf:type rdf:resource="plus:LicenseeDetail"/>
             <plus:LicenseeID>http://plus-id.org/AAA-987</plus:LicenseeID>
             <plus:LicenseeName>ABC Advertising Agency</plus:LicenseeName>
          </rdf:li>
       </rdf:Seq>
    </plus:Licensee>
    I have marked in bold where the problem is. Your piece of XML is missing the rdf:parseType="Resource" construct. I will explain why this is necessary from what I know from RDF. RDF is based on a graph model. There are resources, which correspond to graph nodes and represent the things the RDF metadata is talking about, and properties, which correspond to graph edges and represent the attributes and relations used to say things about the resources.
    In RDF the convention is to use lowercase names for properties. This doesn't seem to be the convention in XMP so we must take a closer look at the XMP piece in order to identify what parts correspond to resources and to properties. From the LDF specification we know that plus:Licensee correspond to a property so it should link to a resource, in this case rdf:Seq (more specifically it is an anonymous resource (no id provided) of type rdf:Seq). Your example should have some additional markup before plus:Licensee, surely the resource that represents the licensee about which we are specifying the licensee using the plus:Licensee property.
    Now, if we continue from the resource of type rdf:Seq, there is the rdf:li property (lower case as it is directly reused from the RDF specification). The problem now is that if we look directly inside rdf:li property we find rdf:type, plus:LicenseeID and plus:LicenseeName. It is clear that rdf:type (lowercase) is a property and from the LDF specification we can see that the other two also correspond to properties. Therefore, there is the problem. We have a property (rdf:li) pointing to three properties (rdf:type,...) so we are breaking the graph data model: nodes (resources) are connected through edges (properties) that link two nodes.
    This is not the case for the example in the LDF specification. The rdf:parseType="Resource" constructs is a shortcut for:
    <rdf:li>
       <rdf:Resource>
             <rdf:type rdf:resource="plus:LicenseeDetail"/>
             <plus:LicenseeID>http://plus-id.org/AAA-987</plus:LicenseeID>
             <plus:LicenseeName>ABC Advertising Agency</plus:LicenseeName>
       </rdf:Resource>
    </rdf:li>
    It basically says that the following properties should be parsed as being connected to an anonymous resource. In order to make it clearer, it is helpful to look at the graph behing that markup. For instance, you can use the RDF2SVG service and render the graph behind the example from the specification (which I have make available from a custom URL):
    http://rhizomik.net/redefer-services/render?rdf=http://rhizomik.net:8080/html/~roberto/tmp /ldf-simple-example.rdf&format=RDF/XML&mode=svg&rules=http://rhizomik.net:8080/html/redefe r/rdf2svg/showgraph.jrule
    I hope all this makes it clearer.
    Best,
    Roberto García
    http://rhizomik.net/~roberto/

  • Xmp environment error with XMP SDK on MAC

    Hi,
    I  am using
    MAC platform,
    Xcode for devlopment,
    I have compiled the tool and get compiled files( libXMPFilesStaticDebug.a, libXMPFilesStaticDebug.a)
    I have create a project with xmp toolkit 3.2
    When i am try to compile the project i am getting XMP environment error which show i have to set MAC_ENV,WIN_ENV,UNIX_ENV,
    but i have already defined this in Preprocessor Macros (MAC_ENV =1 )as given in the DOC ( comes with XMP toolkit)
    Is there any thing else i have to set, so as to compile the my project (myReadingXmp) ?
    Thanks for your suggestion
    Please help !!

    I'm getting 33 linker errors when compiling. I'm on XCode v3.1.3, however the  document is referring to XCode v2.x. Last setting listed in the document is not  available in XCode v3.1.3. Can somebody guide me for clearing the compilation /linking errors.
    Please find linking error with an attachment to this post

  • Xmp sdk with cdt

    Hi all,
    I have some problems compiling an DLL with XMP support under Windows.
    I am using Eclipse CDT.
    Everything works fine using OS X. I think the problem could be that some gcc / linker parameters are missing.
    In the code I defined all I need:
    #define TXMP_STRING_TYPE  std::string
    #define XMP_INCLUDE_XMPFILES 1
    Then I include:
    #include "XMP.hpp"
    Until this everything works and I can compile, but...
    when I include (and nothing more!)
    #include "XMP.incl_cpp"
    the compilation progress throws a lot of errors about undefined references in XMPFilesStaticDebug.lib.
    Any ideas? Any solutions?
    Best,
    Ole

    I'm getting 33 linker errors when compiling. I'm on XCode v3.1.3, however the  document is referring to XCode v2.x. Last setting listed in the document is not  available in XCode v3.1.3. Can somebody guide me for clearing the compilation /linking errors.
    Please find linking error with an attachment to this post

  • Writing XMP Thumbnail Metadata to AE Preset (Scripting)

    Hi guys.
    I am working on a script to basically insert a gif as metadata into a fx preset file. If you open Adobe bridge and browse to the After effects text presets you will see that you can click on a preset and in the preview there is an animated GIF. So I am attempting to do this for custom presets.
    Basically I think I need to read the contents of a GIF file as data, or text, then encode that as base64 and insert it into the metadata of the preset file.
    I have a come across a couple of problems though:
    1) I can't seem to read in the GIF file as data
         The code I am using is:
    file = new File("C:\\test.gif");
    file.open("r");
    test = file.read();
    alert(test);
    And all I get returned is the first part of the data which is "GIF89aØ", It seems that when white space is encountered After Effects stops reading the data.
    2) I have been testing some code to write thumbnail data to a preset file, but I have come across an issue here too.
    if (ExternalObject.AdobeXMPScript == undefined) {
    ExternalObject.AdobeXMPScript = new ExternalObject('lib:AdobeXMPScript');
    xmpFile.closeFile(XMPConst.CLOSE_UPDATE_SAFELY);
    file = new File("C:\\joshPreset.ffx");
    xmpFile = new XMPFile(file.fsName, XMPConst.UNKNOWN, XMPConst.OPEN_FOR_UPDATE);
    var xmp = xmpFile.getXMP();
    xmp.appendArrayItem( "http://ns.adobe.com/xap/1.0/","Thumbnails",null, 0,XMPConst.ARRAY_IS_ALTERNATIVE );
    This code works, it inserts a Thumbnails array into the metadata, which looks like this:
       <xmp:Thumbnails>
        <rdf:Alt>
        </rdf:Alt>
       </xmp:Thumbnails>
    I then need to add other properties within the Thumbnails array like xapGImg:height and xapGImg:image
    So from what I read in the documentation I need to add a Struct field?
    I add these lines to my code:
    XMPMeta.registerNamespace("http://ns.adobe.com/xap/1.0/g/img/", "xapGImg");
    xmp.setStructField("xapGImg","Thumbnails","xapGImg:height", 0,null );
    The first line is to register the name space. xapGImg is what I found in the after effects text preset file.
    The second line is to add a struct field to the array. But I get an error whenever I run it with the second line. It says:
    XMP Exception: Unregistered schema namespace URI
    I have tried all different combinations of the namespace in the second line but just cannot get it to work!
    If anyone can help that would be great!

    This question is cross-posted on the XMP SDK forum:
    http://forums.adobe.com/thread/572055

  • ~~ New XMP CS6 SDK Releases ~~

    Hi,
    You can now find new versions of our XMP SDKs on Adobe Devnet:
    http://www.adobe.com/devnet/xmp/
    So please check  out the CS6 versions of the SDKs and post your feedback in this forum!
    The prior versions are still listed.
    Updates:
    Updated XMP Specifications [version: April 2012]
    New version of the XMP Toolkit SDK (c++)  [version: CS6]
    Compiler Upgrade: Xcode 4.x, Visual Studio 2010 (VC10)
    A plug-in SDK for XMPFiles that allows you to add custom file handlers, or replace existing file handlers with custom ones in XMPFiles
    A new version of the file handler for RIFF-based formats that also support AIFF. The AVI handler still uses the old code, but WAVE and AIFF are based in the new file handler
    New functions in XMPFiles that allows you to use your own I/O code in XMPFiles
    Support of EXIF 2.3 properties
    A new XMPFiles function, GetFileModDate(), that retrieves the most recent OS file modification date for the associated metadata of a file
    Many bug fixes and minor improvements in XMPFiles
    The XMP FileInfo SDK is now available in version CS6
    Custom Panel Plugin for Flash builder 4.x
    EVE Panel converter (to convert CS 2/3 panels)
    Create generic panel without Action Script (XML only)
    XMPCore Java is now is now available in version CS6 and seperated from the C++ toolkit  (see new Java section)Many bug fixes and minor improvements
    The Adobe XMP Team

    Hi,
    i used the previous version of the java XMPCore. I tried to upgrade however i got the following exception (using java 1.5 and 1.6):
    java.lang.AbstractMethodError: javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V
        at com.adobe.xmp.impl.XMPMetaParser.createDocumentBuilderFactory(Unknown Source)
        at com.adobe.xmp.impl.XMPMetaParser.<clinit>(Unknown Source)
        at com.adobe.xmp.XMPMetaFactory.parseFromBuffer(Unknown Source)
        at com.adobe.xmp.XMPMetaFactory.parseFromBuffer(Unknown Source)
    On further investigation the problem is, that you are trying to call a method
    factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
    on an abstract class however you are not catching that error, as you propably intended to.
    The code has been introduced into the new version:
    class XMPMetaParser.java:
    try
                // honor System parsing limits, e.g.
                // System.setProperty("entityExpansionLimit", "10");
                factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
            catch (Exception e)
                // Ignore IllegalArgumentException and ParserConfigurationException
                // in case the configured XML-Parser does not implement the feature.
    The exception is of the type "Error" and thus won't be catched by the "catch (Exception)" block at this point. If you change the following to:
    try
                // honor System parsing limits, e.g.
                // System.setProperty("entityExpansionLimit", "10");
                factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
            catch (Throwable t)
                // Ignore AbstractMethodError, IllegalArgumentException and ParserConfigurationException
                // in case the configured XML-Parser does not implement the feature.
    or to
    try
                // honor System parsing limits, e.g.
                // System.setProperty("entityExpansionLimit", "10");
                factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
            catch(Error e){
                // Ignore AbstractMethodError in case there is no implementation at all
            catch (Exception e)
                // Ignore IllegalArgumentException and ParserConfigurationException
                // in case the configured XML-Parser does not implement the feature.
    Everything is working as aspected again...

  • 4.1.1 SDK Problems with missing xpacket tags in sidecar XMP files

    The current 4.1.1 SDK has problems with sidecar XMP files that don't have the xpacket headers and trailers, i.e:
    <?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?>
    <?xpacket end='w'?>
    is missing. Now, unfortunately Adobe Bridge CS2/CS3 does not export these xpackets in sidecar XMP files.
    The standard, http://www.aiim.org/documents/standards/xmpspecification.pdf, is also very vague about it all:
    ● Write external metadata as though it were embedded and then had the XMP Packets
    extracted and catenated by a postprocessor.
    The grammar is strange(past tense had) and the spec implies that the xpacket should be extracted and again catenated... Someone should review this document and clearly state if xpacket statements should be in sidecar files or not. I suspect myself that they should be there, but the standard is very vague.
    Anyway, there are two places in the SDK code where changes might be needed:
    XMPFiles::Initialize has XMP_Asserts in case the xpacket header/trailer is missing, but the underlying assert is only active in debug builds.
    XMPScanner::PacketMachine::FindNextPacket () also has in its truth table the assumption that the xpackets exist.
    There could be even other places in the code that assumes that the xpacket tags are present in all files, which includes text XMP sidecar files.
    Anyway.
    a) Shouldn't bridge export the xpacket tags? Same with any other application?
    b) If the spec is vague, then the SDK should not assume that the xpacket tags are present.
    Any comments? Has someone already fixed this issue as I suspect a lot of apps using the the XMP SDK would break concerning reading XMP sidecar files? Thx, Kent

    I was able to work around the problem by creating a mapped view of the .xmp file (this creates an array in memory backed by the file on disk, so there's no need to read the file into a separate internal buffer), and constructing the SXMPMeta object directly from the buffer. (The ctor for that class calls ParseFromBuffer, so this is the same thing as was suggested by other messages in this thread.)
    It seems that Adobe needs to do one of these things:
    (1) say that Bridge CS3 has a bug, and agree that Bridge CS3 should include a proper xpacket header when writing xmp sidecar files
    (2) say that the XMP Toolkit has a bug, and that the SDK should be able to parse sidecar files without an xpacket header, and agree to fix the toolkit
    (3) say that Bridge CS3 and the XMP Toolkit behave as expected, but then provide a sequence of steps by which users of the XMP Toolkit are expected to read xmp sidecar files written by Bridge CS3
    Does Bridge CS4 write an xpacket header to the xmp sidecar files?
    Maybe what I could do is create a custom file handler for .xmp sidecar files, so I could use the SXMPFiles for everything, instead of having to special-case .xmp files.
    My needs are pretty modest though, and it might be just as simple to use the MS DOM-based XML parser for load the xmp sidecar file. I bet I could get the data I need (only the "Rating" for now) using a simple XPath expression.
    -Matt

Maybe you are looking for

  • Is there a way to import text into an inDesign layout randomly from multiple word docs?

    i'd like to start out by thanking everyone for the help with the text box or stroke around text/paragraph, the advise has definitely helped.. What i'm wondering now is, is there a way to take multiple docs "wether it be a word doc or an indesign doc"

  • Can't modify time in flash player 9?

    Hi guys, I want use flash for my device GUI.when I install flash player 9 in ubuntu yesterday, I found can not modify system time, I use system cmd change the time to before ,like 10:00 AM change to 09:50 AM,the flash GUI is stop and after 10 minute

  • Migration/conversion of docs (contract, purchase order) from SRM3 to SRM7

    Hi gurus, is there any standard SAP tool available to convert/migrate SRM3 docs to SRM7? Thanks in advance.

  • Please Help Me Swipeing

    Hello every one. iam new to flash as developing. i develop one scrooll thumb xml image gallery. now iam try to convert Touch application . in this i have one problam Regarding swipeing . please any body help me. Here is XML data ("Images.xml") <?xml

  • Forwarding to an exe

    Hi all i have a temp.exe file in WEB-INF folder. from the servlet i want to forward it to this temp.exe so that it can be downloaded. the code snippet is RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/temp.exe"); rd.forward(request, re