Hi All,

Please find below details on the support provided in defining the data
types for objects( when holding values) in JSON schema.

Problem:

When an object array or a primitive array or an object  holds a value,
there should be a way to define the data type of that value in the schema.

<h:person xmlns:h="http://www.w3.org/TR/html4/";>
<firstName>sample</firstName>
        <phone primary="true">*0717777771* <0717777771><ext>01</ext></phone>
<phone primary="false">*0112655655* <0112655655><ext>01</ext></phone>
</h:person>

Solution:

We have introduced an object called "value" as below in defining the data
type

"value":{
  "type": "number"
     }

 1. An object array with attributes, properties and values

<h:person xmlns:h="http://www.w3.org/TR/html4/";>
   <firstName>sample</firstName>
   <phone primary="false">
      0112655655
      <ext>01</ext>
   </phone>
   <phone primary="false">
      0112655655
      <ext>01</ext>
   </phone>
</h:person>

{
   "$schema":"http://json-schema.org/draft-04/schema#";,
   "title":"person",
   "id":"http://wso2jsonschema.org";,
   "type":"object",
   "properties":{
      "firstName":{
         "id":"http://wso2jsonschema.org/firstName";,
         "type":"string"
      },
      "phone":{
         "id":"http://wso2jsonschema.org/phone";,
         "type":"array",
         "items":[
            {
               "id":"http://wso2jsonschema.org/phone/0";,
               "type":"object",
              * "value":{  *
*                  "type":"number"*
*               },*
               "properties":{
                  "ext":{
                     "id":"http://wso2jsonschema.org/phone/0/ext";,
                     "type":"number"
                  }
               },
               "attributes":{
                  "primary":{
                     "id":"http://wso2jsonschema.org/phone/0/primary";,
                     "type":"boolean"
                  }
               }
            }
         ]
      }
   }
}

2. Primitive array with values

<person>
   <firstName>sample</firstName>
   <phone>0112655655</phone>
   <phone>0112655656</phone>
</person>

{
   "$schema":"http://json-schema.org/draft-04/schema#";,
   "title":"person",
   "id":"http://wso2jsonschema.org";,
   "type":"object",
   "properties":{
      "firstName":{
         "id":"http://wso2jsonschema.org/firstName";,
         "type":"string"
      },
      "phone":{
         "id":"http://wso2jsonschema.org/phone";,
         "type":"array",
         "items":[
            {
             *  "id":"http://wso2jsonschema.org/phone/phone
<http://wso2jsonschema.org/phone/phone>",*
*               "type":"number"*
            }
         ]
      }
   }
}

3. Object with values

<person>
        <firstName>sample</firstName>
        <phone primary="true">071655339</phone>
</person>

{
   "$schema":"http://json-schema.org/draft-04/schema#";,
   "title":"person",
   "id":"http://wso2jsonschema.org";,
   "type":"object",
   "properties":{
      "firstName":{
         "id":"http://wso2jsonschema.org/firstName";,
         "type":"string"
      },
      "phone":{
         "id":"http://wso2jsonschema.org/phone";,
         "type":"object",
        * "value":{  *
*            "type":"number"*
*         },*
         "attributes":{
            "primary":{
               "id":"http://wso2jsonschema.org/primary";,
               "type":"boolean"
            }
         }
      }
   }

Thanks,
Sohani
Sohani Weerasinghe
Software Engineer
WSO2, Inc: http://wso2.com

Mobile  : +94 716439774
Blog     :http://christinetechtips.blogspot.com/
Twitter  : https://twitter.com/sohanichristine
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to