5. Особенности формирования служебных сообщений

5. Особенности формирования служебных сообщений

64. К классу служебных сообщений относятся:

а) технологические сообщения об ошибке;

б) служебные сообщения интегрированной системы.

65. Технологическое сообщение об ошибке свидетельствует о критической ошибке, не позволяющей выполнить обработку и (или) передачу сообщения и не связанной с семантикой данных прикладного уровня.

Технологическое сообщение об ошибке представляет собой SOAP-сообщение Fault, оформленное согласно спецификации SOAP 1.2. Пример технологического сообщения об ошибке приведен в приложении N 3 к настоящим Правилам.

66. Заголовок wsa:To технологического сообщения об ошибке должен быть заполнен значением wsa:FaultTo/wsa:Address исходного сообщения, если данный заголовок присутствовал в исходном сообщении, либо значением wsa:ReplyTo/wsa:Address, если заголовок wsa:FaultTo/wsa:Address в исходном сообщении отсутствовал.

67. Для идентификации отправителя технологического сообщения об ошибке должен использоваться заголовок wsa:From.

68. Заголовок wsa:RelatesTo технологического сообщения об ошибке должен содержать атрибут int:RelatesAction типа xs:anyURI. Указанный атрибут должен содержать значение заголовка wsa:Action сообщения, на которое формируется данное технологическое сообщение об ошибке. Схема данных атрибута int:RelatesAction приведена в приложении N 2 к настоящим Правилам.

69. Заголовки wsa:ReplyTo и wsa:FaultTo для технологических сообщений об ошибке формироваться не должны.

70. Заголовок wsa:Action технологического сообщения об ошибке должен содержать одно из следующих значений:

а) для технологических сообщений об ошибках, предусмотренных спецификацией WS-Addressing 1.0 - Binding, - значение http://www.w3.org/2005/08/addressing/fault;

б) для прочих технологических сообщений об ошибках - значение http://www.w3.org/2005/08/addressing/soap/fault.

71. Прочие заголовки блока заголовков технологического сообщения об ошибке должны заполняться согласно правилам, приведенным в подразделе 2 раздела IV настоящих Правил.

72. Блок содержимого технологического сообщения об ошибке должен содержать элементы, набор которых представлен в таблице 7.

Таблица 7

Состав блока содержимого технологического сообщения
об ошибке

Элемент
Тип данных
Описание
Кратность
soap:Fault
soap:Fault
оборачивающий элемент блока
soap:Code
soap:faultcode
оборачивающий элемент
1
soap:Value
soap:faultcodeEnum
класс ошибки
1
soap:Subcode
soap:subcode
оборачивающий элемент кода ошибки
1
soap:Value
xs:QName
код ошибки
1
soap:Reason
soap:faultreason
оборачивающий элемент текстового описания ошибки
1
soap:Text
soap:reasontext
блок текстового описания ошибки
1..*
@xml:lang
-
языковой идентификатор
1
soap:Detail
soap:detail
детализация ошибки
0..1

73. Элемент soap:Code/soap:Value должен заполняться согласно требованиям спецификации SOAP 1.2.

74. Элемент soap:Code/soap:Subcode/soap:Value должен содержать код ошибки.

Перечень типовых кодов ошибок и правила использования кодов спецификации WS-Addressing 1.0 - Binding представлены в таблице 8.

Таблица 8

Типовые коды ошибок

Класс ошибки
Код ошибки
Описание и особенности применения
soap:Sender
wsa:InvalidAddressingHeader
используется согласно правилам, определенным спецификацией WS-Addressing 1.0 - Binding, со следующими ограничениями:
значения Subsubcode не используются
ошибка типа wsa:DuplicateMessageID не формируется и не отправляется
soap:Sender
wsa:MessageAddressingHeaderRequired
используется согласно правилам, определенным спецификацией WS-Addressing 1.0 - Binding
soap:Sender
wsa:DestinationUnreachable
используется согласно правилам, определенным спецификацией WS-Addressing 1.0 - Binding
soap:Sender
wsa:ActionNotSupported
используется согласно правилам, определенным спецификацией WS-Addressing 1.0 - Binding
soap:Sender
int:InvalidHeader
отсутствует один или несколько специализированных заголовков интегрированной системы
soap:Receiver
wsa:EndpointUnavailable
используется согласно правилам, определенным спецификацией WS-Addressing 1.0 - Binding, со следующим ограничением: при реализации электронного обмена данными в рамках общих процессов элемент wsa:RetryAfter использоваться не должен
soap:Receiver
int:InternalError
при обработке сообщения произошла непредвиденная ошибка
soap:Sender
int:DataError
полученные данные прикладного уровня имеют неверную структуру

75. Элемент soap:Text должен содержать текстовое описание ошибки.

Каждый элемент soap:Text должен содержать языковой идентификатор xml:lang, формируемый согласно спецификации XML 1.0.

В случае если в технологическом сообщении об ошибке присутствует набор элементов soap:Text, каждый из указанных элементов должен содержать языковой идентификатор xml:lang, отличный от идентификаторов других элементов soap:Text.

В технологическом сообщении об ошибке должен присутствовать хотя бы один элемент soap:Text, содержимое которого представлено на русском языке, а языковой идентификатор xml:lang должен содержать значение ru.

76. Необязательный элемент soap:Detail должен содержать информацию, детализирующую ошибку.

При формировании технологического сообщения об ошибке в элемент soap:Detail рекомендуется вкладывать сообщение (включая блоки заголовка и содержимого), при обработке которого возникла ошибка. Данная операция выполняется в следующем порядке:

вкладываемое сообщение обрамляется тегами CDATA согласно правилам спецификации XML 1.0;

полученная на первом шаге конструкция вкладывается в элемент int:ProblemMessage;

полученная на втором шаге конструкция вкладывается в элемент soap:Detail.

Схема данных заголовка элемента int:ProblemMessage приведена в приложении N 2 к настоящим Правилам.

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

В блоке содержимого служебного сообщения интегрированной системы должны быть указаны данные, состав которых определяется при разработке компонентов интегрированной системы.

Элемент wsa:Action служебного сообщения интегрированной системы должен заполняться унифицированным идентификатором ресурса (URI), состоящим из следующих компонентов, разделенных символом "/":

фиксированный префикс "int://";

идентификатор SR;

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

Прочие заголовки блока заголовков служебного сообщения интегрированной системы должны заполняться согласно правилам, приведенным в подразделе 2 раздела IV настоящих Правил.