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