Skip to content

Instantly share code, notes, and snippets.

@sffc
Created December 6, 2018 09:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sffc/b2d85490e436de4d3702d0e34ca67f12 to your computer and use it in GitHub Desktop.
Save sffc/b2d85490e436de4d3702d0e34ca67f12 to your computer and use it in GitHub Desktop.
Schema for the data filter file introduced in unicode-org/icu#301
{
"$id": "http://unicode.org/icu-filter-schema",
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "JSON Schema for an ICU data filter file",
"type": "object",
"properties": {
"localeFilter": { "$ref": "#/definitions/filter" },
"featureFilters": {
"type": "object",
"properties": {
"brkitr_dictionaries": { "$ref": "#/definitions/filter" },
"brkitr_index": { "$ref": "#/definitions/filter" },
"brkitr_rules": { "$ref": "#/definitions/filter" },
"brkitr_tree": { "$ref": "#/definitions/filter" },
"cnvalias": { "$ref": "#/definitions/filter" },
"coll_index": { "$ref": "#/definitions/filter" },
"coll_tree": { "$ref": "#/definitions/filter" },
"coll_ucadata": { "$ref": "#/definitions/filter" },
"confusables": { "$ref": "#/definitions/filter" },
"conversion": { "$ref": "#/definitions/filter" },
"curr_index": { "$ref": "#/definitions/filter" },
"curr_supplemental": { "$ref": "#/definitions/filter" },
"curr_tree": { "$ref": "#/definitions/filter" },
"lang_index": { "$ref": "#/definitions/filter" },
"lang_tree": { "$ref": "#/definitions/filter" },
"locales_index": { "$ref": "#/definitions/filter" },
"locales_tree": { "$ref": "#/definitions/filter" },
"misc": { "$ref": "#/definitions/filter" },
"normalization": { "$ref": "#/definitions/filter" },
"rbnf_index": { "$ref": "#/definitions/filter" },
"rbnf_tree": { "$ref": "#/definitions/filter" },
"region_index": { "$ref": "#/definitions/filter" },
"region_tree": { "$ref": "#/definitions/filter" },
"stringprep": { "$ref": "#/definitions/filter" },
"translit": { "$ref": "#/definitions/filter" },
"unames": { "$ref": "#/definitions/filter" },
"unit_index": { "$ref": "#/definitions/filter" },
"unit_tree": { "$ref": "#/definitions/filter" },
"zone_index": { "$ref": "#/definitions/filter" },
"zone_tree": { "$ref": "#/definitions/filter" }
},
"additionalProperties": false
}
},
"additionalProperties": false,
"definitions": {
"filter": {
"type": "object",
"oneOf": [
{
"properties": {
"filterType": { "$ref": "#/definitions/filterType" },
"whitelist": { "$ref": "#/definitions/stringList" }
},
"required": ["whitelist"],
"additionalProperties": false
},
{
"properties": {
"filterType": { "$ref": "#/definitions/filterType" },
"blacklist": { "$ref": "#/definitions/stringList" }
},
"required": ["blacklist"],
"additionalProperties": false
},
{
"properties": {
"filterType": { "$ref": "#/definitions/filterType" }
},
"additionalProperties": false
}
]
},
"filterType": {
"type": "string",
"enum": [
"file-stem",
"language",
"regex",
"exclude"
]
},
"stringList": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"uniqueItems": true
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment