SOAP XMLメッセージのフォーマット — Envelope、Header、Body

SOAP XMLメッセージをフォーマットしてプリティプリントします。SOAP Envelopeの構造、名前空間、HeaderとBody要素、複雑なSOAPリクエスト/レスポンスペイロードの読み方を解説します。

XML Types

詳細な説明

SOAP XMLのフォーマット

SOAP(Simple Object Access Protocol)メッセージは特定の構造を持つXMLドキュメントです:オプションの Header と必須の Body を含む Envelope 要素で構成されます。SOAP XMLのフォーマットにより、深くネストされた名前空間の多いメッセージが読みやすくなります。

SOAP Envelopeの構造

<soap:Envelope
  xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:ws="http://example.com/webservice">
  <soap:Header>
    <ws:AuthToken>abc123</ws:AuthToken>
  </soap:Header>
  <soap:Body>
    <ws:GetUserRequest>
      <ws:UserId>42</ws:UserId>
    </ws:GetUserRequest>
  </soap:Body>
</soap:Envelope>

名前空間プレフィックス

SOAPメッセージはXML名前空間を多用します。各プレフィックス(soap:ws:xsi: など)は xmlns 宣言を通じてURIにバインドされます。良いフォーマッターはこれらの宣言を保持し、読みやすさのために整列させます。

一般的な名前空間URI

  • http://schemas.xmlsoap.org/soap/envelope/ — SOAP 1.1
  • http://www.w3.org/2003/05/soap-envelope — SOAP 1.2
  • http://www.w3.org/2001/XMLSchema-instance — XML Schema Instance
  • http://www.w3.org/2001/XMLSchema — XML Schema Definition

SOAP Faultメッセージ

エラーレスポンスはBody内の <soap:Fault> 要素を使用します:

<soap:Body>
  <soap:Fault>
    <faultcode>soap:Client</faultcode>
    <faultstring>Invalid user ID</faultstring>
    <detail>
      <errorCode>USR-404</errorCode>
    </detail>
  </soap:Fault>
</soap:Body>

Faultメッセージのフォーマットにより、エラーの階層構造が明確に表示されます:フォルトコード、人間が読めるメッセージ、構造化された詳細。

SOAPのフォーマットのヒント

  • Bodyのコンテンツを一貫してインデントし、実際のビジネスペイロードがEnvelopeの定型文から目立つようにします。
  • 名前空間宣言はルートの Envelope 要素に配置して明確にします。
  • SOAPメッセージに埋め込みXML(例:文字列要素内のBase64エンコードXML)が含まれる場合、そのコンテンツを別途デコードしてフォーマットします。

ユースケース

SOAP XMLフォーマットは、Webサービス呼び出しをデバッグするエンタープライズ統合開発者、SOAPリクエスト/レスポンスログをレビューするQAエンジニア、レガシーSOAP APIを維持するチームに不可欠です。フォーマット済みSOAPメッセージにより、リクエスト構造の比較や欠落・不正なフィールドの特定が容易になります。

試してみる — XML Formatter

フルツールを開く