MARC::Schema(3pm) | User Contributed Perl Documentation | MARC::Schema(3pm) |
MARC::Schema - Specification of the MARC21 format
# in Perl use MARC::Schema; my $record = { _id => 'fol05865967', record => [ [ 'LDR', undef, undef, '_', '00661nam 22002538a 4500' ], [ '001', undef, undef, '_', 'fol05865967' ], [ '001', undef, undef, '_', 'field is not repeatable' ], [ '245', '1', '0', 'a', 'Programming Perl /', 'c', 'Larry Wall, Tom Christiansen & Jon Orwant.', 'a', 'subfield is not repeatable', 'x', 'unknown subfield', ], [ '999', undef, undef, '_', 'not a standard field'] ] }; # load default schema my $schema = MARC::Schema->new(); # load custom schema from file my $schema = MARC::Schema->new({ file => share/marc-schema.json }); # load custom schema my $schema = MARC::Schema->new( { fields => { '001' => { label => 'Control Number', repetable => 0 } } } ); my @check = $schema->check($record); # via the command line $ marcvalidate t/camel.mrc $ marcvalidate --schema marc_schema.json t/camel.mrc $ marcvalidate --type XML marc.xml
MARC::Schema defines a set of MARC21 fields and subfields to validate Catmandu::MARC records. A schema is given as hash reference such as:
{ fields => { LDR => { positions => [ { position => '00-04', label => 'Record length' } ], repeatable => 0, }, '001' => { label => 'Control Number', repeatable => 0 } } }
For a more detailed description of the (default) schema see MARC21 structure in JSON <https://pkiraly.github.io/2018/01/28/marc21-in-json/>.
Check whether a given "Catmandu::Importer::MARC" or "MARC::Parser::*" <https://metacpan.org/search?q=%22MARC%3A%3AParser%22> record confirms to the schema and return a list of detected violations. Possible options include:
Errors are given as list of hash references with keys "error", "tag", "type" and "value" of the violated field. "error" contains a human-readable error message for each violated field and/or subfield.
Check whether a MARC21 field confirms to the schema. Use same options as method "check".
Johann Rolschewski <jorol@cpan.org>
Patrick Hochstenbach
Steve Rogerson
Copyright 2018- Johann Rolschewski
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Catmandu::Validator
JSON::Schema
PICA::Schema
MARC::Lint
MARC::Schema uses the MARC21 schema developed by Peter Kiraly <https://github.com/pkiraly> as default. For more information see "Metadata assessment for MARC records" <https://github.com/pkiraly/metadata-qa-marc> and "MARC21 structure in JSON" <https://pkiraly.github.io/2018/01/28/marc21-in-json/>.
2023-03-12 | perl v5.36.0 |