Print

Print


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