3.2.2. Табличное представление блоков информации

3.2.2. Табличное представление блоков информации

Строки каждой таблицы, описывающей блоки информации, определяют реквизиты, которые при переходе к стандартному описанию с использованием металингвистических конструкций встречались бы в этом описании в одном из представлений: как обязательный, как необязательный, как условно-обязательный или как предписанный реквизит.

Обязательный реквизит - это реквизит, который должен обязательно присутствовать в файле.

Необязательный реквизит - это реквизит, который может как присутствовать, так и отсутствовать в файле.

Условно-обязательный реквизит - это реквизит, присутствие которого в файле обусловлено значениями, наличием или отсутствием других реквизитов этого же файла. В случае выполнения условия присутствия (УП) условно-обязательный реквизит по всем своим свойствам приравнивается к обязательному, а в случае невыполнения - отсутствует.

Предписанный реквизит - это реквизит, код которого должен обязательно присутствовать в файле, в то время как значения может и не быть.

Последовательность реквизитов в блоке совпадает с их последовательностью в табличном представлении блока:

    ┌──────────────────────────────┐
    │             Блок             │ <блок>::=
    ├──────────────────────────────┤
    │Строка, описывающая реквизит 1│ <представление реквизита 1>
    ├──────────────────────────────┤
    │             ...              │ ...
    ├──────────────────────────────┤
    │Строка, описывающая реквизит i│ <представление реквизита i>
    ├──────────────────────────────┤
    │             ...              │ ...
    ├──────────────────────────────┤
    │Строка, описывающая реквизит N│ <представление реквизита N>
    └──────────────────────────────┘

При этом для любого i (1<=i<=N, N - число строк в разделе таблицы) представление реквизита определяется следующим образом:

    <представление реквизита i>::=<обязательный реквизит i>|
                                  <необязательный реквизит i>|
                                  <условно-обязательный реквизит i>|
                                  <предписанный реквизит i>
    <обязательный реквизит i>::=<реквизит i>
    <необязательный реквизит i>::=[<реквизит i>]
    <условно-обязательный реквизит i>::=<реквизит i>|?УПi[<реквизит i>]
    <предписанный реквизит i>::=<реквизит i>