WSD スキャン サービス操作エラー報告
このセクションでは、WSD スキャン サービスが操作エラー コードを生成して送信する方法について説明します。 ほとんどの操作で返されるエラー コードについては、 「一般的な WSD スキャン サービス操作のエラー コード」に関するページを参照してください。
WSD スキャン サービスは、Xxx要求操作の処理中にエラーを検出すると、Xxx応答要素ではなくエラー コードを返します。 スキャン サービスは、<soap:Fault>要素のエラー コードを返します。
WSD スキャン サービス内で定義されているすべてのエラー メッセージは、Web サービス アドレッシング (WS-Addressing) 仕様で説明されている規則に従って送信する必要があります。 具体的には、WSD スキャン サービスは、エラー メッセージを次の場所に送信する必要があります。
[fault endpoint](エラー エンドポイントが存在し、有効な場合)。
それ以外の場合は、[応答エンドポイント](存在する場合)。
それ以外の場合は、[ソース エンドポイント]。
エンドポイントには、すべてのエラー メッセージに必要なメッセージ情報ヘッダーを含める必要があります。 エラー メッセージは、WS-Addressing で定義されている [リレーションシップ] プロパティを使用して応答として関連付けられます。 次の [action] プロパティは、エラー メッセージを指定します。
https://schemas.xmlsoap.org/ws/2004/08/addressing/fault
エラーの定義では、次のプロパティを使用します。
Fault プロパティ | Definition |
---|---|
[コード] | エラー コード。 |
[サブコード] | エラーサブコード。 |
[理由] | 英語の理由要素。 |
[詳細] | 詳細要素。 この要素が存在しない場合、エラーの詳細要素は定義されません。 |
次のコード例に示すように、これらのプロパティは SOAP 1.2 エラーにバインドされます。
<S:Envelope>
<S:Header>
<wsa:Action>https://schemas.xmlsoap.org/ws/2004/08/addressing/fault</wsa:Action>
<!-- Headers excluded for clarity -->
</S:Header>
<S:Body>
<S:Fault>
<S:Code>
<S:Value>[Code]</S:Value>
<S:Subcode>
<S:Value>[Subcode]</S:Value>
</S:Subcode>
</S:Code>
<S:Reason>
<S:Text xml:lang="en">[Reason]</S:Text>
</S:Reason>
<S:Detail>[Detail]</S:Detail>
</S:Fault>
</S:Body>
</S:Envelope>
次のコード例は、サンプルのSOAP Fault を示しています。
<soap:Envelope xmlns:soap="https://www.w3.org/2003/05/soapelope"
xmlns:xml="https://www.w3.org/XML/1998/namespace"
xmlns:wsa="https://schemas.xmlsoap.org/ws/2004/08/addressing"
xmlns:nprt="https://schemas.microsoft.com/windows/2006/01/wdp/scan">
<soap:Header>
<wsa:Action>https://schemas.xmlsoap.org/ws/2004/08/addressing/fault</wsa:Action>
<!-- Headers excluded for brevity -->
</soap:Header>
<soap:Body>
<soap:Fault>
<soap:Code>
<soap:Value>env:Sender</soap:Value>
<soap:Subcode>
<soap:Value>wscn:OperationFailed</soap:Value>
</soap:Subcode>
</soap:Code>
<soap:Reason>
<soap:Text xml:lang="en">Service cannot perform the requested operation</soap:Text>
</soap:Reason>
</soap:Fault>
</soap:Body>
</soap:Envelope>