3.2.1. Понятия и обозначения

3.2.1. Понятия и обозначения

I. При описании синтаксиса сообщения и его элементов используются следующие металингвистические конструкции:

::= - метасимвол, означающий "есть по определению";

<> - метасимволы, используемые для выделения элементов металингвистической структуры;

| - метасимвол, означающий возможность выбора среди нескольких вариантов значений элемента металингвистической структуры;

[] - метасимволы, означающие необязательность элемента металингвистической структуры;

{} - метасимволы, означающие использование металингвистической структуры один и более раз.

К числу синтаксических ограничений относятся также ряд дополнительных требований к непротиворечивости представленной в файле информации. Все дополнительные требования сформулированы в п. 3.2.

Например, при использовании метасимвола "|" для описания нескольких возможных вариантов структуры файла могут быть указаны условия, в случае выполнения которых правильным является единственный вариант. Эти условия называются условиями выбора и могут быть проверены на основе данных, присутствующей в файле (без привлечения дополнительных источников информации).

В таких случаях используются обозначения:

    <структура>::=<вариант1>|?УсловиеВыбора<вариант2>

Если условие "УсловиеВыбора" выполнено, то <структура> принимает значение <вариант1>, иначе - <вариант2>.

II. При описании синтаксиса сообщения используются следующие основные понятия.

    <слово>::=<число>|<дата>|<текст>|<код>|<специальное слово>|
      <пустое выражение>
    <словосочетание>::=<слово1>,<слово1>|<слово1>,<словосочетание>
    <слово1>::=<число>|<дата>|<текст1>|<текст2>|<код>

Текст (<текст>) представляет собой непустую последовательность символов, в качестве которых используются прописные (заглавные) русские и латинские буквы, цифры, а также любые другие символы таблицы ASCII, за исключением символов "возврат каретки" и "перевод строки" (коды ASCII соответственно 13 и 10). Первый символ текста должен быть отличен от пробела. В том случае, когда текстовое значение встречается в составе словосочетания, возможны дополнительные ограничения на вид текста. Для выделения этих возможностей используются обозначения <текст1>, <текст2>.

Число состоит только из цифр (в том числе и с лидирующими нулями), причем может включать десятичную точку и знак "-" (минус) для отрицательных чисел.

Дата представляется в виде <день>.<месяц>.<год>, где <день> - две цифры, соответствующие номеру дня в месяце, <месяц> - две цифры, соответствующие номеру месяца в году, <год> - четыре цифры года.

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

<русская буква> - прописная русская буква

<латинская буква> - прописная латинская буква

<ц> - цифра

<пробел> - символ пробела

<другой символ> - символ, имеющий код ASCII, отличный от 13 и 10, и не являющийся ни цифрой, ни буквой, ни пробелом

<пустое выражение> - выражение, не содержащее ни одного символа

    <буква>::=<русская буква>|<латинская буква>
    <символ>::=<буква>|<ц>|<пробел>|<другой символ>
    <текст>::=(<буква>|<ц>|<другой символ>)[{<символ>}]|
    <текст1>::=((<буква>|<ц>)[{<буква>|<ц>|<пробел>|-|/|_|.|(|)}])|
               <пустое выражение>
    <текст2>::=(<буква>[{<буква>|<пробел>|-}])|
      <пустое выражение>
    <число>::=[-]{<ц>}[.{<ц>}]|[-].{<ц>}
    <дата>::=<день>.<месяц>.<год>
    <год>::=<ц><ц><ц><ц>
    <месяц>::=01|02|03|04|05|06|07|08|09|10|11|12

<день>::=<ц><ц>, принимает значения от 01 до 28, 29, 30 или 31 - в зависимости от значений <месяц> и <год>;

<часы>::=<ц><ц> - принимают значения от 00 до 23;

<минуты>::=<ц><ц> - принимают значения от 00 до 59;

<секунды>::=<ц><ц> - принимают значения от 00 до 59.

III. При описании синтаксиса сообщения используются следующие некоторые специальные виды слов, используемых в качестве значений реквизитов.

    <специальное слово>::=<идентификатор файла>|
                          <идентификатор отправителя>|
                          <идентификатор документа>|
                          <ИННЮЛ>|<КПП>|<ИННИП>|<ОГРН>
    <идентификатор файла>::=<идентификатор отправителя><год><месяц>
                            <день><часы><минуты><секунды>
    <идентификатор документа>::=<идентификатор отправителя><год>
                                <номер документа>
    <номер документа>::=<8ц>
    <идентификатор отправителя>::=<идентификатор отправителя ЮЛ>|
                                  <идентификатор отправителя ИП>|
                                  <идентификатор отправителя ИМНС>
    <идентификатор отправителя ЮЛ>::=<ИННЮЛ><2*><КПП>|
    <идентификатор отправителя ИП>::=<ИННИП><9*>
    <идентификатор отправителя ИМНС>::=<4ц><17*>
    <ИННЮЛ>::=<10ц>
    <КПП>::=<9ц>
    <ИННИП>::=<12ц>
    <ОГРН>::=<13ц>

<2*>, <9*>, <17*> и т.п. - последовательности из соответствующего числа подряд идущих символов *, например <2*>::=**.

<4ц>, <8ц>, <9ц>, <10ц>, <12ц> и т.п. - последовательности из соответствующего числа подряд идущих цифр (<ц>).