datapackage
Version:
Utilities to work with Data Packages as defined on specs.frictionlessdata.io
1,120 lines • 83.9 kB
JSON
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Tabular Data Resource",
"description": "A Tabular Data Resource.",
"type": "object",
"oneOf": [
{
"required": [
"name",
"data",
"schema",
"profile"
]
},
{
"required": [
"name",
"path",
"schema",
"profile"
]
}
],
"properties": {
"profile": {
"enum": [
"tabular-data-resource"
],
"propertyOrder": 10,
"title": "Profile",
"description": "The profile of this descriptor.",
"context": "Every Package and Resource descriptor has a profile. The default profile, if none is declared, is `data-package` for Package and `data-resource` for Resource.",
"type": "string",
"examples": [
"{\n \"profile\": \"tabular-data-package\"\n}\n",
"{\n \"profile\": \"http://example.com/my-profiles-json-schema.json\"\n}\n"
]
},
"name": {
"propertyOrder": 20,
"title": "Name",
"description": "An identifier string. Lower case characters with `.`, `_`, `-` and `/` are allowed.",
"type": "string",
"pattern": "^([-a-z0-9._/])+$",
"context": "This is ideally a url-usable and human-readable name. Name `SHOULD` be invariant, meaning it `SHOULD NOT` change when its parent descriptor is updated.",
"examples": [
"{\n \"name\": \"my-nice-name\"\n}\n"
]
},
"path": {
"propertyOrder": 30,
"title": "Path",
"description": "A reference to the data for this resource, as either a path as a string, or an array of paths as strings. of valid URIs.",
"oneOf": [
{
"title": "Path",
"description": "A fully qualified URL, or a POSIX file path..",
"type": "string",
"examples": [
"{\n \"path\": \"file.csv\"\n}\n",
"{\n \"path\": \"http://example.com/file.csv\"\n}\n"
],
"context": "Implementations need to negotiate the type of path provided, and dereference the data accordingly."
},
{
"type": "array",
"minItems": 1,
"items": {
"title": "Path",
"description": "A fully qualified URL, or a POSIX file path..",
"type": "string",
"examples": [
"{\n \"path\": \"file.csv\"\n}\n",
"{\n \"path\": \"http://example.com/file.csv\"\n}\n"
],
"context": "Implementations need to negotiate the type of path provided, and dereference the data accordingly."
},
"examples": [
"[ \"file.csv\" ]\n",
"[ \"http://example.com/file.csv\" ]\n"
]
}
],
"context": "The dereferenced value of each referenced data source in `path` `MUST` be commensurate with a native, dereferenced representation of the data the resource describes. For example, in a *Tabular* Data Resource, this means that the dereferenced value of `path` `MUST` be an array.",
"examples": [
"{\n \"path\": [\n \"file.csv\",\n \"file2.csv\"\n ]\n}\n",
"{\n \"path\": [\n \"http://example.com/file.csv\",\n \"http://example.com/file2.csv\"\n ]\n}\n",
"{\n \"path\": \"http://example.com/file.csv\"\n}\n"
]
},
"data": {
"propertyOrder": 230,
"title": "Data",
"description": "Inline data for this resource."
},
"schema": {
"propertyOrder": 40,
"title": "Table Schema",
"description": "A Table Schema for this resource, compliant with the [Table Schema](/tableschema/) specification.",
"type": "object",
"required": [
"fields"
],
"properties": {
"fields": {
"type": "array",
"minItems": 1,
"items": {
"title": "Table Schema Field",
"type": "object",
"anyOf": [
{
"type": "object",
"title": "String Field",
"description": "The field contains strings, that is, sequences of characters.",
"required": [
"name"
],
"properties": {
"name": {
"title": "Name",
"description": "A name for this field.",
"type": "string"
},
"title": {
"title": "Title",
"description": "A human-readable title.",
"type": "string",
"examples": [
"{\n \"title\": \"My Package Title\"\n}\n"
]
},
"description": {
"title": "Description",
"description": "A text description. Markdown is encouraged.",
"type": "string",
"examples": [
"{\n \"description\": \"# My Package description\\nAll about my package.\"\n}\n"
]
},
"type": {
"description": "The type keyword, which `MUST` be a value of `string`.",
"enum": [
"string"
]
},
"format": {
"description": "The format keyword options for `string` are `default`, `email`, `uri`, `binary`, and `uuid`.",
"context": "The following `format` options are supported:\n * **default**: any valid string.\n * **email**: A valid email address.\n * **uri**: A valid URI.\n * **binary**: A base64 encoded string representing binary data.\n * **uuid**: A string that is a uuid.",
"enum": [
"default",
"email",
"uri",
"binary",
"uuid"
],
"default": "default"
},
"constraints": {
"title": "Constraints",
"description": "The following constraints are supported for `string` fields.",
"type": "object",
"properties": {
"required": {
"type": "boolean",
"description": "Indicates whether a property must have a value for each instance.",
"context": "An empty string is considered to be a missing value."
},
"unique": {
"type": "boolean",
"description": "When `true`, each value for the property `MUST` be unique."
},
"pattern": {
"type": "string",
"description": "A regular expression pattern to test each value of the property against, where a truthy response indicates validity.",
"context": "Regular expressions `SHOULD` conform to the [XML Schema regular expression syntax](http://www.w3.org/TR/xmlschema-2/#regexs)."
},
"enum": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string"
}
},
"minLength": {
"type": "integer",
"description": "An integer that specifies the minimum length of a value."
},
"maxLength": {
"type": "integer",
"description": "An integer that specifies the maximum length of a value."
}
}
},
"rdfType": {
"type": "string",
"description": "The RDF type for this field."
}
},
"examples": [
"{\n \"name\": \"name\",\n \"type\": \"string\"\n}\n",
"{\n \"name\": \"name\",\n \"type\": \"string\",\n \"format\": \"email\"\n}\n",
"{\n \"name\": \"name\",\n \"type\": \"string\",\n \"constraints\": {\n \"minLength\": 3,\n \"maxLength\": 35\n }\n}\n"
]
},
{
"type": "object",
"title": "Number Field",
"description": "The field contains numbers of any kind including decimals.",
"context": "The lexical formatting follows that of decimal in [XMLSchema](https://www.w3.org/TR/xmlschema-2/#decimal): a non-empty finite-length sequence of decimal digits separated by a period as a decimal indicator. An optional leading sign is allowed. If the sign is omitted, '+' is assumed. Leading and trailing zeroes are optional. If the fractional part is zero, the period and following zero(es) can be omitted. For example: '-1.23', '12678967.543233', '+100000.00', '210'.\n\nThe following special string values are permitted (case does not need to be respected):\n - NaN: not a number\n - INF: positive infinity\n - -INF: negative infinity\n\nA number `MAY` also have a trailing:\n - exponent: this `MUST` consist of an E followed by an optional + or - sign followed by one or more decimal digits (0-9)\n - percentage: the percentage sign: `%`. In conversion percentages should be divided by 100.\n\nIf both exponent and percentages are present the percentage `MUST` follow the exponent e.g. '53E10%' (equals 5.3).",
"required": [
"name"
],
"properties": {
"name": {
"title": "Name",
"description": "A name for this field.",
"type": "string"
},
"title": {
"title": "Title",
"description": "A human-readable title.",
"type": "string",
"examples": [
"{\n \"title\": \"My Package Title\"\n}\n"
]
},
"description": {
"title": "Description",
"description": "A text description. Markdown is encouraged.",
"type": "string",
"examples": [
"{\n \"description\": \"# My Package description\\nAll about my package.\"\n}\n"
]
},
"type": {
"description": "The type keyword, which `MUST` be a value of `number`.",
"enum": [
"number"
]
},
"format": {
"description": "There are no format keyword options for `number`: only `default` is allowed.",
"enum": [
"default"
],
"default": "default"
},
"bareNumber": {
"type": "boolean",
"title": "bareNumber",
"description": "a boolean field with a default of `true`. If `true` the physical contents of this field must follow the formatting constraints already set out. If `false` the contents of this field may contain leading and/or trailing non-numeric characters (which implementors MUST therefore strip). The purpose of `bareNumber` is to allow publishers to publish numeric data that contains trailing characters such as percentages e.g. `95%` or leading characters such as currencies e.g. `€95` or `EUR 95`. Note that it is entirely up to implementors what, if anything, they do with stripped text.",
"default": true
},
"decimalChar": {
"type": "string",
"description": "A string whose value is used to represent a decimal point within the number. The default value is `.`."
},
"groupChar": {
"type": "string",
"description": "A string whose value is used to group digits within the number. The default value is `null`. A common value is `,` e.g. '100,000'."
},
"constraints": {
"title": "Constraints",
"description": "The following constraints are supported for `number` fields.",
"type": "object",
"properties": {
"required": {
"type": "boolean",
"description": "Indicates whether a property must have a value for each instance.",
"context": "An empty string is considered to be a missing value."
},
"unique": {
"type": "boolean",
"description": "When `true`, each value for the property `MUST` be unique."
},
"pattern": {
"type": "string",
"description": "A regular expression pattern to test each value of the property against, where a truthy response indicates validity.",
"context": "Regular expressions `SHOULD` conform to the [XML Schema regular expression syntax](http://www.w3.org/TR/xmlschema-2/#regexs)."
},
"enum": {
"oneOf": [
{
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string"
}
},
{
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "number"
}
}
]
},
"minimum": {
"oneOf": [
{
"type": "string"
},
{
"type": "number"
}
]
},
"maximum": {
"oneOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
}
},
"rdfType": {
"type": "string",
"description": "The RDF type for this field."
}
},
"examples": [
"{\n \"name\": \"field-name\",\n \"type\": \"number\"\n}\n",
"{\n \"name\": \"field-name\",\n \"type\": \"number\",\n \"constraints\": {\n \"enum\": [ \"1.00\", \"1.50\", \"2.00\" ]\n }\n}\n"
]
},
{
"type": "object",
"title": "Integer Field",
"description": "The field contains integers - that is whole numbers.",
"context": "Integer values are indicated in the standard way for any valid integer.",
"required": [
"name",
"type"
],
"properties": {
"name": {
"title": "Name",
"description": "A name for this field.",
"type": "string"
},
"title": {
"title": "Title",
"description": "A human-readable title.",
"type": "string",
"examples": [
"{\n \"title\": \"My Package Title\"\n}\n"
]
},
"description": {
"title": "Description",
"description": "A text description. Markdown is encouraged.",
"type": "string",
"examples": [
"{\n \"description\": \"# My Package description\\nAll about my package.\"\n}\n"
]
},
"type": {
"description": "The type keyword, which `MUST` be a value of `integer`.",
"enum": [
"integer"
]
},
"format": {
"description": "There are no format keyword options for `integer`: only `default` is allowed.",
"enum": [
"default"
],
"default": "default"
},
"bareNumber": {
"type": "boolean",
"title": "bareNumber",
"description": "a boolean field with a default of `true`. If `true` the physical contents of this field must follow the formatting constraints already set out. If `false` the contents of this field may contain leading and/or trailing non-numeric characters (which implementors MUST therefore strip). The purpose of `bareNumber` is to allow publishers to publish numeric data that contains trailing characters such as percentages e.g. `95%` or leading characters such as currencies e.g. `€95` or `EUR 95`. Note that it is entirely up to implementors what, if anything, they do with stripped text.",
"default": true
},
"constraints": {
"title": "Constraints",
"description": "The following constraints are supported for `integer` fields.",
"type": "object",
"properties": {
"required": {
"type": "boolean",
"description": "Indicates whether a property must have a value for each instance.",
"context": "An empty string is considered to be a missing value."
},
"unique": {
"type": "boolean",
"description": "When `true`, each value for the property `MUST` be unique."
},
"pattern": {
"type": "string",
"description": "A regular expression pattern to test each value of the property against, where a truthy response indicates validity.",
"context": "Regular expressions `SHOULD` conform to the [XML Schema regular expression syntax](http://www.w3.org/TR/xmlschema-2/#regexs)."
},
"enum": {
"oneOf": [
{
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string"
}
},
{
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "integer"
}
}
]
},
"minimum": {
"oneOf": [
{
"type": "string"
},
{
"type": "integer"
}
]
},
"maximum": {
"oneOf": [
{
"type": "string"
},
{
"type": "integer"
}
]
}
}
},
"rdfType": {
"type": "string",
"description": "The RDF type for this field."
}
},
"examples": [
"{\n \"name\": \"age\",\n \"type\": \"integer\",\n \"constraints\": {\n \"unique\": true,\n \"minimum\": 100,\n \"maximum\": 9999\n }\n}\n"
]
},
{
"type": "object",
"title": "Date Field",
"description": "The field contains temporal date values.",
"required": [
"name",
"type"
],
"properties": {
"name": {
"title": "Name",
"description": "A name for this field.",
"type": "string"
},
"title": {
"title": "Title",
"description": "A human-readable title.",
"type": "string",
"examples": [
"{\n \"title\": \"My Package Title\"\n}\n"
]
},
"description": {
"title": "Description",
"description": "A text description. Markdown is encouraged.",
"type": "string",
"examples": [
"{\n \"description\": \"# My Package description\\nAll about my package.\"\n}\n"
]
},
"type": {
"description": "The type keyword, which `MUST` be a value of `date`.",
"enum": [
"date"
]
},
"format": {
"description": "The format keyword options for `date` are `default`, `any`, and `{PATTERN}`.",
"context": "The following `format` options are supported:\n * **default**: An ISO8601 format string of YYYY-MM-DD.\n * **any**: Any parsable representation of a date. The implementing library can attempt to parse the datetime via a range of strategies.\n * **{PATTERN}**: The value can be parsed according to `{PATTERN}`, which `MUST` follow the date formatting syntax of C / Python [strftime](http://strftime.org/).",
"default": "default"
},
"constraints": {
"title": "Constraints",
"description": "The following constraints are supported for `date` fields.",
"type": "object",
"properties": {
"required": {
"type": "boolean",
"description": "Indicates whether a property must have a value for each instance.",
"context": "An empty string is considered to be a missing value."
},
"unique": {
"type": "boolean",
"description": "When `true`, each value for the property `MUST` be unique."
},
"enum": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string"
}
},
"minimum": {
"type": "string"
},
"maximum": {
"type": "string"
}
}
},
"rdfType": {
"type": "string",
"description": "The RDF type for this field."
}
},
"examples": [
"{\n \"name\": \"date_of_birth\",\n \"type\": \"date\"\n}\n",
"{\n \"name\": \"date_of_birth\",\n \"type\": \"date\",\n \"constraints\": {\n \"minimum\": \"01-01-1900\"\n }\n}\n",
"{\n \"name\": \"date_of_birth\",\n \"type\": \"date\",\n \"format\": \"MM-DD-YYYY\"\n}\n"
]
},
{
"type": "object",
"title": "Time Field",
"description": "The field contains temporal time values.",
"required": [
"name",
"type"
],
"properties": {
"name": {
"title": "Name",
"description": "A name for this field.",
"type": "string"
},
"title": {
"title": "Title",
"description": "A human-readable title.",
"type": "string",
"examples": [
"{\n \"title\": \"My Package Title\"\n}\n"
]
},
"description": {
"title": "Description",
"description": "A text description. Markdown is encouraged.",
"type": "string",
"examples": [
"{\n \"description\": \"# My Package description\\nAll about my package.\"\n}\n"
]
},
"type": {
"description": "The type keyword, which `MUST` be a value of `time`.",
"enum": [
"time"
]
},
"format": {
"description": "The format keyword options for `time` are `default`, `any`, and `{PATTERN}`.",
"context": "The following `format` options are supported:\n * **default**: An ISO8601 format string for time.\n * **any**: Any parsable representation of a date. The implementing library can attempt to parse the datetime via a range of strategies.\n * **{PATTERN}**: The value can be parsed according to `{PATTERN}`, which `MUST` follow the date formatting syntax of C / Python [strftime](http://strftime.org/).",
"default": "default"
},
"constraints": {
"title": "Constraints",
"description": "The following constraints are supported for `time` fields.",
"type": "object",
"properties": {
"required": {
"type": "boolean",
"description": "Indicates whether a property must have a value for each instance.",
"context": "An empty string is considered to be a missing value."
},
"unique": {
"type": "boolean",
"description": "When `true`, each value for the property `MUST` be unique."
},
"enum": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string"
}
},
"minimum": {
"type": "string"
},
"maximum": {
"type": "string"
}
}
},
"rdfType": {
"type": "string",
"description": "The RDF type for this field."
}
},
"examples": [
"{\n \"name\": \"appointment_start\",\n \"type\": \"time\"\n}\n",
"{\n \"name\": \"appointment_start\",\n \"type\": \"time\",\n \"format\": \"any\"\n}\n"
]
},
{
"type": "object",
"title": "Date Time Field",
"description": "The field contains temporal datetime values.",
"required": [
"name",
"type"
],
"properties": {
"name": {
"title": "Name",
"description": "A name for this field.",
"type": "string"
},
"title": {
"title": "Title",
"description": "A human-readable title.",
"type": "string",
"examples": [
"{\n \"title\": \"My Package Title\"\n}\n"
]
},
"description": {
"title": "Description",
"description": "A text description. Markdown is encouraged.",
"type": "string",
"examples": [
"{\n \"description\": \"# My Package description\\nAll about my package.\"\n}\n"
]
},
"type": {
"description": "The type keyword, which `MUST` be a value of `datetime`.",
"enum": [
"datetime"
]
},
"format": {
"description": "The format keyword options for `datetime` are `default`, `any`, and `{PATTERN}`.",
"context": "The following `format` options are supported:\n * **default**: An ISO8601 format string for datetime.\n * **any**: Any parsable representation of a date. The implementing library can attempt to parse the datetime via a range of strategies.\n * **{PATTERN}**: The value can be parsed according to `{PATTERN}`, which `MUST` follow the date formatting syntax of C / Python [strftime](http://strftime.org/).",
"default": "default"
},
"constraints": {
"title": "Constraints",
"description": "The following constraints are supported for `datetime` fields.",
"type": "object",
"properties": {
"required": {
"type": "boolean",
"description": "Indicates whether a property must have a value for each instance.",
"context": "An empty string is considered to be a missing value."
},
"unique": {
"type": "boolean",
"description": "When `true`, each value for the property `MUST` be unique."
},
"enum": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string"
}
},
"minimum": {
"type": "string"
},
"maximum": {
"type": "string"
}
}
},
"rdfType": {
"type": "string",
"description": "The RDF type for this field."
}
},
"examples": [
"{\n \"name\": \"timestamp\",\n \"type\": \"datetime\"\n}\n",
"{\n \"name\": \"timestamp\",\n \"type\": \"datetime\",\n \"format\": \"default\"\n}\n"
]
},
{
"type": "object",
"title": "Year Field",
"description": "A calendar year, being an integer with 4 digits. Equivalent to [gYear in XML Schema](https://www.w3.org/TR/xmlschema-2/#gYear)",
"required": [
"name",
"type"
],
"properties": {
"name": {
"title": "Name",
"description": "A name for this field.",
"type": "string"
},
"title": {
"title": "Title",
"description": "A human-readable title.",
"type": "string",
"examples": [
"{\n \"title\": \"My Package Title\"\n}\n"
]
},
"description": {
"title": "Description",
"description": "A text description. Markdown is encouraged.",
"type": "string",
"examples": [
"{\n \"description\": \"# My Package description\\nAll about my package.\"\n}\n"
]
},
"type": {
"description": "The type keyword, which `MUST` be a value of `year`.",
"enum": [
"year"
]
},
"format": {
"description": "There are no format keyword options for `year`: only `default` is allowed.",
"enum": [
"default"
],
"default": "default"
},
"constraints": {
"title": "Constraints",
"description": "The following constraints are supported for `year` fields.",
"type": "object",
"properties": {
"required": {
"type": "boolean",
"description": "Indicates whether a property must have a value for each instance.",
"context": "An empty string is considered to be a missing value."
},
"unique": {
"type": "boolean",
"description": "When `true`, each value for the property `MUST` be unique."
},
"enum": {
"oneOf": [
{
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string"
}
},
{
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "integer"
}
}
]
},
"minimum": {
"oneOf": [
{
"type": "string"
},
{
"type": "integer"
}
]
},
"maximum": {
"oneOf": [
{
"type": "string"
},
{
"type": "integer"
}
]
}
}
},
"rdfType": {
"type": "string",
"description": "The RDF type for this field."
}
},
"examples": [
"{\n \"name\": \"year\",\n \"type\": \"year\"\n}\n",
"{\n \"name\": \"year\",\n \"type\": \"year\",\n \"constraints\": {\n \"minimum\": 1970,\n \"maximum\": 2003\n }\n}\n"
]
},
{
"type": "object",
"title": "Year Month Field",
"description": "A calendar year month, being an integer with 1 or 2 digits. Equivalent to [gYearMonth in XML Schema](https://www.w3.org/TR/xmlschema-2/#gYearMonth)",
"required": [
"name",
"type"
],
"properties": {
"name": {
"title": "Name",
"description": "A name for this field.",
"type": "string"
},
"title": {
"title": "Title",
"description": "A human-readable title.",
"type": "string",
"examples": [
"{\n \"title\": \"My Package Title\"\n}\n"
]
},
"description": {
"title": "Description",
"description": "A text description. Markdown is encouraged.",
"type": "string",
"examples": [
"{\n \"description\": \"# My Package description\\nAll about my package.\"\n}\n"
]
},
"type": {
"description": "The type keyword, which `MUST` be a value of `yearmonth`.",
"enum": [
"yearmonth"
]
},
"format": {
"description": "There are no format keyword options for `yearmonth`: only `default` is allowed.",
"enum": [
"default"
],
"default": "default"
},
"constraints": {
"title": "Constraints",
"description": "The following constraints are supported for `yearmonth` fields.",
"type": "object",
"properties": {
"required": {
"type": "boolean",
"description": "Indicates whether a property must have a value for each instance.",
"context": "An empty string is considered to be a missing value."
},
"unique": {
"type": "boolean",
"description": "When `true`, each value for the property `MUST` be unique."
},
"pattern": {
"type": "string",
"description": "A regular expression pattern to test each value of the property against, where a truthy response indicates validity.",
"context": "Regular expressions `SHOULD` conform to the [XML Schema regular expression syntax](http://www.w3.org/TR/xmlschema-2/#regexs)."
},
"enum": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string"
}
},
"minimum": {
"type": "string"
},
"maximum": {
"type": "string"
}
}
},
"rdfType": {
"type": "string",
"description": "The RDF type for this field."
}
},
"examples": [
"{\n \"name\": \"month\",\n \"type\": \"yearmonth\"\n}\n",
"{\n \"name\": \"month\",\n \"type\": \"yearmonth\",\n \"constraints\": {\n \"minimum\": 1,\n \"maximum\": 6\n }\n}\n"
]
},
{
"type": "object",
"title": "Boolean Field",
"description": "The field contains boolean (true/false) data.",
"required": [
"name",
"type"
],
"properties": {
"name": {
"title": "Name",
"description": "A name for this field.",
"type": "string"
},
"title": {
"title": "Title",
"description": "A human-readable title.",
"type": "string",
"examples": [
"{\n \"title\": \"My Package Title\"\n}\n"
]
},
"description": {
"title": "Description",
"description": "A text description. Markdown is encouraged.",
"type": "string",
"examples": [
"{\n \"description\": \"# My Package description\\nAll about my package.\"\n}\n"
]
},
"type": {
"description": "The type keyword, which `MUST` be a value of `boolean`.",
"enum": [
"boolean"
]
},
"trueValues": {
"type": "array",
"minItems": 1,
"items": {
"type": "string"
},
"default": [
"true",
"True",
"TRUE",
"1"
]
},
"falseValues": {
"type": "array",
"minItems": 1,
"items": {
"type": "string"
},
"default": [
"false",
"False",
"FALSE",
"0"
]
},
"constraints": {
"title": "Constraints",
"description": "The following constraints are supported for `boolean` fields.",
"type": "object",
"properties": {
"required": {
"type": "boolean",
"description": "Indicates whether a property must have a value for each instance.",
"context": "An empty string is considered to be a missing value."
},
"enum": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "boolean"
}
}
}
},
"rdfType": {
"type": "string",
"description": "The RDF type for this field."
}
},
"examples": [
"{\n \"name\": \"registered\",\n \"type\": \"boolean\"\n}\n"
]
},
{
"type": "object",
"title": "Object Field",
"description": "The field contains data which can be parsed as a valid JSON object.",
"required": [
"name",
"type"
],
"properties": {
"name": {
"title": "Name",
"description": "A name for this field.",
"type": "string"
},
"title": {
"title": "Title",
"description": "A human-readable title.",
"type": "string",
"examples": [
"{\n \"title\": \"My Package Title\"\n}\n"
]
},
"description": {
"title": "Description",
"description": "A text description. Markdown is encouraged.",
"type": "string",
"examples": [
"{\n \"description\": \"# My Package description\\nAll about my package.\"\n}\n"
]
},
"type": {
"description": "The type keyword, which `MUST` be a value of `object`.",
"enum": [
"object"
]
},
"format": {
"description": "There are no format keyword options for `object`: only `default` is allowed.",
"enum": [
"default"
],
"default": "default"
},
"constraints": {
"title": "Constraints",
"description": "The following constraints apply for `object` fields.",
"type": "object",
"properties": {
"required": {
"type": "boolean",
"description": "Indicates whether a property must have a value for each instance.",
"context": "An empty string is considered to be a missing value."
},
"unique": {
"type": "boolean",
"description": "When `true`, each value for the property `MUST` be unique."
},
"enum": {
"oneOf": [
{
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string"
}
},
{
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "object"
}
}
]
},
"minLength": {
"type": "integer",
"description": "An integer that specifies the minimum length of a value."
},
"maxLength": {
"type": "integer",
"description": "An integer that specifies the maximum length of a value."
}
}
},
"rdfType": {
"type": "string",
"description": "The RDF type for this field."
}
},
"examples": [
"{\n \"name\": \"extra\"\n \"type\": \"object\"\n}\n"
]
},
{
"type": "object",
"title": "GeoPoint Field",
"description": "The field contains data describing a geographic point.",
"required": [
"name",
"type"
],
"properties": {
"name": {
"title": "Name",
"description": "A name for this field.",
"type": "string"
},
"title": {
"title": "Title",
"description": "A human-readable title.",
"type": "string",
"examples": [
"{\n \"title\": \"My Package Title\"\n}\n"
]
},
"description": {
"title": "Description",
"description": "A text description. Markdown is encouraged.",
"type": "string",
"examples": [
"{\n \"description\": \"# My Package description\\nAll about my package.\"\n}\n"
]
},
"type": {
"description": "The type keyword, which `MUST` be a value of `geopoint`.",
"enum": [
"geopoint"
]
},
"format": {
"description": "The format keyword options for `geopoint` are `default`,`array`, and `ob