7.2 Prohibited Fields

The inverse of %mandatory is %prohibit. Prohibited fields may not occur in any record of the given type. The usage is:

%prohibit: field1 field2 ... fieldN

The field names are separated by one or more blank characters.

Fields listed in a %prohibit entry are forbidden; i.e. no field with this name should be present in any record of this kind. Again, records violating this restriction are invalid.

Several %prohibit fields can appear in the same record descriptor. The set of prohibited fields is the union of all the entries. For example, in the following database both Id and id are prohibited:

%rec: Entry
%prohibit: Id
%prohibit: id

One possible use case for prohibited fields arises when some field name is reserved for some future use. For example, if we were organizing a sports competition, we would want competitors to register before the event. However a competitor’s result should not and cannot be entered before the competition takes place. Initially then, we would change the record descriptor as follows:

%rec: Contact
%mandatory: Name
%prohibit: result

At the start of the event, the %prohibit line can be deleted, to allow results to be entered.