1.1 Описание элементов структуры
Для описания формата электронных документов используются следующие термины.
Компонент - одна из следующих составных частей (реквизитов) описания: "элемент" | "атрибут" | "блок" | "группа" | "выбор".
Элемент - компонент описания, используемый для представления простых (не являющихся составными) реквизитов электронных документов (например: строковые значения, форматированные строковые значения, даты и т.п.).
Атрибут - компонент описания, используемый для представления вспомогательных характеристик (свойств) электронных документов или их составных частей. Атрибут не используется самостоятельно - он может быть лишь частью элементов или блоков элементов.
Блок [элементов] - компонент описания, используемый для представления составных (структурированных) реквизитов электронных документов (например, адрес, ФИО и т.п.). Блок может состоять из двух и более компонентов типа "Элемент" или "Блок", а также в качестве своих характеристик может содержать 0 или более компонентов типа "Атрибут". Каждый блок имеет уникальное имя. При формировании документа в электронной форме содержимое описываемого блока включается в состав XML-тэга с идентичным наименованием как содержимое этого тэга.
Группа [элементов] - компонент описания, используемый для представления повторяющейся последовательности (группы) элементов и (или) блоков элементов. Группа может состоять из двух и более компонентов типа "Элемент" или "Блок".
Выбор - компонент описания, используемый для представления альтернативного выбора между двумя и более элементами (блоками элементов). Выбор подразумевает использование только одного компонента описания из перечня указанных альтернатив.
Тип [элемента, блока] - способ описания структуры компонента, используемый для отображения унифицированных, неоднократно используемых в описании формата компонентов. Каждый тип имеет уникальное имя, как правило, начинающееся со слова "Тип...", например ТипФИО. Типы могут быть стандартными, простыми и составными.
Стандартный тип - один из типов, поименованных в спецификации W3C XML Schema (http://www.w3.Org/TR/xmlschema-2/#built-in-datatypes). Например, к стандартным относятся типы "строка" (xs:string), "дата" (xs:date), "число" (xs:decimal, xs:integer, xs:positiveInteger), "год" (xs:gYear), "да/нет" (xs:boolean) и тому подобные.
Простой тип - тип, отражающий структуру простых (скалярных) реквизитов электронных документов, то есть элементов. Простой тип может быть либо стандартным типом, либо основывается на ограничении области значений стандартного типа, либо относится к перечисленным типам.
К простым типам также относятся перечисления. Например, простыми типами являются:
- базовый тип "строка" с ограничениями по длине и структуре строки;
- базовый тип "дата" с ограничением нижней и/или верхней границей дат;
- перечисленный тип, например, кодов значений с указанием множества этих значений.
Составной тип - тип, отражающий структуру составных компонентов электронных документов, то есть блоков.
1.2. Простые типы
Описание простых типов представляется в виде таблицы, содержащей графы "Наименование", "Стандартный тип", "Ограничения на тип", "Описание".
Графа "Наименование" таблицы используется для описания наименования простого типа.
Графа "Стандартный тип" таблицы используется для описания имени стандартного типа, на котором основан простой тип, путем наложения ограничений на область принимаемых стандартным типом значений.
Графа "Ограничения на тип" таблицы используется для описания применяемых ограничений на область принимаемых значений ограничиваемого типа.
Графа "Описание" таблицы используется для текстового описания простого типа, поясняющего его назначение.
1.3. Составные типы, блоки и группы [элементов]
Описание составных типов, блоков и групп представляется в виде таблицы, содержащей графы "Позиция", "Компонент", "Представление", "Тип", "Обязательность", "Ограничения (расширение)", "Описание".
Графа "Позиция" используется для описания иерархического номера, отражающего положение элемента в группе, блоке или составном типе. Если номер выделен фигурными скобками (например: {1},{2}), то порядок следования таких элементов в составе вышестоящего блока (составного типа данных) не важен.