[]
パブリックスキーマは、Spread.Sheets JSONデータ形式を記述します。また、人間にもマシンにも可読な文書を作成できるように、Spread.Sheets JSONデータを明確化します。完全な構造検証が可能であり、Spread.Sheets JSONデータおよびコードの生成、自動テスト、およびJSONデータの検証に便利です。スキーマの完全なリストについては、「Spreadスキーマ」を参照してください。
JSONスキーマの詳細については、json-schema.orgのWebサイトを参照してください。
JSONスキーマドキュメントを使用して、JSONデータが有効かどうかを検証できます。JSONスキーマに基づき、有効なJSONデータを作成することもできます。
次に、基本的なJSONスキーマの例を示します。
{
"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データを検証する手順は、次のとおりです。
部分的なJSONデータを検証します。
a. たとえば、「NameInfo」に基づく2つのJSONデータがあり、両方とも有効なJSONデータであるかどうかを調べたいとします。
{
"name":"name1",
"row":4,
"column":3,
"formula":"=SUM(A1,A3)"
}
{
"name":"name1",
"row":"4",
"column":3,
"formula":"=SUM(A1,A3)"
}
この場合は、次のような「NameInfo」JSONスキーマドキュメントを取得できます。
{
"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スキーマを参照しています。
{
"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スキーマを使用します。
{
"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]
}
}
}
完全なJSONデータを検証します。完全バージョンのJSONスキーマを使用することで、Spread.Sheetsの完全バージョンのJSONデータを検証できます。