JSON から XSD への変換 — JSON から XML スキーマを生成
JSON データから XML スキーマ(XSD)を生成します。ComplexType、sequence、restriction に対応。ブラウザ内でアップロード不要。
JSON to XSD
Generate XML Schema (XSD) from JSON data. Generates XSD schema elements with inferred types (xs:string, xs:integer, xs:boolean, etc.). Works entirely in your browser.
XML スキーマ(XSD)は、XML ベースのシステムの正式な契約言語です。XSD ファイルは、有効な XML ドキュメントが含むことのできる要素、その出現順序、値のデータ型、繰り返し回数を定義します。サンプル XML や JSON ドキュメントから手動で XSD を書くことは、スキーマ検証を必要とするあらゆるシステムと統合するための第一歩です。SOAP Web サービス、政府データ交換、金融取引フォーマット、規制当局への提出物。JSON-to-XSD ジェネレーターは、JSON 構造を歩いて、同じデータの JSON-to-XML 変換によって生成された XML を検証する XSD を出力します。
XSD 生成における「あまり自明ではない」アーキテクチャ上の選択は、スキーマ構成スタイルです。Russian Doll(1 つのグローバル要素、他のすべての型がその中にネスト)は最も単純で最も一般的であり、サンプル JSON の正確な構造を検証する単一の自己完結型 XSD ファイルを生成します。Salami Slice(すべての要素がグローバル、ref で参照可能)と Venetian Blind(型がグローバル、要素がローカル)はより再利用可能ですが、読みやすく保守するのはより複雑です。Russian Doll はサンプルドキュメントからの 1 回限りのスキーマ生成に対する正しいデフォルトです。他のスタイルは、生成された型が複数のスキーマで再利用される場合や、スキーマがより大きな WSDL や XSD エコシステムの一部である場合の正しい選択です。
使い方
JSON を貼り付ける
JSON オブジェクトを入力にドロップします。ジェネレーターは構造をたどり、ネストされた各オブジェクトの形状に対して complexType 定義を含む XML スキーマドキュメントを出力します。
スキーマスタイルを選ぶ
Russian Doll(ネスト型、最も一般的)、Salami Slice(ref 付きのグローバル型)、Venetian Blind(グローバル型、ローカル要素)の中から選択します。デフォルトは Russian Doll です。
XSD をコピーまたはダウンロードする
XSD をクリップボードにコピーするか、.xsd ファイルとしてダウンロードします。出力は有効な XML Schema 1.0 であり、xmllint、Xerces、または任意のスキーマ認識 XML パーサーで検証できます。
よくある質問
どのスキーマスタイルを選ぶべきですか?
Russian Doll は 1 つのグローバル要素(ルート)を持ち、他のすべての型はその中のネストされた匿名 complexType です。最も単純で、最も一般的で、再利用が最も難しいスタイルです。Salami Slice はすべての要素をグローバルにし、型を再利用可能にします。Venetian Blind は型をグローバルにし、要素をローカルにします。妥協案です。Russian Doll から始めてください。
JSON の型は XSD の型にどうマッピングされますか?
JSON の文字列はオプションの minLength/maxLength 制限付きの `xs:string` になります。数値はサンプルに小数点が含まれているかに基づいて `xs:integer` または `xs:decimal` になります。ブール値は `xs:boolean` になります。配列は要素型の `sequence` を持つ `xs:complexType` になります。
XML 名前空間に対応していますか?
はい。「targetNamespace」をオンにすると、設定可能な名前空間 URI と `xmlns:tns` プレフィックスを持つ XSD が出力されます。生成された XML インスタンスは正しく検証されるために同じ名前空間を使用する必要があります。
オプションの要素はどのように処理されますか?
一部の配列メンバーで欠落している要素は、スキーマで `minOccurs="0"` になり、オプションになります。すべての配列メンバーに存在する要素は `minOccurs="1"`(必須)になります。「すべてオプション」をオンにすると、すべての要素がオプションになります。
列挙制限を生成できますか?
「列挙」をオンにすると、固定値の繰り返しを持つ文字列フィールドが検出され、`xs:enumeration` 値を持つ `xs:restriction` が生成されます。サンプル全体で「active」、「pending」、「closed」を持つステータスフィールドが、制限付き文字列になります。
制限事項
- XSD 1.1 の機能なし出力は XML Schema 1.0 です。XSD 1.1 のアサーション、条件付き型割り当て、オープンコンテンツはサポートされていません。XSD 1.1 の機能については、手動で後処理してください。
- key/keyref 制約なしスキーマは JSON データから主キーや外部キーの関係を推論しません。スキーマが参照整合性を必要とする場合は、`xs:key` と `xs:keyref` 制約を手動で追加してください。
- サンプル依存の型幅maxLength と minLength の制限は、観測された最長と最短の値から推論されます。API がより長い文字列を返す可能性がある場合は、maxLength を手動で調整してください。
プラットフォーム別の注意点
- macOS
- 生成された XSD は xmllint(macOS に付属)と任意のスキーマ認識 XML エディタで検証できます。API ドキュメント作成中の 1 回限りのスキーマ生成には本ブラウザツールをご利用ください。
- Windows
- XSD は Visual Studio の XML Schema Explorer と XMLSpy で検証できます。完全な IDE が利用できない 1 回限りの生成にご利用ください。
- Linux
- コマンドラインで作業する場合は、`xjc`(JAXB)と `xsdata` が XML スキーマを生成できます。ブラウザツールは、Java や Python のツールチェーンが利用できない 1 回限りの生成に適しています。
- Web
- 完全にクライアントサイドで動作します。生成は瞬時に行われます。