File: README

package info (click to toggle)
libmarc-schema-perl 0.16-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,428 kB
  • sloc: perl: 187; makefile: 7
file content (127 lines) | stat: -rw-r--r-- 3,535 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
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
    <https://pkiraly.github.io/2018/01/28/marc21-in-json/>.

METHODS

 check( $record [, %options ] )

    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:

    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 <jorol@cpan.org>

CONTRIBUTORS

    Patrick Hochstenbach

    Steve Rogerson

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
    <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/>.