XML設定ファイルからスキーマを推論する
混合ネスト、オプションセクション、バリデーション目的の型付き値を持つ典型的なXML設定ファイルからJSON Schemaを生成します。
Complex Structures
詳細な説明
XML設定ファイルからJSON Schemaへ
XML設定ファイルはスキーマ推論の最も一般的なユースケースの1つです。通常、ネストされたセクション、型付き値、オプション要素、そして時にはメタデータ用の属性を組み合わせています。
XMLの例(アプリケーション設定)
<application>
<name>MyService</name>
<version>2.1.0</version>
<debug>false</debug>
<database>
<host>localhost</host>
<port>5432</port>
<name>mydb</name>
<pool>
<min>5</min>
<max>20</max>
<timeout>30000</timeout>
</pool>
</database>
<logging>
<level>info</level>
<file>/var/log/app.log</file>
<rotate>true</rotate>
</logging>
<cors>
<origin>https://example.com</origin>
<origin>https://api.example.com</origin>
<methods>GET</methods>
<methods>POST</methods>
<methods>PUT</methods>
</cors>
</application>
スキーマが示す内容
生成されるスキーマはいくつかの重要な側面を捉えます:
- 型付き値:
portはinteger、debugはboolean、nameはstring - ネストされたオブジェクト:
database.poolはdatabase内のネストされたオブジェクト - 配列:
cors.originとcors.methodsは複数オカレンスがあるため配列として検出 - 構造の階層: 完全なネストパスがスキーマに保持される
バリデーションへのスキーマの活用
生成後、JSON Schemaを以下に使用できます:
- デプロイ前にJSON設定ファイルのバリデーション
- 型安全な設定アクセスのためのTypeScript型生成
- 期待される設定構造のドキュメント作成
- スキーマ駆動バリデーション付きフォームベース設定エディタの構築
オプションセクションの処理
サンプル設定がすべてのセクションを含む場合、スキーマにすべて表示されます。サンプルに存在しないオプションセクションについては、手動でスキーマに追加するか、より完全なサンプルを提供する必要があります。必須フィールド検出を有効にして、一貫して出現するフィールドをマークします。
ユースケース
アプリケーション設定をXMLからJSON形式に移行する場合(例:Spring XMLからJSON設定、レガシーXML設定からモダンなYAML/JSON)。既存のXMLからスキーマを生成することで、新しい形式が元の構造要件をすべて保持することを保証します。