所以,我试图为一组轴约束定义一个模式。因此,我想限制"轴"的可能值。元素到[" x"," y"," z"]。
这是我当前的样本及其输出。
{
"name_patterns": [
{
"regex": "block[_-]?([\\d]*)",
"class": "block",
"id_group": 1
}
],
"relationships": [
{
"src_class": "block",
"dst_class": "block",
"constraints": {
"axis": "x"
}
}
]
}
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"name_patterns": {"type": "array",
"items": { "$ref": "#/definitions/name_entry" } },
"relationships": {"type": "array",
"items": { "anyof": [ {"$ref": "#/definitions/relation"} ] } }
},
"definitions": {
"name_entry": {
"type": "object",
"properties": {
"regex": {"type": "string"},
"class": {"type": "string"},
"id_group": {"type": "number"}
},
"required": ["regex", "class"]
},
"relation": {
"type": "object",
"properties": {
"src_class": {"type": "string"},
"dst_class": {"type": "string"},
"constraints": {
"type": "object",
"properties": {
"axis": {
"enum": ["x", "y", "z"]
}
},
"required": ["axis"]
}
},
"required": ["src_class", "dst_class", "constraints"]
}
}
}
如何修复我的架构以拒绝枚举器中未指定的值?
答案 0 :(得分:4)
您的架构语法略有不同。
首先,您需要将属性定义放在properties
:
{
"properties": {
"axis": {...}
}
}
其次,type
定义了类型(例如"string"
),但您在此处不需要它。 enum
应该直接位于"axis"
架构中:
{
"properties": {
"axis": {
"enum": ["x", "y", "z"]
}
}
}