我注意到以下内容:Reusable enum types in json schema ,它讨论了在 JSON 架构中定义可重用的枚举类型。
我会假设使用这个可重用的枚举类型是微不足道的,只需指定(在本例中)“MyEnum”的值作为“类型”值。
我不知道 Oxygen XML 的结果是否权威,但我尝试了类似以下的操作:
{
"$schema": "https://json-schema.org/draft/2019-09/schema#",
"type": "object",
"properties": {
"content": {"$ref": "#/definitions/content_type"}
},
"additionalProperties": false,
"definitions": {
"costCategory_type": {
"type": "object",
"enum": ["VH", "H", "M", "L"]
},
"allowedDevices_type": {
"type": "object",
"properties": {
"costCategory": {
"type": "costCategory_type"
},
在靠近底部的那一行,我引用“costCategory_type”的地方,Oxygen 给我一个语法错误,说
#/definitions/allowedDevices_type/properties/costCategory/type: unknown type: [costCategory_type]
我错过了什么?
最佳答案
是的,type
关键字的值只能来自列表 null
、boolean
、object
、数组
,字符串
,数字
,整数
。您可以使用 $ref
关键字引用定义:
...
"properties": {
"costCategory": {
"$ref": "#/definitions/costCategory_type",
}
}
(顺便说一句,你的定义永远不会按原样成功评估,因为你将它定义为“对象”类型,但枚举中的值列表都是字符串。)
关于jsonschema - 在 JSON 模式中,定义和引用可重用的枚举类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65889922/