### Validation Rules

BWF MetaEdit incorporates various set of rules which may be enforced or disabled while editing metadata. For instance data entry for BEXT Coding History may be constrained to follow EBU Technical Recommendation R98-1999 or, if these rules are disabled, the data entry can be performed within one large text field (as many audio applications do).
BWF MetaEdit responds to rules and recommendations outlined by EBU, Microsoft, and the Federal Agencies Digitalization Guidelines Initiative in order to warn or prevent the user from entering metadata that does not comply with any validation rules. These rules may be disabled as needed but are recommended in order to facilitate the generation of standardized files. For each set of validation rules, BWF MetaEdit performs the following tests and displays any existing embedded metadata or changes in red if they do not follow the enabled rules or green if the changed value is acceptable to the selected rules.

### BWF (EBU Technical Specification 3285) Requirements and Recommendations

See EBU Technical Specification 3285.

#### Requirements

- OriginationDate: Ten ASCII characters. The format is "yyyy-mm-dd" (year-month-day); Year is defined from 0000 to 9999; Month is define [sic] from 1 to 12; Day is defined from 1 to 28,29,30 or 31.

The following rules may not be disabled:

- The Description field must not exceed 256 bytes of ASCII characters.
- The Originator field must not exceed 32 bytes of ASCII characters.
- The OriginatorReference field must not exceed 32 bytes of ASCII characters.
- The OriginationDate field must not exceed 10 bytes of ASCII characters.
- The OriginationTime field must not exceed 8 bytes of ASCII characters.
- The TimeReference field must not exceed 8 bytes, stored as a 64 bit value.
- The BextVersion field must either be '0' or '1' (stored as 0x0000 or 0x0001).
- The UMID field must not exceed 64 bytes.

#### Recommendations

OriginationDate: The separator between the items can be anything but it is recommended that one of the following characters is used hyphen, underscore, colon, space, or stop.

### BWF OriginatorReference (R99-1999) recommendations

see EBU Technical Recommendation R99-1999. These rules pertain specifically to the formatting of originatorReference.

- OriginatorReference must be 32 characters long.
- Characters 0-1 (country code) must be between A and Z. See ISO 3166 Country Codes [note: is there a declaration that ISO 3166 must be expressed as uppercase?]
- Characters 2-4 (facility code) "shall be a three-character code consisting of uppercase alphabetic or numeric characters (i.e.: A-Z, 0-9) in any acceptable combination (see page 6 of EBU Technical Specification 3279)
- Characters 5-16 (serial number) any ASCII characters
- Characters 17-22 (OriginationTime) should be a copy of OriginationTime without delimiters. Follow same validation rules as OriginationTime (ie 00-23 and 00-59)
- Characters 23-31 (random) no rules

### BWF Coding History (EBU Technical Specification R98-1999) Recommendations

See EBU Technical Specification R98-1999.

- The Coding Algorithm must be prefaced with "A=" and be either ANALOGUE, PCM, MPEG1L1, MPEG1L2, MPEG1L3, MPEG2L1, MPEG2L2, or MPEG2L3.
- The Sampling Frequency must be prefaced with "F=" either 11000, 22050, 24000, 32000, 44100, or 48000.
- The Bit Rate must be prefaced with "B=" either 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256, 320, 352, 384, 416, or 448.
- The Word Length must be prefaced with "W=" either 8, 12, 14, 16, 18, 20, 22, 24, or 32.
- The Mode must be prefaced with "M=" either mono, stereo, dual-mono, or joint-stereo.
- The Text (free string) must be prefaced with "T=" and contain no commas (ASCII 0x2C).
- Expressions of Coding Algorithm, Sampling Frequency, Bit Rate, Word Length, Mode and Text String must be separated with a single comma (ASCII 0x2C).
- Each row must be terminated by CR/LF.
- The Bit Rate value may only be utilized if the Coding Algorithm states MPEG encoding.
- The Coding History must not contain any characters that are not referenced by one of the other rules above.

### INFO (Microsoft definition)

#### Requirements

ICMT: The ICMT field must not contain line breaks.

#### Recommendations

ICRD: The ICRD field must be in YYYY, YYYY-MM, YYYY-MM-DD format or initiate with a YYYY-MM-DD formatted string and then include additional free text. IDIT: The digitization time is contained in an ASCII string which contains exactly 26 characters and is in the format "Wed Jan 02 02:03:55 1990\n\0"

### Federal Agencies Digital Guidelines Initative recommendations

- If LIST-INFO and BEXT chunks are present then the value for IARL must equal the BEXT value for description. When the FADGI set of rules are enabled then edits to the 'Originator' field in the 'Core' table will also edit the IARL field.
- Description: The BEXT value for description must not be empty.
- Originator: The BEXT value for originator may not be empty and must be at least four characters long. The BEXT value for originator must start with two capital letters followed by a space.
- OriginatorReference: The BEXT value for OriginatorReference must not be empty.
- OriginationDate: The FADGI recommendations overrule the BWF requirements for the BEXT value for originationDate. The originationDate does not need to contain 10 characters, but may utilize YYYY, YYYY-MM, or YYYY-MM-DD format.
- OriginationTime: The FADGI recommendations overrule the BWF requirements for the BEXT value for originationTime. The originationTime does not need to contain 8 characters, but may utilize HH, HH-MM, or HH-MM-SS format.
- IARL: If the INFO-LIST chunk is used, IARL must not be empty and equal the value of the BEXT originator field.
- ICRD: If the INFO-LIST chunk is used, ICRD must follow ISO 8601

### Inheritance of Rules

Use of the FADGI recommendations assumes the use of BWF recommendations. Use of the BWF recommendations assumes the use of BWF requirements. Use of the Microsoft recommendations assumes the use of Microsoft requirements.