JSONスキーマ(v04)依存関係のあるanyOf

異なる

IBANアカウント番号(この場合はaBICが必要)、またはそのaccount_number両方を持つことができるJSONがあります。

したがって、これは有効です(のみaccount_number):

"bankaccount_data": [
    {
        "bic": null,
        "iban": null,
        "account_name": "Bankgiro",
        "account_number": "12345-6789",
        "bank_name": "Bankgiro",
        "type": "Bankgiro"
    }
]

そして、これはと有効であるibanbic

"bankaccount_data": [
    {
        "bic": "BANKBIC",
        "iban": "SE0123456789",
        "account_name": "Bankgiro",
        "account_number": null,
        "bank_name": "Bankgiro",
        "type": "Bankgiro"
    }
]

でも、この両方を持つaccount_numberiban/bic

"bankaccount_data": [
    {
        "bic": "BANKBIC",
        "iban": "SE0123456789",
        "account_name": "Bankgiro",
        "account_number": "12345-6789",
        "bank_name": "Bankgiro",
        "type": "Bankgiro"
    }
]

私の問題は、両方を要求することibanbic、どちらかまたは両方が存在するかどうかです。私はそれを行っていないこのスキーマを持っていますが、私の必要性を「説明」する必要があります。

"bankaccount_data": {
  "type": "array",
  "items": [
    {
      "type": "object",
      "properties": {
        "account_name": { "type": "string" },
        "bank_name": { "type": [ "string", "null" ] },
        "type": { "type": "string" }
      },
      "required": [ "type" ],
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "bic":   { "type": "string" },
            "iban": { "type": "string" }
          },
          "required": [ "bic", "iban" ],
          "dependencies": {
              "iban": [
                  "bic"
              ],
              "bic": [
                "iban"
            ]
          }
        },
        {
          "type": "object",
          "properties": {
            "account_number":   { "type": "string" }
          },
          "required": [ "account_number" ]
        }
      ]
    }
  ]
}
Relequestual

よくわかりませんでしたが、存在するibanどうを尋ねていると思いますがbic、もう一方も存在する必要があります。

あなたはここで正しい考えを持っていました。ただし、値が単に存在しないのではなくnullになる可能性があるため、複雑になります。

dependenciesプロパティが存在することを確認するだけで、その値とは何の関係もありません。nullまだ値です。dependenciesキーがオブジェクトに存在することを常に期待しているため、状況に応じて支援することはできません。

まず、解決策を見てみましょう。

{
  "anyOf": [
    {
      "properties": {
        "bic":   { "type": "string" },
        "iban": { "type": "string" },
        "account_number": { "enum": [null]}
      },
      "required": [
        "iban",
        "bic"
      ]
    },
    {
      "required": [
        "account_number"
      ],
      "properties": {
        "bic":   { "enum": [null] },
        "iban": { "enum": [null] },
        "account_number": { "type": "string" }
      }
    }
  ]
}

https://jsonschema.dev/s/dg0CY

この種の複製が必要な理由は、チェックする条件を完全に表現する必要があるためです。

anyOf配列の値はサブスキーマです。値はそれ自体が完全なスキーマです。

の値を取ることは、探している制約を表しますがanyOfまたはについては何も述べていないため、スキーマの「いずれか」が有効であると見なされます。の各値は、他のの競合を認識ていません。結果のみが結合されます。anyOf[0]anyOf[1]ibanbicanyOf

JSONスキーマは制約ベースであるため、表現されていないものはすべて許可されます。

上記で提供したソリューションでは、の各スキーマがanyOf必要な条件を完全チェックします。

あなたの例では、draft-07ではdraft-04と同じように機能するため、デモは同じです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

値に基づくJSONスキーマの依存関係

分類Dev

JSONスキーマ:条件付き依存関係

分類Dev

うんJS検証スキーマの依存関係

分類Dev

JavaScript依存関係のあるポリマー要素

分類Dev

JSONスキーマ:additionalProperties内でanyOf、oneOf、allOfを使用する

分類Dev

別々のオブジェクトのプロパティ間のJSONスキーマの依存関係

