The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

  Catmandu::Importer::SRU - Package that imports SRU data

SYNOPSIS

  use Catmandu::Importer::SRU;

  my %attrs = (
    base => 'http://www.unicat.be/sru',
    query => '(isbn=0855275103 or isbn=3110035170 or isbn=9010017362 or isbn=9014026188)',
    recordSchema => 'marcxml',
    parser => 'marcxml'
  );

  my $importer = Catmandu::Importer::SRU->new(%attrs);

  my $count = $importer->each(sub {
        my $schema   = $record->{recordSchema};
        my $packing  = $record->{recordPacking};
        my $position = $record->{recordPosition};
        my $data     = $record->{recordData};
    # ...
  });

  # Using Catmandu::Importer::SRU::Package::marcxml, included in this release

  my $importer = Catmandu::Importer::SRU->new(
    base => 'http://www.unicat.be/sru',
    query => '(isbn=0855275103 or isbn=3110035170 or isbn=9010017362 or isbn=9014026188)',
    recordSchema => 'marcxml' ,
    parser => 'marcxml' ,
  );

  # Using a homemade parser
  
  my $importer = Catmandu::Importer::SRU->new(
    base => 'http://www.unicat.be/sru',
    query => '(isbn=0855275103 or isbn=3110035170 or isbn=9010017362 or isbn=9014026188)',
    recordSchema => 'marcxml' ,
    parser => MyParser->new , # or parser => '+MyParser'
  );

CONFIGURATION

base

base URL of the SRU server (required)

query

CQL query (required)

recordSchema

set to dc by default

sortkeys

optional sorting

operation

set to searchRetrieve by default

version

set to 1.1 by default.

userAgent

HTTP user agent, set to Mozilla/5.0 by default.

furl

Instance of Furl or compatible class to fetch URLs with.

parser

Controls how records are parsed before importing. The following options are possible:

  • Instance of a Perl package that implements a parse subroutine. See the default value Catmandu::Importer::SRU::Parser for an example.

  • Name of a Perl package that implements a parse subroutine. The name must be prepended by + or it prefixed with Catmandu::Importer::SRU::Parser::. For instance marcxml will create a Catmandu::Importer::SRU::Parser::marcxml.

  • Function reference that gets passed the unparsed record.

METHODS

All methods of Catmandu::Importer and by this Catmandu::Iterable are inherited. In addition the following methods are provided:

url

Return the current SRU request URL (useful for debugging).

SEE ALSO

Catmandu::Importer, Catmandu::Iterable, http://www.loc.gov/standards/sru/