SOAPレスポンスからJSON Schemaを推論する

名前空間プレフィックス、エンベロープ構造、ヘッダー、型付きレスポンスボディを持つSOAP XMLレスポンスからJSON Schemaを生成します。

Real-World XML

詳細な説明

SOAPレスポンスからJSON Schemaへ

SOAP(Simple Object Access Protocol)はエンタープライズアプリケーションで今でも広く使用されているXMLベースのメッセージングプロトコルです。SOAPレスポンスをJSON Schemaに変換することは、APIの移行と統合プロジェクトに不可欠です。

SOAPレスポンスの例

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <auth:Authentication xmlns:auth="http://example.com/auth">
      <auth:Token>eyJhbGciOiJIUzI1NiJ9</auth:Token>
      <auth:Timestamp>2024-01-01T00:00:00Z</auth:Timestamp>
    </auth:Authentication>
  </soap:Header>
  <soap:Body>
    <ns:GetOrderResponse xmlns:ns="http://example.com/orders">
      <ns:Order>
        <ns:OrderId>12345</ns:OrderId>
        <ns:Status>shipped</ns:Status>
        <ns:Total>99.99</ns:Total>
        <ns:Items>
          <ns:Item>
            <ns:ProductId>A001</ns:ProductId>
            <ns:Quantity>2</ns:Quantity>
            <ns:Price>29.99</ns:Price>
          </ns:Item>
          <ns:Item>
            <ns:ProductId>B002</ns:ProductId>
            <ns:Quantity>1</ns:Quantity>
            <ns:Price>40.01</ns:Price>
          </ns:Item>
        </ns:Items>
      </ns:Order>
    </ns:GetOrderResponse>
  </soap:Body>
</soap:Envelope>

名前空間の処理

変換ツールは名前空間プレフィックスをプロパティ名に保持します。soap:Envelopesoap:Headerns:Orderはすべてスキーマにそのまま表示されます。これはXML要素名とスキーマ表現の間の明確なマッピングを維持するために意図的に行われています。

スキーマの構造

生成されるスキーマはSOAPエンベロープパターンを反映します:

  • Envelope → object
    • Header → object(認証データ)
    • Body → object
      • Response → object(ビジネスデータ)
        • Order → 型付きフィールドのオブジェクト
        • Items → Itemオブジェクトの配列

SOAPにおける型推論

SOAPレスポンスには強く型付けされたデータが含まれることが多いです:

  • OrderId → integer(12345)
  • Total → number(99.99)
  • Quantity → integer
  • Status → string
  • Token → string

REST/JSONへの移行

このスキーマはSOAPからREST APIへの移行時のブリッジになります。以下が可能です:

  1. 既存のSOAPレスポンスからスキーマを生成
  2. SOAPエンベロープ層を削除してスキーマを簡素化
  3. 内部スキーマを新しいREST APIのレスポンススキーマとして使用
  4. 変換がデータの整合性を保持していることをバリデーション

ユースケース

エンタープライズSOAPサービスをREST/JSON APIに移行する場合、またはSOAPからJSONに変換されたデータのバリデーションが必要な統合レイヤーを構築する場合。XMLからJSON Schemaへの変換の最も一般的な実世界シナリオの1つです。

試してみる — XML to JSON Schema

フルツールを開く