障害メッセージを含む以下の一般的な WSDL の例を使用して、WSDL ファイルで SOAP 障害をどう定義するかを確認してください。
以下の一般的な WSDL ファイルの例には、「MathOps」というポート・タイプが指定されています。「div」という操作が指定されており、「DivByZeroStruct」、「SpecialDetailStruct」、および「OutOfBoundStruct」の 3 つ考えられる障害メッセージがあります。
<wsdl:portType name="MathOps"> <wsdl:operation name="div"> <wsdl:input message="impl:divRequest" name="divRequest"/> <wsdl:output message="impl:divResponse" name="divResponse"/> <wsdl:fault message="impl:DivByZeroStruct" name="DivByZeroStruct"/> <wsdl:fault message="impl:SpecialDetailStruct" name="SpecialDetailStruct"/> <wsdl:fault message="impl:OutOfBoundStruct" name="OutOfBoundStruct"/> </wsdl:operation> </wsdl:portType>
これらのメッセージ構造の定義は、事前に WSDL 内に次のように記述されています。
<complexType name="OutOfBoundStruct"> <sequence> <element name="varString" nillable="true" type="xsd:string"/> <element name="varInt" type="xsd:int"/> <element name="specialDetail" nillable="true" type="impl:SpecialDetailStruct"/> </sequence> </complexType> <complexType name="SpecialDetailStruct"> <sequence> <element name="varString" nillable="true" type="xsd:string"/> </sequence> </complexType> <element name="OutOfBoundStruct" nillable="true" type="impl:OutOfBoundStruct"/> <complexType name="DivByZeroStruct"> <sequence> <element name="varString" nillable="true" type="xsd:string"/> <element name="varInt" type="xsd:int"/> <element name="varFloat" type="xsd:float"/> </sequence> </complexType>