При отладке взаимодействия ИС УВ со СМЭВ возникает потребность в проверке соответствия запросов ИС УВ схемам ВС. Создание схем возможно в любом текстовом редакторе. Такой подход требует заметных затрат времени и может служить источником ошибок. Использование специализированных программных инструментов значительно сокращает трудозатраты на формирование комплекта файлов для регистрации нового ВС.
Рассмотрим возможности применения XML-инструментов для создания ВС для СМЭВ на примере продукта XMLSpy.
Примечание: Использование продукта ALTOVA XMLSpy требует приобретения лицензии.
Создание схемы
Для создания XSD-схемы выберите New в меню File, а затем выберите формат XML Schema v1.0:Откроется стартовая форма документа - список элементов и типов схемы. Для новой схемы предлагается создать корневой элемент:
Создадим два корневых элемента – request и response. Для этого введем наименование и комментарий к существующей записи списка и добавим еще один корневой элемент.
Для добавления нового элемента или типа в список воспользуйтесь кнопкой Append (или Insert) и выберите тип добавляемого объекта:
Для просмотра древовидной структуры элемента воспользуйтесь кнопкой слева от записи списка:
Добавим в нашу схему два элемента:
- applicant с описанием атрибутов физического лица – заявителя
- application с описанием атрибутов заявления
Добавление элементов на схему осуществляется по правой кнопке мыши:
Сначала добавим Sequence, а затем наши элементы:
Аннотации к элементам можно создавать на графе, воспользовавшись командой Edit Annotation in Diagram из меню, вызываемого по правой кнопке мыши.
Приведем схему к следующему виду:
Атрибуты физического лица могут потребоваться в разных разделах схемы, поэтому для них лучше создать отдельный комплексный тип данных, который можно присваивать разным элементам запроса. Для этого нажмите правой кнопкой на элемент applicant и выберите команду «Make Global -> ComplexType»:
Будет создан новый комплексный тип данных с именем, состоящим из названия элемента и слова Type:
Переименуйте applicantType в PersonType и присвойте новый тип элементу applicationSubject:
Практически все операции создания схемы вида сведений можно выполнять на диаграмме схемы.
Ручное редактирование текста схемы также доступно:
Генерация XML-файла по схеме
Откроется форма с параметрами генерации. Выберите корневой элемент схемы, для которого будет создан XML-файл:
Будет сформирован следующий файл:
Поскольку в параметрах генерации не выбрана опция «Generate non-mandatory elements», то необязательный элемент patronymic не был включен в XML-файл ни для applicant, ни для applicationSubject.
Проверка XML-файла на соответствие схеме
На несоответствующий схеме запрос СМЭВ отвечает сообщение «Бизнес-данные сообщения не соответствуют схеме, зарегистрированной в СМЭВ» с подобным описанием ошибок:
Избежать получения подобных ошибок можно предварительно проверив корректность формируемых для отправки в СМЭВ сообщений. Для этого откройте файл запроса и в меню DTD/Schema воспользуйтесь командой Assign Schema, после чего выберите нужную схему (в примере это вид сведений ГИС ГМП «Прием необходимой для уплаты информации (начисления)»):
В XML-файл с запросом будет добавлена конструкция xsi:schemaLocation и в редакторе XML будут подсвечены все несоответствия запроса указанной схеме:
В разделе Messages отображается детальная информация об ошибках. После устранения выявленных при проверке ошибок в этом же разделе отображается сообщение, что XML полностью соответствует своей схеме: