The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

Changes for version 1.20

  • additional recordHandler:
    • a metadataHandler will see only the (single) subelement of the OAI metadata element (so for an deleted record it might never be invoced at all)
    • a recordHandler will see the OAI record element and its subelements
  • Therefore a metadataHandler will now be confined to the metadata fragment(s) of the response, and the new recordHandler approximates the old behavior of ListRecords, however OAI-PMH:identifier and OAI-PMH:datestamp will now be properly encapsulated within their OAI-PMH:header element.
  • Additionally, two new methods responseDate() and request() allow access to the corresponding top-level OAI-PMH elements in all response types. A SAX filter of class Net::OAI::Record::DocumentHelper may be used to inject start_document and end_document events into the chain if they are needed.
  • As a temporary measure, you may set $Net::OAI::Harvester::OLDmetadataHandler =1 to change the behavior of handlers passed as "metadataHandler" into that of a recordHandler.

Changes for version 1.20

  • !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! INCOMPATIBLE CHANGE introduced with version 1.20 !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  • Up to version 1.15 the metadataHandler was inconsistently fed with input:
    • GetRecord exposed the almost complete XML response to the Handler (including start_document/end_document events)
    • ListRecords exposed the (OAI)record element (header, metadata and optional about containers) but did not propagate start_document or end_document events.
  • In both cases the events for the header tags itself and for the optional setSpec subelements had not been forwarded

Changes for version 1.16_12

  • dealing with CPANTS Kwalitee issues, esp. version number mess
  • new filter class Net::OAI::Record::DocumentHelper for tweaking

Changes for version 1.16_11

  • minor cleanup

Changes for version 1.16_10

  • renamed alldata() method for accessing recordHandler results to recorddata()
  • better propagation of namespace prefix mapping events
  • Net::OAI::NamespaceFilter with a result() method
  • Net::OAI::NamespaceFilter tested with XML::SAX::Writer
  • AUTHOR formatting

Changes for version 1.16_09

  • Net::OAI::NamespaceFilter as kind of generic metadata handler
  • Queries are now constructed basing on a copy of the Harvester's baseURL
  • pass parameters to URI->query_form() more reproducably, (esp. "verb" should now always be first to accommodate some allegedly broken repositories)
  • temporary? tests for correctness of LWP operations

Changes for version 1.16_07

  • added new methods: response(), responseDate(), error()
  • Smoke still tests failed on 'Bad Host' tests (wrong error codes induced by HTTP proxies?)
  • aligned behavior of metadataHandler for listRecords() and getRecord()
  • introducing alternative recordHandler for listRecords() and getRecord()
  • removed erroneous resumptionToken handling for identify()

Changes for version 1.16_04 - 2012-12-07

  • consider HTTP proxies in design of t/003.error.t
  • 'Bad Host' tests failing b/c error code 500 is not the expected code 404 (due to some recent change in LWP)?

Changes for version 1.16_01 - 2012-04-02

  • Modules were not namespace aware.
  • Add HTTPRetryAfter() method (catches HTTP Retry-After header)
  • Check responses for Content-Type and charset before parsing
  • Net::OAI::Header handed up (empty) header elements and other stuff to the request's metadataHandler
  • SKIP tests when HTTP errors are encountered


list metadataformats in an OAI-PMH archive
list records in an OAI-PMH archive
list sets in an OAI-PMH archive


A base class for all OAI-PMH responses
OAI-PMH errors.
The results of a GetRecord OAI-PMH verb.
A package for harvesting metadata using OAI-PMH
Results of the Identify OAI-PMH verb.
Results of the ListIdentifiers OAI-PMH verb.
Results of the ListMetadataFormats OAI-PMH verb.
Results of the ListRecords OAI-PMH verb.
The results of the ListSets OAI-PMH verb.
An OAI-PMH record.
filter class for fine tuning document events and collecting processing results
class for record header representation
general filter class based on namespace URIs
class for baseline Dublin Core support
An OAI-PMH resumption token.