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>

スキーマが示す内容

生成されるスキーマはいくつかの重要な側面を捉えます:

  • 型付き値: portintegerdebugbooleannamestring
  • ネストされたオブジェクト: database.pooldatabase内のネストされたオブジェクト
  • 配列: cors.origincors.methodsは複数オカレンスがあるため配列として検出
  • 構造の階層: 完全なネストパスがスキーマに保持される

バリデーションへのスキーマの活用

生成後、JSON Schemaを以下に使用できます:

  1. デプロイ前にJSON設定ファイルのバリデーション
  2. 型安全な設定アクセスのためのTypeScript型生成
  3. 期待される設定構造のドキュメント作成
  4. スキーマ駆動バリデーション付きフォームベース設定エディタの構築

オプションセクションの処理

サンプル設定がすべてのセクションを含む場合、スキーマにすべて表示されます。サンプルに存在しないオプションセクションについては、手動でスキーマに追加するか、より完全なサンプルを提供する必要があります。必須フィールド検出を有効にして、一貫して出現するフィールドをマークします。

ユースケース

アプリケーション設定をXMLからJSON形式に移行する場合(例:Spring XMLからJSON設定、レガシーXML設定からモダンなYAML/JSON)。既存のXMLからスキーマを生成することで、新しい形式が元の構造要件をすべて保持することを保証します。

試してみる — XML to JSON Schema

フルツールを開く