Em mensagens do protocolo SOAP, o elemento opcional , em qu...

Próximas questões
Com base no mesmo assunto
Q4197768 Arquitetura de Software
Em mensagens do protocolo SOAP, o elemento opcional , em que soap corresponde ao namespace http://www.w3.org/2003/05/ soap-envelope/, quando presente, deve ocorrer
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: D

Fundamento decisivo: O namespace do enunciado indica SOAP 1.2, em que a posição do elemento Fault define sua validade como erro SOAP.

Tema central: Posição do soap:Fault
Análise das alternativas
A
Errada
Errada porque coloca o Fault como filho imediato de soap:Envelope. Em SOAP 1.2, o erro SOAP reconhecido deve estar em soap:Body, e a estrutura do Envelope comporta Header opcional e Body, não Fault como filho direto.
B
Errada
Errada porque posiciona o Fault dentro de soap:Header. A especificação não reconhece essa posição como a forma de carregar erro SOAP; para isso, o Fault deve ser o único elemento-filho de soap:Body.
C
Errada
Errada porque insere o Fault como filho imediato de soap:Envelope entre Header e Body. Isso contraria a estrutura formal do Envelope, que é Header opcional seguido de Body obrigatório, e também contraria a regra de que o Fault reconhecido deve estar em soap:Body.
D
Certa
A alternativa D está certa porque, no SOAP 1.2, o elemento soap:Fault deve estar dentro de soap:Body e ser seu único elemento-filho.
E
Errada
Errada porque coloca o Fault como filho imediato de soap:Envelope após soap:Body. Além de o Envelope não admitir esse elemento adicional nessa posição, o Fault com semântica SOAP de erro deve estar dentro de soap:Body.
Pegadinha da questão
A confusão real era achar que, por se tratar de erro da mensagem, o soap:Fault poderia ficar como filho direto de soap:Envelope ou no soap:Header; no SOAP 1.2, sua semântica de erro só vale quando ele está em soap:Body.
Dica para questões semelhantes
  • Quando o enunciado trouxer o namespace http://www.w3.org/2003/05/soap-envelope, aplique a regra estrutural do SOAP 1.2.
  • Para identificar erro SOAP, não basta o nome Fault: verifique se ele está como único elemento-filho de soap:Body.
  • Se uma alternativa colocar Fault como filho direto de Envelope ou dentro de Header, elimine-a pelo protocolo.
  • Use a ordem estrutural do Envelope como filtro: Header é opcional, Body é obrigatório, e Fault reconhecido fica no Body.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo