5.2.5. Формирование сообщений об ошибках
Сообщения об ошибках формируются в соответствии со спецификацией SOAP 1.2.
Сведения об ошибке передаются в теле транспортного конверта и должны быть единственным элементом.
ТАБЛИЦА 5.8. СТРУКТУРА СВЕДЕНИЙ ОБ ОШИБКЕ (SOAP:FAULT)
N
|
Элемент
|
Описание
|
Тип данных
|
Мн.
|
1
|
Код ошибки (soap:Code)
|
формализованные сведения о коде ошибки
|
определяется областями значений вложенных элементов
|
1
|
1.1
|
Значение (soap:Value)
|
значение класса ошибки
|
перечисление soap: faultCodeEnum в соответствии со спецификацией SOAP 1.2
|
1
|
1.2
|
Код ошибки (soap:Subcode)
|
сведения о коде ошибки в соответствии с ее классом
|
определяется областями значений вложенных элементов
|
1
|
1.2.1
|
Значение (soap:Value)
|
значение кода ошибки. Перечень типовых кодов ошибок представлен в таблице 5.9
|
строка символов
|
1
|
2
|
Причина (soap:Reason)
|
сведения об ошибке
|
определяется областями значений вложенных элементов
|
1..*
|
2.1
|
Текст (soap:Text)
|
текст, описывающий ошибку
|
строка символов
|
1
|
а)
|
Язык (@xml:lang)
|
идентификатор языка, на котором приведен текст, описывающий ошибку
|
1
|
|
3
|
Сведения об ошибке (soap:Detail)
|
дополнительные детализированные сведения об ошибке
|
определяется областями значений вложенных элементов
|
0..1
|
Элемент soap:Code/soap:Value заполняется согласно требованиям спецификации SOAP 1.2.
Перечень типовых кодов ошибок представлен в Таблице 5.9.
ТАБЛИЦА 5.9. ПЕРЕЧЕНЬ ТИПОВЫХ ОШИБОК
Класс ошибки
|
Код ошибки
|
Текст ошибки
|
soap:Sender
|
wsse:UnsupportedSecurityToken
|
рекомендуется использовать типовые коды ошибок, определенные стандартом WS-Security
|
soap:Sender
|
wsse:UnsupportedAlgorithm
|
|
soap:Sender
|
wsse:InvalidSecurity
|
|
soap:Sender
|
wsse:InvalidSecurityToken
|
|
soap:Sender
|
wsse:FailedAuthentication
|
|
soap:Sender
|
wsse:FailedCheck
|
|
soap:Sender
|
wsse:SecurityTokenUnavailable
|
|
soap:Sender
|
wsse:MessageExpired
|
|
soap:Sender
|
vr:InvalidSyntax
|
Синтаксис сообщения некорректен
|
soap:Sender
|
vr:InvalidStructure
|
Структура сообщения не соответствует XML-схеме
|
soap:Sender
|
vr:MessageRulesViolated
|
Сообщение не соответствует структурным правилам
|
soap:Sender
|
vr:BusinessRulesViolated
|
Сообщение не соответствует бизнес-правилам
|
soap:Sender
|
vr:MarketPracticeViolated
|
Сообщение не соответствует рыночной практике
|
soap:Sender
|
vr:BusinessProcessViolated
|
Сообщение не соответствует бизнес-процессу
|
В случае несоответствия сообщения правилам формирования (vr:MessageRulesViolated, vr:BusinessRulesViolated) в элемент soap:Fault/soap:Detail включаются элементы vr:Result, содержащие сведения о результатах валидации.
Для каждого провалидированного элемента и каждого правила формируется отдельный элемент vr:Result. Сведения об ошибках валидации (error) включаются в сообщение в обязательном порядке. В отладочных целях в сообщение об ошибке могут быть включены сведения об иных результатах валидации (valid, irrelevant, absent, unsupported).
ТАБЛИЦА 5.10. СТРУКТУРА СВЕДЕНИЙ О РЕЗУЛЬТАТАХ ВАЛИДАЦИИ
N
|
Элемент
|
Описание
|
Тип данных
|
Мн.
|
1
|
Результат валидации (vr:Result)
|
результат валидации
|
определяется областями значений вложенных элементов
|
1..*
|
1.1
|
Вид результата валидации (vr:Kind)
|
кодовое обозначение вида результата валидации
|
одно из следующих значений:
- valid - проверка пройдена успешно,
- error - ошибка,
- irrelevant - элементы
не проверялись, т.к. для них не выполнено предусловие,
- absent - элементы
для валидации отсутствуют в сообщении,
- unsupported - правило не поддерживается
|
1
|
1.2
|
Описание результата валидации (vr:Description)
|
описание результата валидации
|
строка символов
|
1
|
1.3
|
Код правила (vr:RuleCode)
|
код правила
|
строка символов
|
1
|
1.4
|
Описание правила (vr:RuleDescription)
|
описание правила
|
строка символов
|
1
|
1.5
|
Спецификация правила (vr:RuleOcl)
|
спецификация правила на формальном объектном языке ограничений (OCL)
|
строка символов
|
0..1
|
1.6
|
Элемент (vr: Element)
|
провалидированный элемент сообщения
|
определяется областями значений вложенных элементов
|
1..*
|
1.6.1
|
Путь (vr:Path)
|
путь к элементу сообщения, представленный в виде XPath выражения
|
строка символов
|
1
|
1.6.2
|
Описание (vr:Description)
|
описание пути к элементу на русском языке
|
строка символов
|
0..1
|