Hi All,

We have discussed to go as the following to represent name-spaces in data
mapper JSON schema's.


   - Each element can represent with a name-space value by using*
"xmlns" *field
   and url value as a JSON string.
      - "firstname":{
                           "id":"http://jsonschema.net/employee/0/firstname
      ",
                           "type":"string",
                           "xmlns":"http://namespace.test";
                        }"
   - And all name-spaces used in the schema should be listed with preferred
   prefix value in the root level of the schema under *"namespace"* field
   as a JSON Array of namespace JSON objects.
      - Eg: "namespaces": [ { "prefix":"ns1", "url":"
      http://employee.lastname"} , {"prefix":"ns2", "url":"
      http://namespace.test"} ]
   - Name-space JSON object should contain two fields as* "prefix" *and *"url"
      *with JSON String values.
         - { "prefix":"ns1", "url":"http://employee.lastname"}

Following schema shows a sample JSON schema for data mapper with
name-spaces.
{
   "$schema":"http://json-schema.org/draft-04/schema#";,
   "id":"http://jsonschema.net";,
   "title":"employees",
   "type":"object",
   *"xmlns":"http://namespace.test <http://namespace.test>",*
   "properties":{
      "employee":{
         "id":"http://jsonschema.net/employee";,
         "type":"array",
         *"xmlns":"http://namespace.test <http://namespace.test>",*
         "items":[
            {
               "id":"http://jsonschema.net/employee/0";,
               "type":"object",
               "properties":{
                  "firstname":{
                     "id":"http://jsonschema.net/employee/0/firstname";,
                     "type":"string",
                     *"xmlns":"http://namespace.test
<http://namespace.test>"*
                  },
                  "lastname":{
                     "id":"http://jsonschema.net/employee/0/lastname";,
                     "type":"string",
                     *"xmlns":"http://employee.lastname
<http://employee.lastname>"*
                  }
               },
               "required":[
                  "firstname",
                  "lastname"
               ]
            }
         ],
         "required":[
            "arrayRequired"
         ]
      }
   },
   "required":[
      "employees"
   ],
  *"namespaces":[{ "prefix":"ns1", "url":"http://employee.lastname
<http://employee.lastname>"},{"prefix":"ns2", "url":"http://namespace.test
<http://namespace.test>"}]*
}

Thanks,
Nuwan


On Fri, Mar 18, 2016 at 3:52 PM, Maheeka Jayasuriya <[email protected]>
wrote:

> Hi Sohani,
>
> Instead of properties array with attributes supported with @ prefix, can
> we use an attributes array in the schema ?
>
> For example :
>
> Current definition :
>
> "address": {
>             "id": "http://jsonschema.net/employee/0/address";,
>             "type": "object",
>             "properties": {
>               "city": {
>                 "id": "http://jsonschema.net/employee/0/address/city";,
>                 "type": "string"
>               },
>               "@no": {
>                 "id": "http://jsonschema.net/employee/0/address/no";,
>                 "type": "string"
>               },
>               "road": {
>                 "id": "http://jsonschema.net/employee/0/address/road";,
>                 "type": "string"
>               }
>             }
>           }
>
> With attributes array :
>
> "address": {
>         "id": "http://jsonschema.net/employee/0/address";,
>         "type": "object",
>         "attributes": {
>             "no": {
>                 "id": "http://jsonschema.net/employee/0/address/no";,
>                  "type": "string"
>             }
>         },
>         "properties": {
>             "city": {
>                 "id": "http://jsonschema.net/employee/0/address/city";,
>                         "type": "string"
>             },
>                    "road": {
>                 "id": "http://jsonschema.net/employee/0/address/road";,
>                         "type": "string"
>             }
>         }
>     }
>
> Two reasons to suggest this :
>
> 1. We do not have to use a prefix to define attributes and they can be
> easily distinguished from other fields since they are defined separate from
> other fields (properties)
> 2. In the case of a primitive type with attributes, we can still preserve
> the type as string and have attributes instead of using properties (since
> properties are only valid in json schema for object type)
>
>
> WDYT?
>
> Thanks,
> Maheeka
>
> Maheeka Jayasuriya
> Software Engineer
> Mobile : +94777750661
>
> On Wed, Mar 16, 2016 at 10:54 AM, Sohani Weerasinghe <[email protected]>
> wrote:
>
>> Hi,
>>
>> Please find the schema and the visual representation for representing the
>> attributes.
>>
>>       {
>>   "$schema": "http://json-schema.org/draft-04/schema#";,
>>   "id": "http://jsonschema.net";,
>>   "title" : "employees",
>>   "type": "object",
>>   "properties": {
>>     "employee": {
>>       "id": "http://jsonschema.net/employee";,
>>       "type": "array",
>>       "items": {
>>         "id": "http://jsonschema.net/employee/0";,
>>         "type": "object",
>>         "properties": {
>>           "firstname": {
>>             "id": "http://jsonschema.net/employee/0/firstname";,
>>             "type": "string"
>>           },
>>           "lastname": {
>>             "id": "http://jsonschema.net/employee/0/lastname";,
>>             "type": "string"
>>           },
>>           "address": {
>>             "id": "http://jsonschema.net/employee/0/address";,
>>             "type": "object",
>>             "properties": {
>>               "city": {
>>                 "id": "http://jsonschema.net/employee/0/address/city";,
>>                 "type": "string"
>>               },
>>              * "@no": {*
>>                 "id": "http://jsonschema.net/employee/0/address/no";,
>>                 "type": "string"
>>               },
>>               "road": {
>>                 "id": "http://jsonschema.net/employee/0/address/road";,
>>                 "type": "string"
>>               }
>>             }
>>           }
>>         },
>>         "required": [
>>           "firstname",
>>           "lastname",
>>           "address"
>>         ]
>>       },
>>       "required": [
>>         "0"
>>       ]
>>     }
>>   },
>>   "required": [
>>     "employee"
>>   ]
>> }
>>
>> Thanks,
>> Sohani
>>
>>
>>
>> Sohani Weerasinghe
>> Software Engineer
>> WSO2, Inc: http://wso2.com
>>
>> Mobile  : +94 716439774
>> Blog     :http://christinetechtips.blogspot.com/
>> Twitter  : https://twitter.com/sohanichristine
>>
>> On Wed, Mar 16, 2016 at 10:35 AM, Sohani Weerasinghe <[email protected]>
>> wrote:
>>
>>> Thanks Nuwan. Shall we go with '@' then?
>>>
>>> Sohani Weerasinghe
>>> Software Engineer
>>> WSO2, Inc: http://wso2.com
>>>
>>> Mobile  : +94 716439774
>>> Blog     :http://christinetechtips.blogspot.com/
>>> Twitter  : https://twitter.com/sohanichristine
>>>
>>> On Wed, Mar 16, 2016 at 10:23 AM, Nuwan Pallewela <[email protected]>
>>> wrote:
>>>
>>>> Hi sohani,
>>>>
>>>> I think we do not need to include new type called "attr" to define it
>>>> as a attribute. We can name the field with a prefix like "@" or "attr_".
>>>>
>>>> Eg:
>>>> "@firstname": {
>>>>             "id": "http://jsonschema.net/employee/0/firstname";,
>>>>             "type": "string"
>>>>           },
>>>>
>>>> or
>>>>
>>>> "attr_firstname": {
>>>>             "id": "http://jsonschema.net/employee/0/firstname";,
>>>>             "type": "string"
>>>>           },
>>>>
>>>> Thanks,
>>>> Nuwan
>>>>
>>>> On Wed, Mar 16, 2016 at 10:15 AM, Sohani Weerasinghe <[email protected]>
>>>> wrote:
>>>>
>>>>> Hi Nuwan/ Viraj,
>>>>>
>>>>> Can you please mention how are we going to handle $subject?
>>>>>
>>>>> Can we have a new field as attr as below to handle the attributes?
>>>>>
>>>>> "firstname": {
>>>>>             "id": "http://jsonschema.net/employee/0/firstname";,
>>>>>             "type": "string",
>>>>>             *"attr" : "xyz"*
>>>>>           },
>>>>>
>>>>> Thanks,
>>>>> Sohani
>>>>>
>>>>> Sohani Weerasinghe
>>>>> Software Engineer
>>>>> WSO2, Inc: http://wso2.com
>>>>>
>>>>> Mobile  : +94 716439774
>>>>> Blog     :http://christinetechtips.blogspot.com/
>>>>> Twitter  : https://twitter.com/sohanichristine
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> ----------------------------------------------------------
>>>>
>>>> *Nuwan Chamara Pallewela*
>>>>
>>>>
>>>> *Software Engineer*
>>>>
>>>> *WSO2, Inc. *http://wso2.com
>>>> *lean . enterprise . middleware*
>>>>
>>>> Email   *[email protected] <[email protected]>*
>>>> Mobile  *+94719079739 <%2B94719079739>@*
>>>>
>>>>
>>>>
>>>
>>
>> _______________________________________________
>> Dev mailing list
>> [email protected]
>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>
>>
>


-- 
----------------------------------------------------------

*Nuwan Chamara Pallewela*


*Software Engineer*

*WSO2, Inc. *http://wso2.com
*lean . enterprise . middleware*

Email   *[email protected] <[email protected]>*
Mobile  *+94719079739@*
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to