3.3.1 Идентификация отказов SOAP
Некоторые потребительские реализации для определения наличия отказа неправильно используют только код статуса HTTP. Так как существуют ситуации, при которых инфраструктура сети изменяет код статуса HTTP, и для большей надежности в Профиле требуется проверка оболочки. Отказ является оболочкой, которая имеет единственный дочерний элемент элемента soap:Body и этот дочерний элемент есть soap:Fault.
R1107 ПОЛУЧАТЕЛЬ ДОЛЖЕН интерпретировать сообщение SOAP как отказ, когда элемент soap:Body сообщения имеет единственного потомка soap:Fault.
3.3.2 Структура отказа SOAP
Профиль ограничивает содержимое элемента soap:Fault элементами, явно описанными в SOAP 1.1.
R1000 Когда ОБОЛОЧКА есть отказ, элемент soap:Fault НЕ ДОЛЖЕН иметь дочерних элементов, отличных от faultcode, faultstring, faultactor и detail.
Например,
НЕПРАВИЛЬНО:
ПРАВИЛЬНО:
3.3.3 Квалификация пространства имен отказа SOAP
Потомки элемента soap:Fault являются локальными для этого элемента, следовательно, квалификация пространства имен не требуется.
R1000 Когда ОБОЛОЧКА является отказом, дочерние элементы элемента soap:Fault ДОЛЖНЫ быть неквалифицированными.
Например,
НЕПРАВИЛЬНО:
ПРАВИЛЬНО:
3.3.4 Расширение отказа SOAP
В целях расширения допускается появление дополнительных атрибутов в элементе detail и дополнительных дочерних элементов элемента detail.
R1002 ПОЛУЧАТЕЛЬ ДОЛЖЕН принимать отказы, имеющие любое число элементов, включая нуль, дочерних для элемента detail. Такие потомки могут быть и могут не быть квалифицированными.
R1003 ПОЛУЧАТЕЛЬ ДОЛЖЕН принимать отказы, имеющие любое число квалифицированных и неквалифицированных атрибутов, включая нуль, в элементе detail. Пространство имен квалифицированных атрибутов может быть любым, отличным от "http://schemas.xmlsoap.org/soap/envelope/".
3.3.5 Язык отказа SOAP
Строки отказа являются человекочитаемыми указаниями на характер отказа. Следовательно, они могут быть на любом языке, а атрибут xml:lang может быть использован для указания языка строки отказа.