分類Dev

Helmチャート間の依存関係は、マイクロサービス間の依存関係を反映する必要がありますか?

分類Dev

jsonスキーマの列挙値に基づく双方向バインディングの依存関係

分類Dev

依存関係のあるAndroidStudioエクスポートjar

分類Dev

依存関係のあるコンストラクター

分類Dev

依存関係のあるMavenjar?

分類Dev

依存関係のあるregisterModule

分類Dev

依存関係のあるキュー(pub-sub)分散システム内のジョブ?

分類Dev

XSDスキーマ-異なるレベルの要素間に依存関係を作成する方法

分類Dev

依存関係をスキップする代わりに、エアフロー待機の依存関係

分類Dev

XMLスキーマは値間の依存関係を強制できますか?

分類Dev

依存関係のあるMaven依存関係プラグインコピーjar

分類Dev

anyOfおよびoneOf要件を持つオブジェクトの配列を検証するjsonスキーマ

分類Dev

POJOへのanyOfフィールドを持つJSONスキーマ

分類Dev

依存関係のあるJavadocとソースコードを含める方法

分類Dev

依存関係のある/ resからリソースを取得する

分類Dev

依存関係のあるテスト可能なコントローラー

分類Dev

依存関係の問題があるOrionのインストール

分類Dev

Angular2-ChangeDetectorRef依存関係のあるテストコンポーネント

分類Dev

スコープが異なる依存関係内のMaven依存関係

分類Dev

スキーマの登録 - Mongo 関係

分類Dev

マイクロサービスの依存関係を最適に管理する

分類Dev

多対1の関係のスキーマを生成する

分類Dev

Unityを使用して、コンシューマー/コンテキストの依存関係に基づいて特定の依存関係を挿入します

Related 関連記事

  1. 1

    値に基づくJSONスキーマの依存関係

  2. 2

    JSONスキーマ:条件付き依存関係

  3. 3

    うんJS検証スキーマの依存関係

  4. 4

    JavaScript依存関係のあるポリマー要素

  5. 5

    JSONスキーマ:additionalProperties内でanyOf、oneOf、allOfを使用する

  6. 6

    別々のオブジェクトのプロパティ間のJSONスキーマの依存関係

  7. 7

    Helmチャート間の依存関係は、マイクロサービス間の依存関係を反映する必要がありますか?

  8. 8

    jsonスキーマの列挙値に基づく双方向バインディングの依存関係

  9. 9

    依存関係のあるAndroidStudioエクスポートjar

  10. 10

    依存関係のあるコンストラクター

  11. 11

    依存関係のあるMavenjar?

  12. 12

    依存関係のあるregisterModule

  13. 13

    依存関係のあるキュー(pub-sub)分散システム内のジョブ?

  14. 14

    XSDスキーマ-異なるレベルの要素間に依存関係を作成する方法

  15. 15

    依存関係をスキップする代わりに、エアフロー待機の依存関係

  16. 16

    XMLスキーマは値間の依存関係を強制できますか?

  17. 17

    依存関係のあるMaven依存関係プラグインコピーjar

  18. 18

    anyOfおよびoneOf要件を持つオブジェクトの配列を検証するjsonスキーマ

  19. 19

    POJOへのanyOfフィールドを持つJSONスキーマ

  20. 20

    依存関係のあるJavadocとソースコードを含める方法

  21. 21

    依存関係のある/ resからリソースを取得する

  22. 22

    依存関係のあるテスト可能なコントローラー

  23. 23

    依存関係の問題があるOrionのインストール

  24. 24

    Angular2-ChangeDetectorRef依存関係のあるテストコンポーネント

  25. 25

    スコープが異なる依存関係内のMaven依存関係

  26. 26

    スキーマの登録 - Mongo 関係

  27. 27

    マイクロサービスの依存関係を最適に管理する

  28. 28

    多対1の関係のスキーマを生成する

  29. 29

    Unityを使用して、コンシューマー/コンテキストの依存関係に基づいて特定の依存関係を挿入します

ホットタグ

アーカイブ