{ "title": "Smart Data Models - Table Schema", "description": "A Table Schema for this resource, compliant with the Table Schema specification. Converted for Smart Data Models initiative from original frictionless data", "$schemaVersion": "0.0.1", "$schema": "http://json-schema.org/schema", "id": "https://smart-data-models.github.io/dataModel.FrictionlessData/TableSchemaFrictionlessData/schema.json", "type": "object", "required": [ "fields", "id", "type" ], "allOf": [ { "$ref": "https://smart-data-models.github.io/data-models/common-schema.json#/definitions/GSMA-Commons" }, { "properties": { "type": { "type": "string", "description": "Property. it has to be TableSchemaFrictionlessData. NGSI entity type" }, "fields": { "type": "array", "description": "Property. An array of Table Schema Field objects", "items": { "type": "object" } }, "primaryKey": { "type": "array", "description": "Property. Field name in the primaryKey 'MUST' be unique, and 'MUST' match a field name in the associated table. It is acceptable to have an array with a single value, indicating that the value of a single field is the primary key. A primary key is a field name or an array of field names, whose values 'MUST' uniquely identify each row in the table", "minItems": 1, "items": { "type": "string" } }, "foreignKeys": { "type": "array", "description": "Property. " }, "missingValues": { "type": "array", "description": "Property. Many datasets arrive with missing data values, either because a value was not collected or it never existed. Missing values may be indicated simply by the value being empty in other cases a special value may have been used e.g. '-', 'NaN', '0', '-9999' etc.The 'missingValues' property provides a way to indicate that these values should be interpreted as equivalent to null. The 'missingValues' are strings rather than being the data type of the particular field. This allows for comparison prior to casting and for fields to have missing value which are not of their type, for example a 'number' field to have missing values indicated by '-'.The default value of 'missingValue' for a non-string type field is the empty string ''. For string type fields there is no default for 'missingValue' (for string fields the empty string '' is a valid value and need not indicate null). Values that when encountered in the source, should be considered as 'null', 'not present', or 'blank' values" } } } ] }