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
|