XMLからJSON Schema変換

XMLサンプルデータから型の自動検出、配列推論、属性処理を含むJSON Schemaを推論します。

このツールについて

XMLからJSON Schema変換ツールは、XMLサンプルデータを解析し、 対応するJSON Schema定義を推論する無料のブラウザベースツールです。 JSON Schemaをゼロから手動で作成する代わりに、実際のXMLを 貼り付けるだけで、ツールが構造、型、制約を自動的に導出します。

変換ツールはXMLを解析し、すべての要素、属性、テキストノードを 検査します。要素はobject型にマッピングされ、子要素が プロパティになります。同じタグ名の繰り返し兄弟要素は検出され、 array型に変換されます。XML属性は設定可能なプレフィックス (@attrまたは_attr)で表現され、混合要素内のテキスト コンテンツは独自のプロパティキー(#textまたは_text)を 持ちます。

型推論は単純な文字列マッピングを超えます。ツールはテキスト コンテンツと属性値を検査し、文字列、数値、整数、ブーリアンの いずれであるかを判断します。同じ要素が異なるオカレンスで異なる 型を含む場合、スキーマは型のユニオンを使用します。必須フィールド 検出を有効にすると、親要素のすべてのオカレンスに出現する プロパティをrequiredとしてマークできます。

JSON Schema Draft 7と新しい2020-12仕様から選択できます。 出力にはクイック確認用のツリービューとプロジェクトにコピー するためのフルJSONビューが含まれます。RSSフィードSVGドキュメントMaven POMファイルなど一般的なXML形式の 組み込みプリセットですぐにツールを試せます。

すべての処理はブラウザ内で完結します。XMLデータがお使いの端末から 外に出ることはなく、サーバーとのやり取り、ログ記録、サードパーティ サービスの関与はありません。本番XMLデータや機密性の高い設定でも 安全に使用できます。

使い方

  1. 左側のXML InputパネルにXMLサンプルデータを貼り付けます。
  2. 入力しながら右パネルにJSON Schema出力が自動更新されます。
  3. ドロップダウンからSchemaバージョン(Draft 7または2020-12)を選択します。
  4. Attr prefix@または_)を選択してXML属性のスキーマでの表示方法を制御します。
  5. Text key#textまたは_text)を選択して混合テキストコンテンツのプロパティ名を制御します。
  6. requiredを切り替えて、要素の出現頻度に基づいて必須フィールドを自動検出・マークします。
  7. 出力パネル上部のトグルでJSONビューとTreeビューを切り替えます。CopyをクリックするかCtrl+Shift+Cを押して、生成されたスキーマをクリップボードにコピーします。

人気のXMLからJSON Schema変換例

すべてのXMLからJSON Schema変換例を見る →

よくある質問

XML要素はどのようにJSON Schema型にマッピングされますか?

テキストコンテンツのみのシンプルな要素は、コンテンツに基づいてスカラー型(string、number、integer、boolean)にマッピングされます。子要素や属性を持つ要素はプロパティ付きのobject型になります。同じタグ名の繰り返し兄弟要素は配列として検出されます。

属性の処理はどのように機能しますか?

XML属性は設定可能なプレフィックス付きのJSON Schemaプロパティに変換されます。デフォルトでは@プレフィックスが使用されます(例:@id、@class)が、プロパティ名で@がサポートされない環境では_プレフィックス(_id、_class)に切り替えられます。属性値はテキストコンテンツと同様に型推論されます。

XMLから配列はどのように検出されますか?

親要素内で同じタグ名の複数の兄弟要素が存在する場合、ツールはそれらが配列を形成すると推論します。配列検出しきい値設定がこの動作を制御します。すべてのオカレンスのスキーマがマージされ、配列の統一されたアイテムスキーマが生成されます。

どのJSON Schemaバージョンに対応していますか?

ツールはJSON Schema Draft 7(最も広く使用されているバージョン)と新しい2020-12仕様をサポートしています。出力の$schema URLはそれに応じて変わり、生成されるスキーマは選択されたバージョンの規約に従います。

テキストコンテンツの型推論はどのように機能しますか?

ツールはXML内の実際のテキスト値を検査して型を判断します。「true」や「false」の値はbooleanに、整数はintegerに、小数はnumberに、それ以外はstringになります。同じ要素が異なるオカレンスで異なる型を含む場合、スキーマは型のユニオン(例:["string", "integer"])を使用します。

データは安全ですか?

はい。すべての解析とスキーマ生成はJavaScriptと組み込みのDOMParser APIを使用してブラウザ内で完全に実行されます。データがサーバーに送信されることはありません。ツール使用中にブラウザの開発者ツールのネットワークタブで確認できます。

名前空間付きXMLで使用できますか?

はい。ツールは名前空間付きXMLを処理します。名前空間プレフィックス(soap:Envelopeなど)はスキーマのプロパティ名にそのまま保持されます。生成されるスキーマは、名前空間プレフィックスを含め、XML内のタグ名をそのまま反映します。

関連ツール