Типы данных, используемы
для передачи документов, делятся на два вида:
-
Простые типы данных
-
Составные типы данных
2.1. Простые типы данных
Простые типы данных используется для определения представления и допустимых значений одного реквизита документа (поля структуры данных). Простым типа данных форматов документов соответствуют типа данных XSD-схемы, описанные элементом simpleType.
Каждый простой тип данных содержит ограничения на множество возможных значений поля данных. При проектировании сложных структур данных для типов полей используются только простые типы данных,описанные в настоящем документе.
Необходимость введения ограничения связана с тем, что для хранения документов в базе данных используются типы данных СУБД, которые однозначно не соответствуют базовым типам данных XML. Например, для эффективного хранения и поиска строковых данных в базе все строки должны иметь установленный максимальный размер.
Для определённых типов данных и полей структур данных возможно наложение ограничений на значение, которое невозможно формально описать в XSD-схеме структуры данных. В этом случае данные об установленных ограничениях приводится словесной форме в описании типа или поля данных.
При нарушении ограничений на значения полей данных, установленных в описании типа данных или дополнительных ограничениях поля данных в поступивших сообщениях, клиенту веб-сервиса происходит возврат сообщения об ошибке форматно-логического контроля данных. Данные, нарушающие ограничения, веб-сервисом не принимаются.
Описание простых типов данных выполнено в виде нескольких таблиц одного вида. Описание колонок таблиц находится в таблице 1. В качестве примера приведено описание строкового типа данных с возможной длиной значения от 1 до 50 символов.
Таблица 1: Описание простых типов
Наименование колонки
|
Описание
|
Пример
|
Описание
|
Содержит описание поля на русском языке.
|
Строка длиной от 1 до 50 символов
|
Наименование типа данных
|
Наименование (идентификатор) типа данных так, как это записано в XSD-схеме документа
|
String_1_50
|
Базовый тип данных XSD
|
Тип данных, предопределённый в базовых типах данных XML.
|
string
|
Ограничения типа в XSD-схеме
|
Значения элементов с ограничениями на значения типа, в виде элементов, включённых в элемент restriction в XSD-схеме.
|
minLength value="1"; maxLength value="50"
|
Дополнительная информация
|
Содержит описание дополнительных ограничений на значения, примеры значений.
|
|
Данные справочника
|
Содержит список допустимых значений поля данного типа и их расшифровку. Может указываться наименование справочника в подсистеме Нормативно-Справочной Информации — НСИ.
|
|
2.2. Составные типы данных
Составные типы данных представляют собой структуры данных, состоящие из нескольких полей. Значение составного типа в XML-представлении данных всегда представлено XML-элементом, включающем в себя другие элементы или атрибуты. Составные типы данных описаны в XSD-схеме в виде complexType-элементов.
При заполнении составного типа следует учитывать порядок следования элементов. Он должен совпадать с порядком строк таблицы, в которой описан составной тип. Порядок следования атрибутов в составе значения типа не имеет значения.
Для всех элементов или атрибутов составного типа указана необходимость их присутствия в структуре данных составного типа. В случае, если присутствие элемента или атрибута необязательно, при отсутствии данных, значение вместе с соответствующим элементом или атрибутом в составе структуры данных должно отсутствовать.
В случае присутствия элемента или атрибута его значение должно удовлетворять ограничением его типа данных и дополнительным ограничениям на значение поля, при их наличии.
Составной тип данных может быть основан на другом составном типе данных. В этом случае говорится, что описываемый тип данных «расширяет» базовый тип. При этом в состав типа входят сначала элементы базового типа, затем элементы описываемого типа данных. Множества атрибутов типов данных объединяются в произвольном порядке. Поля, обязательные для заполнения в базовом типе данных, также обязательны для заполнения во всех типах, расширяющих базовый тип.
Каждый составной тип данных описан отдельной таблицей. Каждому реквизиту (полю) или элементу составного типа в составе документа соответствуют одна строка таблицы. Значение полей описания приведено в таблице 2. Для примера приведено описание поля «Категория транспортного средства» в составе типа данных «Транспортное средство». Это поле представлено в виде элемента, может содержать значение строкового типа длиной от 1 до 50 символов, элемент поля должен обязательно присутствовать в XML-представлении структуры данных. Дополнительных ограничений на значение поля не накладывается, но приведен пример значений («Грузовой», «Автобус» и т. п.), которыми рекомендуется заполнять поле.
Таблица 2: Описание полей и структур данных в составных типах.
Наименование колонки
|
Описание
|
Пример
|
Заголовок элемента
|
Заголовок поля данных в том виде, в котором он показывается пользователю АИС.
|
Категория транспортного средства
|
Наименование элемента
|
Наименование элемента или атрибута в XSD-схеме данных и XML-представлении документа.
|
AutomType
|
Тип данных элемента
|
Содержит наименование типа данных в таблице простых типов и в XSD-схеме.
|
String_1_50
|
П/С/А
|
Содержит литеру, показывающую в каком виде должно быть представлено значение поля документа в XML-представлении для простых типов. Сложные типы отмечаются отдельно.
Допустимые значения поля:
П — поле простого типа представляется в виде элемента.
А — поле простого типа представляется в виде атрибута
С — структура данных составного типа, представляется в виде элемента.
|
П
|
О(М)
|
Показывает обязательность наличия поля в XML-представлении данных. Для этого используются литеры:
Н — необязательное поле или структура данных
О — обязательное поле или структура данных.
Также в этом здесь описывается возможность включать несколько значений одного поля документа или структуры данных в представлении, т. е. создавать массивы данных. Допустимо только для элементов данных и отмечается в поле дополнительной литерой «М».
Если значение поля представляет собой идентификатор какого-либо ведомственного классификатора, дополнительно может быть указана литера «К»
|
О
|
Дополнительная информация
|
Здесь указываются дополнительные ограничения на значения данных поля, примеры значений, которыми следует заполнять поле и прочая информация.
|
Заполняется значениями «Грузовой», «Автобус» и т. п.
|
В строке таблицы описания составного типа могут быть описаны несколько элементов, наименования которых разделены символом «|». Такая форма записи применяется в случае возможного присутствия в элементе данных только одного подчинённого элемента из описанных таким образом.