Record structure
Every record of an exchange unit consists of two parts: the record label and the variable data fields. There is one record for every item held.
### 00001nM2.01000024 h
100 Ende, Michael
081 2000/0213
083 gelb
084 1140360|Kath. öffentl. Bücherei St. Jakobus, Haigerloch
085 00099901|Borromäusverein, Bonn|20001001|Quote
331 Momo oder Die seltsame Geschichte von den Zeitdieben.
335 Ein Märchen-Roman
359 Michael Ende
410 München
412 Heyne
425 1996
433 285 S.
544 Ende
700 K
700sFantastisches
700t11
750cEin Kind kämpft gegen eine geheime Organisation, die den Menschen Zeit stiehlt.
The first line is the record label, all the others are variable data fields. Colour is used here for the field number, the indicator and the subfield separators; the pale boxes are blanks. The record itself holds nothing but the characters – copy the block out and you get it back character for character.
Record label#
Every record begins with the record label. It consists of a sequence of data elements starting at record position 0; it holds general processing information and positions that characterise the function and content of the record. The record label is mandatory.
The data elements have a fixed length and are identified by their position within the record label. In the format description the data elements are described in ascending order of their character position.
All data elements must be filled. Where no information can be given for an individual data element, a blank is generally used, unless a different rule has been laid down for that element.
The record label is a uniform 24 characters long across all formats.
| Position | In the example | Meaning |
|---|---|---|
| 0 - 4 | 00001 |
sequential number; decimal; right-aligned; leading zeros |
| 5 | n |
constant |
| 6 - 9 | M2.0 |
constant |
| 10 | 1 |
constant |
| 11 | 0 |
constant |
| 12 - 16 | 00024 |
constant |
| 17 | blank | character set of the file, see below |
| 18 - 22 | five blanks | kept free for later definitions |
| 23 | h |
constant |
In place of the field designation stands the character sequence "### ". Positions 0 - 4 hold the sequential number of the record within the exchange unit. The field terminator consists of the two ASCII characters 13 and 10, that is CR LF.
Example:
"### 00001nM2.01000024 h" + CRLF
Character set#
Position 17 names the character set the file is written in. MAB2 leaves positions 17 to 22 of the record label unused; SBC takes one of them.
| Position 17 | Character set |
|---|---|
| blank | CP850 (DOS) — the character set used so far |
w |
Windows-1252 |
u |
UTF-8 |
A blank therefore still means CP850: files following the previous definition remain
valid, nothing has to be changed. Further letters — for instance x for an encoding
named elsewhere — are reserved for later extensions.
The same rule applies to positions 18 to 22: they stay blank for now, and a blank there
will always mean the previous behaviour. Later definitions can thus be added without
touching the length of the record label — that length is stated in the label itself, as
00024.
A file with an unknown value at position 17 should be rejected rather than read according to the previous definition: wrongly decoded umlauts only show up once they are already in the database.
Variable data fields#
The fields of variable length follow the record label. They hold control information and the bibliographic elements of the record.
| Part | Length | In the line 100 Ende, Michael |
|---|---|---|
| field number | 3 bytes | 100 |
| indicator | 1 byte | blank |
| data | variable length | Ende, Michael |
| field terminator | 2 bytes | CR LF |
The field number is given in decimal, except for the holdings and local data fields. Those begin with a letter followed by a two-digit number.
The indicator is represented by a blank or a lower-case letter after the field number.
Every field is closed with the field terminator, which consists of the two ASCII characters 13 and 10, that is CR LF:
"083 gelb" + CRLF
Within the variable part of a record the order of the fields is not prescribed. It is advisable, however, to give the fields of a record in ascending order.
Examples:
081 2000/0213
084 1140360|Kath. öffentl. Bücherei St. Jakobus, Haigerloch
085 00099901|Borromäusverein, Bonn|20001001|Quote
700 K
700sFantastisches
700t11
Fields 084 and 085 show subfields, field 700 shows the same field with three different indicators.