我有这样定义的模式:
"permissions": {
"type": "array",
"properties": {
"items":
{
"$ref": "#/definitions/permissionsType"
}
}
},
和PermissionsType:
"permissionsType": {
"type": "string",
"pattern": "^[a-zA-Z0-9]+(:[a-zA-Z0-9][a-zA-Z0-9-]+)+$"
},
...
我不确定为什么正则表达式正则表达式会被忽略。
答案 0 :(得分:2)
删除properties
关键字,它将按预期工作。
我不确定您在尝试使用properties
关键字做什么。 properties
仅在要验证的实例是对象时适用。因为该实例是一个数组,所以properties
被忽略。如果实例是一个对象,则将应用properties
关键字,但是它将期望一个属性名称为"items"
与#/definitions/permissionsType
匹配的对象。我认为那不是你的意思。我认为您需要一个数组,其所有项均匹配#/definitions/permissionsType
。
"permissions": {
"type": "array",
"items": { "$ref": "#/definitions/permissionsType" }
}