On Thu, December 13, 2007 8:18 am, Eric Lease Morgan wrote: ... > Put another way, if I want to use repository using > NET::OAI::Harvester to read repository data in a form other than DC > will I need to write an additional module such as > NET::OAI::Record::MARCXML? I don't know if this is the only way to do it, but that is how I use NET::OAI::Harvester to handle metadata in DIDL that I get out of a DSpace repository via a custom crosswalk plugin. The harvest script simply invokes the Harvester like this: my $rec = $harvester->getRecord('identifier' => $oaiid, 'metadataPrefix' => 'oai_didl', 'metadataHandler' => 'DOC_DIDL', 'set' => $set); DOC_DIDL includes the SAX event handlers to build a hash of metadata and some methods to retrieve that metadata used by the harvest script. Writing DOC_DIDL.pm was a little messy and specific to the way we encode structural metadata in DIDL, mostly because I was flattening an hierarchical schema into a hash. Obviously you'll need a completely different module but if you want to see this one just to see what is involved I can send it to you off-list. -Don