SOAP 障害 (<Fault> エレメント) は、SOAP 本体のサブエレメントで、エラーの報告に使用されます。
SOAP 障害エレメントがある場合は、本体のエントリーとして出現する必要があり、本体エレメント内で複数回出現してはなりません。 SOAP 障害エレメントのサブエレメントは、SOAP 1.1 と SOAP 1.2 では異なります。
SOAP 1.1
SOAP 1.1 では、SOAP 障害には、以下のサブエレメントが含まれます。
- <faultcode>
- <faultcode> エレメントは、<Fault> エレメント内の必須エレメントです。 これは障害に関する情報をソフトウェアが処理できる形式で提供します。 SOAP は、基本的な SOAP 障害を扱う SOAP 障害コードの小規模な集合を定義しますが、この集合はアプリケーションによって拡張することができます。
- <faultstring>
- <faultstring> エレメントは、<Fault> エレメント内の必須エレメントです。 これは障害に関する情報を、人間が読むことのできる形式で提供します。
- <faultactor>
- <faultactor> エレメントには、この障害を生成した SOAP ノードの URI が含まれます。 最終的な SOAP 受信者ではない SOAP ノードは、障害の作成時に <faultactor> エレメントを含めなければなりません。SOAP の最終的な受信者には、このエレメントを含める義務はありませんが、そうする場合もあります。
- <detail>
- <detail> エレメントには、<Body> エレメントに関連した、アプリケーション固有のエラー情報が含まれます。
これは、<Body> エレメントの内容が正常に処理されなかった場合に必要です。 <detail> エレメントは、ヘッダー項目に属するエラー情報を含めるために使用してはなりません。 ヘッダー項目に属する詳細なエラー情報は、ヘッダー項目内に含める必要があります。
SOAP 1.2
SOAP 1.2 では、SOAP 障害エレメントには、以下のサブエレメントが含まれます。
- <Code>
- <Code> エレメントは、<Fault> エレメント内の必須エレメントです。 これは障害に関する情報をソフトウェアが処理できる形式で提供します。 これには 1 つの <Value> エレメントおよびオプションで <Subcode> エレメントが 1 つ含まれます。
- <Reason>
- <Reason> エレメントは、<Fault> エレメント内の必須エレメントです。 これは障害に関する情報を、人間が読むことのできる形式で提供します。 <Reason> エレメントには、1 つ以上の <Text> エレメントが含まれ、この各エレメントに障害に関する情報が異なる言語で含まれます。
- <Node>
- <Node> エレメントには、この障害を生成した SOAP ノードの URI が含まれます。 最終的な SOAP 受信者ではない SOAP ノードは、障害の作成時に <Node> エレメントを含めなければなりません。SOAP の最終的な受信者には、このエレメントを含める義務はありませんが、そうする場合もあります。
- <Role>
- <Role> エレメントには、障害が起こった時点でのノードの役割を示す URI が含まれます。
- <Detail>
- <Detail> エレメントは、オプションのエレメントで、障害を説明する SOAP 障害コードに関連した、アプリケーション固有のエラー情報を含みます。 <Detail> エレメントがあることは、障害のある SOAP メッセージのどの部分が処理されたかに対しては意味を成しません。