Table of Contents
Validation table column definitions and examples
The files used to make the validation tables for MARC Report are now generally available under
a CC BY-NC-SA 4.0 license;
the suggested attribution statement is:
MARC Report Validation Table (c)1999-2024 by Richard Fritz and Deborah Fritz is licensed under CC BY-NC-SA 4.0
Links to the primary tables follow. These tables are current with version 261 of the program.
NB. If opening these files in Excel, it's default behavior will be to remove leading zeroes.
There should be a pop-up advising of this behavior–Be sure to respond “Don't convert” to the pop-up.
Overview
The validation table format is: one row for each content designator (the latter being any tag, fixed field value, tag indicator value, or subfield value).
There are 15 columns in each row, labelled as follows:
- TAG
- POS
- LEN
- TYPE
- CODE
- IND1
- IND2
- SUBF
- DESC1
- DESC2
- DESC3
- REP
- CAT
- MSG
- EXP
These columns are documented in detail below.
General notes
- The first row for each MARC Tag section in the validation table is dubbed the 'Tag Row'. For a new tag, only the following columns are filled: TAG, DESC1, and REP (POS and LEN are always set to “00” in a Tag Row).
- In the instructions below, the term “empty” means “null”–Do not enter blank spaces in columns said to be “empty”.
- The sort order of the rows in each Tag block is important. The order is alphabetic, with the following exceptions:
- Numbers follow letters (i.e. 'a'-'z' then '0'-'9')
- The fill character |, and the blank space #, precede the letters (i.e. '|', '#', then 'a'-'z')
- This page follows the MARC21 specifications for the leader and fixed fields. Users familiar only with the OCLC display mash-up of these fields may find the following page helpful: https://www.oclc.org/bibformats/en/fixedfield.html
- When adding a row for a fixed field element, columns IND1, IND2, SUBF, and REP must be empty.
- When adding a row for a variable field value:
- if defining an Indicator 1 value, columns IND2, SUBF, and REP are empty
- if defining an Indicator 2 value, columns IND1, SUBF, and REP are empty
- if defining a Subfield value, columns IND1 and IND2 are empty
- Do not enter any Unicode into the table.
About the fixed fields
You will probably notice that there are a great many rows at the beginning of the table for the fixed fields. The reason for this is that many of the referenced content designators have a definiton that is dependent on the type of material being described.
For example, if an 007/01 is coded 'd', it might indicate an atlas, a computer disc, tactile material with no text, a filmslip, a microfilm reel, a drawing, a sound disc, looseleaf text, or a videodisc. Each meaning is dependent on the type of material (typically by a code in 007/00).
To deal with this variability, we decided to repeat each fixed field element for each applicable format or material type. Thus, for the 007, for example, there is a different section in the table–differentiated by the TYPE column–for: Maps, Computer files, Globes, Tactile material, Projected Graphics, and so on; and thus, a number of rows for each possible 007/01 value will appear in each of these sections.
For general instructions on how to activate custom validation in MARC Report, visit this page.
Validation table Columns
There are 15 columns for each row in a MARC Report Validation table.
1. TAG
TAG contains the three-digit MARC TAG. For example, enter “020” and not “20”.
2. POS
POS contains the starting offset/position of a fixed-field element. This must be a two-digit zero-based number.
If not applicable (which will be the default for a variable field) enter “00”.
3. LEN
LEN contains the specified length of a fixed-field element. This must be a two-digit number. For example, enter “01” and not “1”.
If not applicable (which will be the default for a variable field) enter “00”.
4. TYPE
TYPE contains a two-character mnemonic code in a fixed field row.
If not applicable (which will be the default for a variable field), TYPE is empty (but note exceptions below).
For tags 000, 006, 008, TYPE must be one of the following two-letter codes:
BK (i.e. Books) CF (i.e. Computer Files) MP (i.e. Maps) MU (i.e. Music) SE (i.e. Continuing Resources*) MX (i.e. Mixed Materials) VM (i.e. Visual Materials)
*For compatibility reasons, MARC Report requires the TYPE code “SE” be entered instead of “CR”.
For tag 007, TYPE must be one of the following two-letter codes:
MP (i.e. Map) CF (i.e. Electronic resource) GL (i.e. Globe) TM (i.e. Tactile material) PR (i.e. Projected graphic) MC (i.e. Microform) NP (i.e. Nonprojected graphic) MO (i.e. Motion picture) KT (i.e. Kit) NM (i.e. Notated music) RS (i.e. Remote-sensing image) SR (i.e. Sound recording) TX (i.e. Text) VR (i.e. Videorecording) UN (i.e. Unspecified)
Exceptions:
- In the Authorities validation table, TYPE is coded “AU' in every row.
- In the Holdings format validation table, TYPE is coded “HD' in every row except rows for the 007 tag (which follow the bib rules above).
- In the Bibliographic validation table, rows for old/obsolete content designators may have TYPE coded. Ignore these rows.
5. CODE
CODE contains the defined value for a fixed field element. CODE is case-sensitive and thus far has always been entered in lowercase. The number of characters in CODE must equal the value in the corresponding LEN column.
CODE is typically empty for variable fields, but note the following exception.
Exceptions:
CODE values beginning with “$” cause the program to execute non-standard, internal routines on the referred-to data elements. For example, the CODE “$LANG” causes the program to validate the referenced content against the “MARC CODE list for Languages”. “$” CODE values should not be modified or added by the user. (MARC Report will provide an updated method to support user-defined codelist validation–in the meantime, the following page may be helpful: user valuelists ).
6. IND1
IND1 contains a defined value for Indicator 1. Valid values are ”#” and the numbers 0-9 (“#” is used to indicate a single blank space).
IND1 must be empty for a fixed field or control field.
7. IND2
IND2 contains a defined value for Indicator 2. Valid values are “#” and the numbers 0-9 (“#” is used to indicate a single blank space).
IND2 must be empty for a fixed field or control field.
8. SUBF
SUBF contains a defined subfield code. Valid values are a-z (letters must be lowercase), and 0-9. Must be entered in alphabetical order, with numeric subfields (in numeric order) following alphabetic subfields.
SUBF must be empty for a fixed field or control field.
9. DESC1
DESC1 contains the name of the field, as given by LC in the MARC documentation (https://www.loc.gov/marc/).
In MARC Report, DESC1 has always been entered in uppercase 1). DESC1 is repeated in every row with the same TAG.
For example, for each row in the bib table with TAG 504, DESC1 contains:
BIBLIOGRAPHY, ETC. NOTE
10. DESC2
The function of the DESC2 varies according to the type of content designator, but again, the string entered here is always taken from the MARC documentation site cited above. This string is entered in sentence case.
For the Leader and Fixed Fields, DESC2 contains the label assigned to each character position; DESC2 is repeated for each value defined for a character position.
For example, in the rows that enumerate the values defined for Leader position 06, DESC2 contains:
Type of record
For Indicators, DESC2 contains the name of the indicator (“First indicator” or “Second indicator”), optionally follwed by a colon and a description of the function of the indicator. DESC2 is repeated for each value defined for an Indicator.
For example, in rows that enumerate the values defined for Indicator 1 in personal name tags, DESC2 contains:
First indicator: Type of personal name entry element
For Subfields, DESC2 contains the label assigned to the subfield code (without the subfield code itself).
For example, in the row for Tag 100, subfield $a, DESC2 contains:
Personal name
DESC2 is empty in only one case: 'Tag Rows' (i.e., the first row in any Tag's sequence of rows).
11. DESC3
The function of the DESC3 varies according to the type of content designator, but again, the string entered here is always taken from the MARC documentation site cited above. This string is entered in sentence case.
For the Leader and Fixed Fields, DESC3 contains the label assigned to each CODE defined for a position.
For example, the CODE and DESC3 columns for Cataloging Source (008/39) contain:
CODE DESC3 | No attempt to code # National bibliographic agency c Cooperative cataloging program d Other u Unknown
For Indicators, DESC3 contains the label assigned to each value defined for an Indicator.
For example, in rows that enumerate the values defined for Indicator 1 in personal name tags, IND1 and DESC3 contain:
IND1 DESC3 0 Forename 1 Surname 2 Family name
A common occurrence in variable fields is the following (example for Tag 500, columns DESC1, DESC2, and DESC3):
DESC1 DESC2 DESC3 GENERAL NOTE First indicator Undefined; contains a blank (#) GENERAL NOTE Second indicator Undefined; contains a blank (#)
DESC3 is always empty for subfields.
12. REP
For TAG and Subfield rows, the REP column contains “R” if the data element is repeatable, or “N” if it is not repeatable.
REP is empty in all other cases.
13. CAT
CAT contains a one-character 'category' code. At present, only two category codes are recognised: “O”–the data element has been declared Obsolete by LC; “U”–the data element is a user customization (not defined by LC).
CAT is empty in all other cases.
14. MSG
MSG contains a note which MARC Report wiil display in the 'Notes' section during an Edit Session. At present, these notes are supported only when the CAT column is set to a non-empty value. MSG is empty in all other cases. The maximun length for the MSG column is 255 characters.
15. EXP
EXP is not implemented by MARC Report. You may enter a short note here, or leave it blank.
In addition to the documentation above, another good way to learn about the validation table format used by MARC Report is to open a validation table and study it. There are many thousands of rows in the bib table, for example, and they have all been entered in a consistent order and manner.
Examples
Note: The examples that follow below are provided to demonstrate how to change a validation table, but they do not reflect currrent MARC21 standards.
Steps to add a new Tag to the table
To add a new tag, a minimum of new four rows will be needed: one for the “Tag row”, (at least) one for each indicator, and at least one subfield.
For example, let's add a new repeatable Tag 328, named “Publication Characteristics” to the bib table.
Tag row
- Scroll down to the first row with a TAG value greater than “328” (probably “334” after MARC Update #32) and Insert a new row.
- Enter “328” in the TAG column; enter “00” in the POS and LEN columns.
- The TYPE, CODE, IND1, IND2, and SUBF columns must remain empty
- Enter the name of the Tag in uppercase–“PUBLICATION CHARACTERISTICS”–in the DESC1 column
- The DESC2 and DESC3 columns must remain empty.
- Enter “R” in the REP column (if the 328 was defined as non-repeatable, we would enter “N” instead).
Indicator rows
- Insert two new rows (beneath the 328 Tag row added above)
- Again, enter “328” in the TAG column, “00” in the POS and LEN columns, and the name of the Tag (in uppercase) in the DESC1 column.
- In the first new row, enter '#' in the IND1 column, “First indicator” in the DESC2 column, and “Undefined; contains a blank (#)” in the DESC3 column.
- In the second new row, enter '#' in the IND2 column, “Second indicator” in the DESC2 column, and “Undefined; contains a blank (#)” in the DESC3 column.
- The TYPE, CODE, SUBF, and REP 2) columns must remain empty for each indicator row
Subfield rows
- Insert a new row beneath the 328 Second Indicator row added above
- Again, enter “328” in the TAG column, “00” in the POS and LEN columns, and the name of the Tag (in uppercase) in the DESC1 column.
- Enter “a” in the SUBF column, “Publication characteristic term” in the DESC2 column, and “N” (not repeatable) in the REP column.
- The TYPE, CODE, IND1, IND2, and DESC3 columns must remain empty for a subfield row.
When this example is complete, the table rows for the new tag “328” should look like this:
<!– Steps to add a new Indicator 1 value to a variable field; example: Tag 521, Indicator 1 = “5”
- Insert a new row at the appropriate position: locate the Tag “521” section, goto the Ind1 column, and scroll down to the first Ind1 value greater than “5” (or to the end of the Ind1 block if there are no values greater than “5”)–press Insert.
- Enter “334” in the Tag column.
- Enter “00” in the Pos and Len columns.
- Enter “5” in the Ind1 column.
- The Type, Code, Ind2, and Subf columns must remain empty
- Repeat the name of the Tag in the Desc1 column
- Repeat the description of Indicator 1 in the Desc2 column (Eg. “First indicator: Display constant controller”)
- Add the description for Indicator 1 = “5” in the Desc3 column (Eg. “Psychographic characteristic”)
- The Rep column must remain empty.
- Optionally enter a note or definition in the Exp column (this column is not used by MARC Report at present)
Steps to add a new Indicator 2 value to a variable field; example: Tag 650, Indicator 2 = “8”
- Insert a new row at the appropriate position: locate the Tag “650” section, goto the Ind2 column, and scroll down to the first Ind2 value greater than “5” (or to the end of the Ind2 block if there are no values greater than “8”)–press Insert.
- Enter “650” in the Tag column.
- Enter “00” in the Pos and Len columns.
- Enter “8” in the Ind2 column.
- The Type, Code, Ind1, and Subf columns must remain empty
- Repeat the name of the Tag in the Desc1 column
- Repeat the description of Indicator 2 in the Desc2 column (Eg. “Second indicator: Subject heading system/thesaurus”)
- Add the description for Indicator 2 = “8” in the Desc3 column (Eg. “FAST (Faceted Application of Subject Terminology)”)
- The Rep column must remain empty.
- Optionally enter a note or definition in the Exp column (this column is not used by MARC Report at present)
Steps to add a new Subfield value to a variable field; example: Tag 882, Subfield “4”.
- Insert a new row at the appropriate position: locate the Tag “882” section, goto the Subf column, and scroll down to the first Subf value greater than “4” (or to the end of the Subf block if there are no values greater than “4”, remembering the numeric subfields follow alphabetic ones in this table–press Insert.
- Enter “882” in the Tag column.
- Enter “00” in the Pos and Len columns.
- The Type, Code, Ind1, and Ind2 columns must remain empty
- Repeat the name of the Tag in the Desc1 column
- Add the description for Subfield “4” in the Desc2 column (Eg. “Relationship”)
- The Desc3 column should remain empty.
- Enter “R” in the Rep column if the tag is repeatable, or “N” if it is not repeatable.
- Optionally enter a note or definition in the Exp column (this column is not used by MARC Report at present)
To illustrate a table update, let's assume the following case. A Marc Update has just been published that includes the following changes:
Rename Field 348 to: 348 – Notated Music Characteristics (R) Add new subfields $c and $d to field 348 as follows: $c – Form of musical notation term $d – Form of musical notation code Follow these steps to make these changes: * Scroll down until you reach "348" in the "Tag" column * To rename the field, change "FORMAT OF NOTATED MUSIC" to "NOTATED MUSIC CHARACTERISTICS" in the "DESC1" column of each row that begins with "348". Note: by convention, the "DESC1" is always entered in uppercase
–>
Exceptions
There are a few cases not described above, the most notable being the use of strings beginning with “$” in the CODE column.
For example, in the 008, the bib table contains the code $LANG in position 35 for each bib type. These “$” codes instruct the program to validate the corresponding MARC data using a special function3).
These special function designators are not customizable by the end-user.
If there is need to validate a MARC data element against a user-defined list of values, the following wiki page may be useful: user-defined value lists