2016-08-09 8 views
0

Basierend auf einigen Bedingungen kann mein IPV4 entweder 2 oder 3 Eigenschaften haben, aber diese sind erforderlich. Wie man es definiert. Ich habe unter dem Schema versucht. Ich bekomme Fehlermeldung, dass "JSON gilt gegen mehr als ein Schema von 'oneOf' Gültige Schema Indizes:. 0, 1"Json-Schema Variableneigenschaften

"IPv4Type": { 
    "type": "object", 
    "oneOf": [ 
     { 
      "properties": { 
       "provider-address": { 
        "type": "string", 
        "format": "ipv4" 
       }, 
       "customer-address": { 
        "type": "string", 
        "format": "ipv4" 
       }, 
       "mask": { 
        "type": "number" 
       } 
      }, 
      "required": [ 
       "provider-address", 
       "customer-address", 
       "mask" 
      ] 
     }, 
     { 
      "properties": { 
       "provider-address": { 
        "type": "string", 
        "format": "ipv4" 
       }, 
       "mask": { 
        "type": "number" 
       } 
      }, 
      "required": [ 
       "provider-address", 
       "mask" 
      ] 
     } 
    ] 
} 
+0

Wie ist die Bedingung? Wie das Problem gelöst wird, hängt davon ab, ob die Bedingung der Wert eines Feldes oder das Vorhandensein eines Feldes ist. – Jason

Antwort

0

Einige Ideen:

  • Sie die oneOf fallen kann, definieren in einem Objekt JSON, mit allen drei Eigenschaften definiert, aber das Hinzufügen nur „Anbieter-Adresse“ und „Maske“ nach Bedarf
  • definieren "additionalProperties": false die die zweite Definition unter oneOf
  • ersetzt oneOf mit anyOf