JSON インスタンスからの JSON スキーマの生成

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  ユーザーマニュアル > JSON と JSON スキーマ >

JSON インスタンスからの JSON スキーマの生成

XMLSpy は、(JSON5 インスタンスを含む) JSON インスタンスドキュメントから JSON スキーマを生成することができます。この機能は、既存の JSON インスタンスをベースにしたスキーマを素早く提供し、スキーマをはじめから手動で作成する手間を省くため、とても役に立ちます。必要に応じて作成されたスキーマを修正することもできます。

 

スキーマの生成

JSON インスタンスから JSON スキーマを生成するには、以下を行います:

 

1.JSON インスタンス ドキュメントをアクティブなドキュメントにする。
2.情報ウィンドウの JSON タブで、スキーマに対して検証するの横の矢印のアイコンをクリックすると、メニューが表示されます。「JSON スキーマの生成」  をクリックまたは 「DTD/スキーマ | DTD の生成/スキーマ」 を選択します。

JSONInfoWindow

3.表示された JSON スキーマの生成 ダイアログ(下の次のセクションを参照) 内で設定を変更します (詳細は下を参照)。編集が完了すると 「OK」 をクリックします。
4.生成された JSON スキーマのためのパスとファイル名を与えるようにプロンプトされます。「保存」 をクリックすると、 スキーマが生成されアクティブドキュメントになります。インスタンスドキュメント内で、生成されたスキーマファイルは検証で使用されるスキーマとして割り当てられます。以前に割り当てられたスキーマは上書きされます。割り当てを変更するには、コンテキストメニューの 「JSON スキーマの選択」 コマンドを使用します (上のスクリーンショット参照)。

 

メモ:JSON のバージョンは オプションダイアログの JSON タブにより選択されているデフォルトのバージョンです。

 

スキーマの生成のための設定

JSON スキーマの生成 ダイアログのスキーマの生成を指定することができます (下のスクリーンショット)。 このダイアログにアクセスする方法の詳細に関しては、前のセクションを参照してください。

JSONGenerateJSONSchemaDlg

配列タプルの検出

配列 タプルは配列内のアイテムのシーケンスです。例えば、次の配列には3つのアイテムを持つタプルがあります: [ 1, 2, "abc" ]。配列の検証のためには、スキーマは配列(タプル)の順序とデータ型を考慮するか指定することができます。 配列タプルの検出 オプションがチェックされていると、(上のスクリーンショット参照)、 アイテムの順序とデータ型が検出されます。検出された内容に従い、スキーマ内に対応する定義が作成されます。この設定のオプションは以下のとおりです:

 

タプル アイテムの数: 指定することのできる最少および最大のタプルアイテムの数。 インスタンス内のタプルがこの範囲内のアイテムの数を持つ場合、配列は検出され定義されます。
単純型のみ: 単純型アイテム( アトミック型 stringnumberintegerboolean、 および null) を持つタプルのみが検出対象となります。
同一の名前を持つ配列: 同じ名前を持つプロパティの値として定義された配列のみが検出対象となります。 例えば、 下の JSON データフラグメント内では、赤でハイライトされたかっこでマークされた配列は(青でハイライトされた) a1 という名前のプロパティの値です: {"object1": [ { "a1": [ 1, 2, "abc" ] },  { "a1": [ 3, 4, "def" ] }, { "a1": [ 5, 6, "ghi" ] } ] }。
配列の最少の数値: 指定することのできる配列の検出の最少の数です。

 

 

他の設定

 

オブジェクト プロパティ 名前の順序を無視する: 選択されると、プロパティのオブジェクトの順序がチェックされ、元に限りなく近く再作成されます。
文字列のフォーマットに一致させる:  文字列データ型を指定するスキーマは特別なフォーマットを持つ必要があります。 このオプションが選択されていると、 XMLSpy は可能な箇所で文字列フォーマットを検出およびフォーマット定義を追加します。
単純配列をローカルに設定する: 単純配列は、同じ単純データ型のすべてのアイテムの1つです。 選択されると、 すべての単純 配列は、ローカルで参照されているグローバル定義を使用する代わりにスキーマ内でローカルに定義されます。
単純オブジェクトをローカルに設定する: 単純オブジェクトは、すべてのプロパティの値が同じ単純データ型をもつものです。選択された場合、ローカルで参照されているグローバル定義を使用するかわりに、すべての単純オブジェクトはスキーマ内で定義されます。

 

メモ:JSON スキーマが生成されると、個々のオブジェクトと配列の定義のローカル定義をグローバルにまたその反対に設定することができます。詳細に関しては、 グローバルとローカル定義のセクションを参照してください。

 


(C) 2019 Altova GmbH