1

https://github.com/epoberezkin/ajvライブラリswitchを使用して、JSON スキーマ v5の属性を使用しようとしています。

次のスキーマがありますが、機能していません。

{
  "type": "array",
  "id": "http://localhost/drinks.json",
  "items": {
    "type": "object",
    "properties": {
      "items": {
        "type": "array",
        "items": {
          "switch": [
            {
              "if": {
                "properties": {
                  "type": {
                    "enum": ["coffee", "tea"]
                  }
                }
              },
              "then": {
                "$ref": "http://localhost/caffeinated.json"
              }
            },
            {
              "then": {
                "$ref": "http://localhost/decaf.json"
              }
            }
          ]
        }
      }
    }
  }
}

明確にするために、$refs は switch ステートメントがなくても問題なく機能します。たとえば、これは正しく検証されます。

{
  "type": "array",
  "id": "http://localhost/drinks.json",
  "items": {
    "type": "object",
    "properties": {
      "items": {
        "type": "array",
        "items": {
          "oneOf": [
            {
              "$ref": "http://localhost/caffeinated.json"
            },
            {
              "$ref": "http://localhost/decaf.json"
            }
          ]
        }
      }
    }
  }
}

しかし、最初のスキーマは機能しません。「機能しない」とは、有効/無効をトリガーすることさえできないことを意味します。私は何か間違ったことをしましたか?

4

0 に答える 0