NAME

Catmandu::Validator::MARC - Validate MARC records against a MARC21 Schema

SYNOPSIS

In Perl code:

use Catmandu::Validator::MARC;
Catmandu::Validator::MARC;
use DDP;
    
# load default MARC schema
my $validator = Catmandu::Validator::MARC->new();

# ... or load custom MARC schema
my $validator = Catmandu::Validator::MARC->new( schema => 'schema.json' );

my $importer = Catmandu::Importer::MARC->new(
    file => 't/camel.mrc',
    type => "ISO"
);

$importer->each( sub {
    my $record = shift;
    unless($validator->validate($record)){
        p $_ for @{$validator->last_errors()};
    }
});

In Catmandu Fix language:

# reject all items not conforming to the default MARC schema
select valid(., MARC)
# reject all items not conforming to a custom MARC schema
select valid(., MARC, schema: 'schema.json')

DESCRIPTION

This Catmandu::Validator can be used to check MARC records against an MARC21 schema. For more information see MARC::Schema and "MARC21 structure in JSON".

See also Catmandu::Fix::validate, and Catmandu::Fix::Condition::valid for usage of validators in Catmandu Fix language.

CONFIGURATION

schema

MARC Schema given as filename (JSON) or instance of MARC::Schema.

ignore_unknown_fields

Don't report fields not included in the schema.

ignore_unknown_subfields

Don't report subfields not included in the schema.