パブリックスキーマは、Spread.Sheets JSONデータ形式を記述します。また、人間にもマシンにも可読な文書を作成できるように、Spread.Sheets JSONデータを明確化します。完全な構造検証が可能であり、Spread.Sheets JSONデータおよびコードの生成、自動テスト、およびJSONデータの検証に便利です。スキーマの完全なリストについては、「Spreadスキーマ」を参照してください。
JSONスキーマの詳細については、json-schema.orgのWebサイトを参照してください。
JSONスキーマドキュメントを使用して、JSONデータが有効かどうかを検証できます。JSONスキーマに基づき、有効なJSONデータを作成することもできます。
次に、基本的なJSONスキーマの例を示します。
Schema |
コードのコピー
|
---|---|
{ "title": "LineBorder", "description": "Indicates the color of the border line. Use a known color name or HEX style color value. The default value is black.", "type": "object", "properties": { "color": { "type": "string", "default": "black" }, "style": { "$ref": "#/definitions/LineStyle", "default": 0 } } } |
テーマを使用してバリデータを作成する方法については、こちらのWebサイト(http://json-schema.org/implementations.html)を参照してください。また、https://json-schema-validator.herokuapp.comで公開されているオンラインバリデータを使用すると、JSONスキーマドキュメントに基づき、作成したJSONデータを検証できます。
Spread.Sheets JSONスキーマドキュメントを使用すると、SpreadJS JSONデータを検証できます。
json-schema-validatorを使用してSpread.Sheets JSONデータを検証する手順は、次のとおりです。
a. たとえば、「NameInfo」に基づく2つのJSONデータがあり、両方とも有効なJSONデータであるかどうかを調べたいとします。
jsonData1 |
コードのコピー
|
---|---|
{ "name":"name1", "row":4, "column":3, "formula":"=SUM(A1,A3)" } |
jsonData2 |
コードのコピー
|
---|---|
{ "name":"name1", "row":"4", "column":3, "formula":"=SUM(A1,A3)" } |
この場合は、次のような「NameInfo」JSONスキーマドキュメントを取得できます。
NameInfo_JSONSchema |
コードのコピー
|
---|---|
{ "title": "NameInfo", "description": "Represents a custom named expression that can be used by formulas.", "type": "object", "properties": { "name": { "type": "string" }, "row": { "type": "integer", "minimum": 0 }, "col": { "type": "integer", "minimum": 0 }, "formula": { "type": "string" } } } |
JSONスキーマを使用して、JSONデータを検証します。「jsonData2」は無効です。本来、このrowプロパティの型は「number」ではなく「integer」であるべきです。
b. JSONスキーマが別のJSONスキーマを参照している場合です。たとえば、次のJSONスキーマは、「LineStyle」という別のJSONスキーマを参照しています。
LineBorder |
コードのコピー
|
---|---|
{ "title" : "LineBorder", "description" : "Indicates the color of the border line. Use a known color name or HEX style color value. The default value is black.", "type" : "object", "properties" : { "color" : { "type" : "string", "default" : "black" }, "style" : { "$ref" : "#/definitions/LineStyle", "default" : "LineStyle.empty" } } } |
「LineBorder」のJSONデータを検証するには、完全な「LineBorder」JSONスキーマを使用します。
LineBorder_Complete |
コードのコピー
|
---|---|
{ "title" : "LineBorder", "description" : "Indicates the color of the border line. Use a known color name or HEX style color value. The default value is black.", "type" : "object", "properties" : { "color" : { "type" : "string", "default" : "black" }, "style" : { "$ref" : "#/definitions/LineStyle", "default" : "LineStyle.empty" } }, "definitions":{ "LineStyle":{ "title":"LineStyle", "description":"Specifies the line drawing style for the border. empty:0,thin:1,medium:2,dashed:3,dotted:4,thick:5,double:6,hair:7,mediumDashed:8,dashDot:9,mediumDashDot:10,dashDotDot:11,mediumDashDotDot:12,slantedDashDot:13.", "enum":[0,1,2,3,4,5,6,7,8,9,10,11,12,13] } } } |