{ "$schema": "http://json-schema.org/schema#", "title": "xAAL Schema Definition", "description": "General form of an xAAL schema", "version": 0.2, "license": "Copyright Christophe Lohr Telecom Bretagne 2014 - Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without any warranty.", "type": "object", "properties": { "title": { "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9_-]*.[a-zA-Z][a-zA-Z0-9_-]*$" }, "version": { "type": "number", "minimum": 0 }, "description": { "type": "string" }, "lang": { "type": "string" }, "documentation": { "type": "string", "format": "uri" }, "ref": { "type": "string", "format": "uri" }, "license": { "type": "string" }, "extends": { "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9_-]*.[a-zA-Z][a-zA-Z0-9_-]*$" }, "variables": { "type": "object", "properties": { }, "patternProperties": { "^[a-zA-Z][a-zA-Z0-9_-]*$": { "$ref": "#/definitions/variable" } }, "additionalProperties": false }, "methods": { "type": "object", "properties": { }, "patternProperties": { "^[a-zA-Z][a-zA-Z0-9_-]*$": { "$ref": "#/definitions/method" } }, "additionalProperties": false }, "notifications": { "type": "object", "properties": { }, "patternProperties": { "^[a-zA-Z][a-zA-Z0-9_-]*$": { "$ref": "#/definitions/notification" } }, "additionalProperties": false }, "used_embedded": { "type": "array", "items": { "type": "object", "properties": { "description": { "type": "string" }, "devType": { "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9_-]*.[a-zA-Z][a-zA-Z0-9_-]*$" } }, "additionalProperties": false } } }, "required": [ "title", "version", "description", "lang", "documentation", "ref" ], "additionalProperties": false, "definitions": { "variable": { "type": "object", "properties": { "description": { "type": "string" }, "unit" : { "type": "string" }, "type": { "$ref": "http://json-schema.org/schema#" } }, "additionalProperties": false, "required": [ "description", "unit", "type" ] }, "parameter": { "type": "object", "properties": { "description": { "type": "string" }, "unit" : { "type": "string" }, "type": { "$ref": "http://json-schema.org/schema#" }, "direction": { "enum": [ "in", "out", "inout" ] } }, "additionalProperties": false, "required": [ "description", "unit", "direction", "type" ] }, "method": { "type": "object", "properties": { "description": { "type": "string" }, "parameters": { "type": "object", "properties": { }, "patternProperties": { "^[a-zA-Z][a-zA-Z0-9_-]*$": { "$ref": "#/definitions/parameter" } }, "additionalProperties": false }, "relatedVariables": { "type": "array", "items": { "type": "string", "pattern": "^[a-zA-Z][a-zA-Z0-9_-]*$" }, "additionalItems": false, "uniqueItems": true } }, "required": [ "description", "parameters", "relatedVariables" ], "additionalProperties": false }, "notification": { "type": "object", "properties": { "description": { "type": "string" }, "parameters": { "type": "object", "properties": { }, "patternProperties": { "^[a-zA-Z][a-zA-Z0-9_-]*$": { "$ref": "#/definitions/variable" } }, "additionalProperties": false } }, "required": [ "description", "parameters" ], "additionalProperties": false } } }