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:Envelope、soap:Header、ns:Orderはすべてスキーマにそのまま表示されます。これはXML要素名とスキーマ表現の間の明確なマッピングを維持するために意図的に行われています。
スキーマの構造
生成されるスキーマはSOAPエンベロープパターンを反映します:
- Envelope → object
- Header → object(認証データ)
- Body → object
- Response → object(ビジネスデータ)
- Order → 型付きフィールドのオブジェクト
- Items → Itemオブジェクトの配列
- Response → object(ビジネスデータ)
SOAPにおける型推論
SOAPレスポンスには強く型付けされたデータが含まれることが多いです:
OrderId→ integer(12345)Total→ number(99.99)Quantity→ integerStatus→ stringToken→ string
REST/JSONへの移行
このスキーマはSOAPからREST APIへの移行時のブリッジになります。以下が可能です:
- 既存のSOAPレスポンスからスキーマを生成
- SOAPエンベロープ層を削除してスキーマを簡素化
- 内部スキーマを新しいREST APIのレスポンススキーマとして使用
- 変換がデータの整合性を保持していることをバリデーション
ユースケース
エンタープライズSOAPサービスをREST/JSON APIに移行する場合、またはSOAPからJSONに変換されたデータのバリデーションが必要な統合レイヤーを構築する場合。XMLからJSON Schemaへの変換の最も一般的な実世界シナリオの1つです。