型セレクター (Any、Multiple)

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

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

型セレクター (Any、Multiple)

JSON スキーマビューの型コンボボックスのドロップダウンには、JSON 型: ではない、以下の2つの"型"があります: any および multiple。をリストします。これらは、型セレクターです。

 

any 型セレクターは、任意の JSON 型を選択します。 これは、インスタンス内で任意の JSON 型 がその特定の定義に対して有効であることを意味します。
multiple 型セレクターは、1つまたは複数の JSON 型を選択します。これは、インスタンスが、スキマー内で選択された JSON 型の1つである場合、インスタンスはその特定の定義に対して有効であることを意味します。
(draft-06 内で新規の) unconstrained 型セレクタ  は JSON 型に制約を設定しません。これは、インスタンス内で、 全ての JSON 型はその名前を持つ定義に対して有効です。
(draft-06 内で新規の) forbidden 型セレクタ はその名前を持つ定義の存在を効果的に許可せず JSON 型を禁止します。

 

any 型セレクター

any 型セレクターは、型が選択できるすべての箇所で選択されることができます。定義がスキーマに追加されると、 any がデフォルトの多々の選択になります。また、 JSON 型 の1つが有効であることを指定します。これは、インスタンス型はオブジェクト、配列またはいずれのアトミック型 (string、 number、 integer、 boolean および null) である可能性があります。

JSONAny01

上のスクリーンショットでは、 サブスキーマは Any の型を有します。 ですから、 すべての JSON 型 は、この定義に対して有効です。以下はユーザーインターフェイスに従い暗黙的に実装されています:

 

オブジェクトが許可されているため、プロパティボックスは自動的に作成されます (上のスクリーンショット参照)。プロパティボックスは、デフォルトで、(Any の型のプロパティワイルドカードを使用して)任意の型の任意の数のプロパティを許可するように定義されています。プロパティの定義を自由に変更することができます。
配列が許可されているため、アイテムボックスは自動的に作成されます (上のスクリーンショット参照)。配列ボックスは、デフォルトで、(Any の型のアイテムワイルドカードを使用して)任意の型の任意の数のプロパティを許可するように定義されています。 アイテムの定義を自由に変更することができます。
文字列と数値(数字と整数)は、許可されているため、これらのアトミック型のための制約は、制約入力ヘルパー内で定義することができます。

 

これらの型すべては、ですから、暗黙的に、 Any 型セレクターにより定義されています。特定の型に型を変更する場合はその型を選択してください。 オブジェクトと配列を指定するには別の方法があります: オブジェクトまたは配列を右クリックして、明示的に設定を選択します。この方法は、選択された型を型とし、他の型を削除、またはオブジェクト/配列型を非アクティブにします。

 

multiple 型セレクター

multiple 型セレクターは、型が選択される箇所すべてで選択されることができます。許可する型をチェックすることにより、1つまたは複数の JSON 型の選択を許可します (下のスクリーンショット参照)。選択された制約入力ヘルパー内の型のための制約を指定することができます。

JSONMultiple01

上のスクリーンショットでは、 サブスキーマは、string、null、 および array の型を許可します (スクリーンショット参照)。

 

文字列の制約は入力ヘルパーの制約で定義されています。
null 型は、 furr 制約をとりません。
配列アイテムボックスが自動的に作成されます。 許可された配列アイテムの数値と型を定義することができます。

 

インスタンスドキュメントでは、選択された型はサブスキーマに対応する箇所に許可されています。

 

制約がなく禁止されている型セレクタ

unconstrainedforbidden 型セレクタは型を選択できる箇所で選択することができます。これにより、全ての型のオブジェクトが許可されている、または、その名前のオブジェクトが許可されていないかをそれぞれ指定することができます。

JSONUnconstrainedForbidden

上のスクリーンショットでは、定義には2つのプロパティが存在します。PropertyOne はすべての型を持つことができますが、 PropertyTwoという名前のプロパティは許可されていません (スクリーンショットを参照してください)。テキストの書式では、これは以下のようなコードリスティングを作成します。

 

"Definition": {

 "properties": {

         "PropertyOne": true,

         "PropertyTwo": false

 }

}

 

 

 


(C) 2019 Altova GmbH