NAME
MARC::Schema - Specification of the MARC21 format
SYNOPSIS
# 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
DESCRIPTION
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
.
METHODS
check( $record [, %options ] )
Check whether a given "Catmandu::Importer::MARC" or "MARC::Parser::*"
record confirms
to the schema and return a list of detected violations. Possible
options include:
ignore_unknown_fields
Don't report fields not included in the schema.
ignore_unknown_subfields
Don't report subfields not included in the schema.
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_field( $field [, %options ] )
Check whether a MARC21 field confirms to the schema. Use same options
as method check.
AUTHOR
Johann Rolschewski
CONTRIBUTORS
Patrick Hochstenbach
COPYRIGHT
Copyright 2018- Johann Rolschewski
LICENSE
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
SEE ALSO
Catmandu::Validator
JSON::Schema
PICA::Schema
MARC::Lint
ACKNOWLEDGEMENT
MARC::Schema uses the MARC21 schema developed by P�ter Kir�ly
as default. For more information see
"Metadata assessment for MARC records"
and "MARC21 structure in
JSON" .