GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
HTTP::OAI::Repository(3) User Contributed Perl Documentation HTTP::OAI::Repository(3)

HTTP::OAI::Repository - Documentation for building an OAI compliant repository using OAI-PERL

Using the OAI-PERL library in a repository context requires the user to build the OAI responses to be sent to OAI harvesters.

        use HTTP::OAI::Harvester;
        use HTTP::OAI::Metadata::OAI_DC;
        use XML::SAX::Writer;
        use XML::LibXML;
        # (all of these options _must_ be supplied to comply with the OAI protocol)
        # (protocolVersion and responseDate both have sensible defaults)
        my $r = new HTTP::OAI::Identify(
                baseURL=>'http://yourhost/cgi/oai',
                adminEmail=>'youremail@yourhost',
                repositoryName=>'agoodname',
                requestURL=>self_url()
        );
        # Include a description (an XML::LibXML Dom object)
        $r->description(new HTTP::OAI::Metadata(dom=>$dom));
        my $r = HTTP::OAI::Record->new(
                header=>HTTP::OAI::Header->new(
                        identifier=>'oai:myrepo:10',
                        datestamp=>'2004-10-01'
                        ),
                metadata=>HTTP::OAI::Metadata::OAI_DC->new(
                        dc=>{title=>['Hello, World!'],description=>['My Record']}
                        )
        );
        $r->about(HTTP::OAI::Metadata->new(dom=>$dom));
        my $output;
        my $w = XML::SAX::Writer->new(Output=>\$output);
        my $driver = HTTP::OAI::SAX::Driver->new(
                        Handler => my $builder = XML::LibXML::SAX::Builder->new()
                );
        $driver->start_oai_pmh();
        $r->set_handler($w);
        $r->generate($driver);
        $driver->end_oai_pmh();
        my $xml = $builder->result;

The validation scripts included in this module provide the repository admin with a number of tools for helping with being OAI compliant, however they can not be exhaustive in themselves.

$r = HTTP::OAI::Repository::validate_request(%paramlist)
$r = HTTP::OAI::Repository::validate_request_2_0(%paramlist)
These functions, exported by the Repository module, validate an OAI request against the protocol requirements. Returns an HTTP::Response object, with the code set to 200 if the request is well-formed, or an error code and the message set.

e.g:

        my $r = validate_request(%paramlist);
        print header(-status=>$r->code.' '.$r->message),
                $r->error_as_HTML;
    

Note that validate_request attempts to be as strict to the Protocol as possible.

$b = HTTP::OAI::Repository::validate_date($date)
$b = HTTP::OAI::Repository::validate_metadataPrefix($mdp)
$b = HTTP::OAI::Repository::validate_responseDate($date)
$b = HTTP::OAI::Repository::validate_setSpec($set)
These functions, exported by the Repository module, validate the given type of OAI data. Returns true if the given value is sane, false otherwise.

See the bin/gateway.pl for an example implementation (it's actually for creating a static repository gateway, but you get the idea!).

2022-09-13 perl v5.40.2

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.