Имеется JSON Schema, которая описывает массив директорий в JSON файле. Директории могут содержать абсолютные локальные пути, либо быть в UNC формате (Long UNC не должно поддерживаться). Файл JSON проверяется на соответствие этой схеме с помощью библиотеки Json.NET Schema
Я понял, что скорее всего нужно использовать регулярные выражения и oneOf с defenitions, но не могу составить рабочий вариант RegExp.
Сейчас используется вариант представленный ниже, но как вы уже поняли он проверяет лишь начальные символы строки, а не всю строку на соответствие синтаксису.
Здесь можно опробовать схему.
JSON Schema
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"dirs": {
"type": "array",
"minItems": 1,
"maxItems": 999,
"uniqueItems": true,
"items": {
"oneOf" : [
{ "$ref": "#/definitions/localPath" },
{ "$ref": "#/definitions/uncPath" }
]
}
}
},
"definitions": {
"localPath": {
"type": "string",
"pattern": "^[a-zA-Z]\\:\\\\.*$"
},
"uncPath" : {
"type":"string",
"pattern" : "^\\\\[a-zA-Z].*$"
}
},
"additionalProperties": false,
"required": ["dirs"]
}
JSON
{
"dirs": [
"D:\\Users\\John.Doe\\Desktop",
"\\Server\\Share-Folder\\Folder"
]
}
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости