基本表現 -3



複数の形式の表現

 共通データ仕様では、複数の表現を許しているものがあります。例えは、座標を表現する場合に、座標点を表現する場合とポリゴンで表現する場合があります。また、住所も一般的な表現に加え、コードによる表現も許しています。
 JSON Schemaでは、その様な複数り表現も許しています。その様な場合にはoneOfを使います。例えば、座標では以下の様になります。


   "location": {
     "type": "object",
     "properties": {
       "type": {"const": "geo:json"},
       "value": {
         "oneOf": [
           {
             "type": "object",
             "properties": {
               "type": {"const":"Point"},
               "coordinates": {
                 "type": "array",
                 "items": {
                   "type": "number",
                   "minItems": 2,
                   "maxItems": 3
                 }
               }
             },
             "required": ["type", "coordinates"]
           },
           {
             "type": "object",
             "properties": {
               "type": {"const":"Polygon"},
               "coordinates": {
                 "type": "array",
                 "items": {
                   "type": "array",
                   "items": {
                     "type": "array",
                     "items": {
                       "type": "number",
                       "minItems": 2,
                       "maxItems": 3
                     }
                   }
                 }
               }
             },
             "required": ["type", "coordinates"]
           }
         ]
       }
     },
     "required": ["type", "value"]
   },