12e5b6d6dSopenharmony_ci// Copyright (C) 2018 and later: Unicode, Inc. and others. 22e5b6d6dSopenharmony_ci// License & terms of use: http://www.unicode.org/copyright.html 32e5b6d6dSopenharmony_ci 42e5b6d6dSopenharmony_ci{ 52e5b6d6dSopenharmony_ci "$id": "http://unicode.org/icu-filter-schema", 62e5b6d6dSopenharmony_ci "$schema": "http://json-schema.org/draft-04/schema#", 72e5b6d6dSopenharmony_ci "description": "JSON Schema for an ICU data filter file", 82e5b6d6dSopenharmony_ci "type": "object", 92e5b6d6dSopenharmony_ci "properties": { 102e5b6d6dSopenharmony_ci "strategy": { 112e5b6d6dSopenharmony_ci "type": "string", 122e5b6d6dSopenharmony_ci "enum": ["additive", "subtractive"] 132e5b6d6dSopenharmony_ci }, 142e5b6d6dSopenharmony_ci "localeFilter": { "$ref": "#/definitions/filter" }, 152e5b6d6dSopenharmony_ci "featureFilters": { 162e5b6d6dSopenharmony_ci "type": "object", 172e5b6d6dSopenharmony_ci "additionalProperties": { 182e5b6d6dSopenharmony_ci "oneOf": [ 192e5b6d6dSopenharmony_ci { "$ref": "#/definitions/filter" }, 202e5b6d6dSopenharmony_ci { 212e5b6d6dSopenharmony_ci "type": "string", 222e5b6d6dSopenharmony_ci "enum": ["include", "exclude"] 232e5b6d6dSopenharmony_ci } 242e5b6d6dSopenharmony_ci ] 252e5b6d6dSopenharmony_ci } 262e5b6d6dSopenharmony_ci }, 272e5b6d6dSopenharmony_ci "resourceFilters": { 282e5b6d6dSopenharmony_ci "type": "array", 292e5b6d6dSopenharmony_ci "items": { 302e5b6d6dSopenharmony_ci "type": "object", 312e5b6d6dSopenharmony_ci "properties": { 322e5b6d6dSopenharmony_ci "categories": { 332e5b6d6dSopenharmony_ci "type": "array", 342e5b6d6dSopenharmony_ci "items": { "type": "string" } 352e5b6d6dSopenharmony_ci }, 362e5b6d6dSopenharmony_ci "files": { "$ref": "#/definitions/filter" }, 372e5b6d6dSopenharmony_ci "rules": { 382e5b6d6dSopenharmony_ci "type": "array", 392e5b6d6dSopenharmony_ci "items": { 402e5b6d6dSopenharmony_ci "type": "string", 412e5b6d6dSopenharmony_ci "pattern": "^[+-]/[\\S]*$" 422e5b6d6dSopenharmony_ci } 432e5b6d6dSopenharmony_ci } 442e5b6d6dSopenharmony_ci }, 452e5b6d6dSopenharmony_ci "required": ["categories", "rules"], 462e5b6d6dSopenharmony_ci "additionalProperties": false 472e5b6d6dSopenharmony_ci } 482e5b6d6dSopenharmony_ci }, 492e5b6d6dSopenharmony_ci "fileReplacements": { 502e5b6d6dSopenharmony_ci "type": "object", 512e5b6d6dSopenharmony_ci "properties": { 522e5b6d6dSopenharmony_ci "directory": { 532e5b6d6dSopenharmony_ci "type": "string", 542e5b6d6dSopenharmony_ci "pattern": "^(\\$SRC|\\$FILTERS|\\$CWD|/$|/[^/]+)(/[^/]+)*$" 552e5b6d6dSopenharmony_ci }, 562e5b6d6dSopenharmony_ci "replacements": { 572e5b6d6dSopenharmony_ci "type": "array", 582e5b6d6dSopenharmony_ci "items": { 592e5b6d6dSopenharmony_ci "oneOf": [ 602e5b6d6dSopenharmony_ci { "type": "string" }, 612e5b6d6dSopenharmony_ci { 622e5b6d6dSopenharmony_ci "type": "object", 632e5b6d6dSopenharmony_ci "properties": { 642e5b6d6dSopenharmony_ci "src": { "type": "string" }, 652e5b6d6dSopenharmony_ci "dest": { "type": "string" } 662e5b6d6dSopenharmony_ci }, 672e5b6d6dSopenharmony_ci "additionalProperties": false, 682e5b6d6dSopenharmony_ci "required": ["src", "dest"] 692e5b6d6dSopenharmony_ci } 702e5b6d6dSopenharmony_ci ] 712e5b6d6dSopenharmony_ci } 722e5b6d6dSopenharmony_ci } 732e5b6d6dSopenharmony_ci }, 742e5b6d6dSopenharmony_ci "additionalProperties": false, 752e5b6d6dSopenharmony_ci "required": ["directory", "replacements"] 762e5b6d6dSopenharmony_ci }, 772e5b6d6dSopenharmony_ci "collationUCAData": { 782e5b6d6dSopenharmony_ci "type": "string", 792e5b6d6dSopenharmony_ci "enum": ["unihan", "implicithan"] 802e5b6d6dSopenharmony_ci }, 812e5b6d6dSopenharmony_ci "usePoolBundle": { 822e5b6d6dSopenharmony_ci "type": "boolean" 832e5b6d6dSopenharmony_ci } 842e5b6d6dSopenharmony_ci }, 852e5b6d6dSopenharmony_ci "additionalProperties": false, 862e5b6d6dSopenharmony_ci "definitions": { 872e5b6d6dSopenharmony_ci "filter": { 882e5b6d6dSopenharmony_ci "type": "object", 892e5b6d6dSopenharmony_ci "oneOf": [ 902e5b6d6dSopenharmony_ci { 912e5b6d6dSopenharmony_ci "properties": { 922e5b6d6dSopenharmony_ci "filterType": { 932e5b6d6dSopenharmony_ci "$ref": "#/definitions/includeExcludeFilterTypes" 942e5b6d6dSopenharmony_ci }, 952e5b6d6dSopenharmony_ci "whitelist": { "$ref": "#/definitions/stringList" } 962e5b6d6dSopenharmony_ci }, 972e5b6d6dSopenharmony_ci "required": ["whitelist"], 982e5b6d6dSopenharmony_ci "additionalProperties": false 992e5b6d6dSopenharmony_ci }, 1002e5b6d6dSopenharmony_ci { 1012e5b6d6dSopenharmony_ci "properties": { 1022e5b6d6dSopenharmony_ci "filterType": { 1032e5b6d6dSopenharmony_ci "$ref": "#/definitions/includeExcludeFilterTypes" 1042e5b6d6dSopenharmony_ci }, 1052e5b6d6dSopenharmony_ci "blacklist": { "$ref": "#/definitions/stringList" } 1062e5b6d6dSopenharmony_ci }, 1072e5b6d6dSopenharmony_ci "required": ["blacklist"], 1082e5b6d6dSopenharmony_ci "additionalProperties": false 1092e5b6d6dSopenharmony_ci }, 1102e5b6d6dSopenharmony_ci { 1112e5b6d6dSopenharmony_ci "properties": { 1122e5b6d6dSopenharmony_ci "filterType": { 1132e5b6d6dSopenharmony_ci "$ref": "#/definitions/includeExcludeFilterTypes" 1142e5b6d6dSopenharmony_ci }, 1152e5b6d6dSopenharmony_ci "includelist": { "$ref": "#/definitions/stringList" } 1162e5b6d6dSopenharmony_ci }, 1172e5b6d6dSopenharmony_ci "required": ["includelist"], 1182e5b6d6dSopenharmony_ci "additionalProperties": false 1192e5b6d6dSopenharmony_ci }, 1202e5b6d6dSopenharmony_ci { 1212e5b6d6dSopenharmony_ci "properties": { 1222e5b6d6dSopenharmony_ci "filterType": { 1232e5b6d6dSopenharmony_ci "$ref": "#/definitions/includeExcludeFilterTypes" 1242e5b6d6dSopenharmony_ci }, 1252e5b6d6dSopenharmony_ci "excludelist": { "$ref": "#/definitions/stringList" } 1262e5b6d6dSopenharmony_ci }, 1272e5b6d6dSopenharmony_ci "required": ["excludelist"], 1282e5b6d6dSopenharmony_ci "additionalProperties": false 1292e5b6d6dSopenharmony_ci }, 1302e5b6d6dSopenharmony_ci { 1312e5b6d6dSopenharmony_ci "properties": { 1322e5b6d6dSopenharmony_ci "filterType": { 1332e5b6d6dSopenharmony_ci "type": "string", 1342e5b6d6dSopenharmony_ci "enum": ["exclude"] 1352e5b6d6dSopenharmony_ci } 1362e5b6d6dSopenharmony_ci }, 1372e5b6d6dSopenharmony_ci "required": ["filterType"], 1382e5b6d6dSopenharmony_ci "additionalProperties": false 1392e5b6d6dSopenharmony_ci }, 1402e5b6d6dSopenharmony_ci { 1412e5b6d6dSopenharmony_ci "properties": { 1422e5b6d6dSopenharmony_ci "filterType": { 1432e5b6d6dSopenharmony_ci "type": "string", 1442e5b6d6dSopenharmony_ci "enum": ["locale"] 1452e5b6d6dSopenharmony_ci }, 1462e5b6d6dSopenharmony_ci "includeChildren": { 1472e5b6d6dSopenharmony_ci "type": "boolean" 1482e5b6d6dSopenharmony_ci }, 1492e5b6d6dSopenharmony_ci "includeScripts": { 1502e5b6d6dSopenharmony_ci "type": "boolean" 1512e5b6d6dSopenharmony_ci }, 1522e5b6d6dSopenharmony_ci "whitelist": { "$ref": "#/definitions/stringList" } 1532e5b6d6dSopenharmony_ci }, 1542e5b6d6dSopenharmony_ci "required": ["filterType", "whitelist"], 1552e5b6d6dSopenharmony_ci "additionalProperties": false 1562e5b6d6dSopenharmony_ci }, 1572e5b6d6dSopenharmony_ci { 1582e5b6d6dSopenharmony_ci "properties": { 1592e5b6d6dSopenharmony_ci "filterType": { 1602e5b6d6dSopenharmony_ci "type": "string", 1612e5b6d6dSopenharmony_ci "enum": ["locale"] 1622e5b6d6dSopenharmony_ci }, 1632e5b6d6dSopenharmony_ci "includeChildren": { 1642e5b6d6dSopenharmony_ci "type": "boolean" 1652e5b6d6dSopenharmony_ci }, 1662e5b6d6dSopenharmony_ci "includeScripts": { 1672e5b6d6dSopenharmony_ci "type": "boolean" 1682e5b6d6dSopenharmony_ci }, 1692e5b6d6dSopenharmony_ci "includelist": { "$ref": "#/definitions/stringList" } 1702e5b6d6dSopenharmony_ci }, 1712e5b6d6dSopenharmony_ci "required": ["filterType", "includelist"], 1722e5b6d6dSopenharmony_ci "additionalProperties": false 1732e5b6d6dSopenharmony_ci }, 1742e5b6d6dSopenharmony_ci { 1752e5b6d6dSopenharmony_ci "properties": { 1762e5b6d6dSopenharmony_ci "filterType": { 1772e5b6d6dSopenharmony_ci "type": "string", 1782e5b6d6dSopenharmony_ci "enum": ["union"] 1792e5b6d6dSopenharmony_ci }, 1802e5b6d6dSopenharmony_ci "unionOf": { 1812e5b6d6dSopenharmony_ci "type": "array", 1822e5b6d6dSopenharmony_ci "items": { "$ref": "#/definitions/filter" } 1832e5b6d6dSopenharmony_ci } 1842e5b6d6dSopenharmony_ci }, 1852e5b6d6dSopenharmony_ci "required": ["filterType", "unionOf"], 1862e5b6d6dSopenharmony_ci "additionalProperties": false 1872e5b6d6dSopenharmony_ci } 1882e5b6d6dSopenharmony_ci ] 1892e5b6d6dSopenharmony_ci }, 1902e5b6d6dSopenharmony_ci "includeExcludeFilterTypes": { 1912e5b6d6dSopenharmony_ci "type": "string", 1922e5b6d6dSopenharmony_ci "enum": [ 1932e5b6d6dSopenharmony_ci "language", 1942e5b6d6dSopenharmony_ci "regex" 1952e5b6d6dSopenharmony_ci ] 1962e5b6d6dSopenharmony_ci }, 1972e5b6d6dSopenharmony_ci "stringList": { 1982e5b6d6dSopenharmony_ci "type": "array", 1992e5b6d6dSopenharmony_ci "items": { 2002e5b6d6dSopenharmony_ci "type": "string" 2012e5b6d6dSopenharmony_ci }, 2022e5b6d6dSopenharmony_ci "minItems": 1, 2032e5b6d6dSopenharmony_ci "uniqueItems": true 2042e5b6d6dSopenharmony_ci } 2052e5b6d6dSopenharmony_ci } 2062e5b6d6dSopenharmony_ci} 207