Hi All,
As per the offline discussion we had, xsi:type can be supported in the JSON
schema as described below
<address postalcode="111" *xsi:type="ipo:UKAddress"*>123
<city>ABC</city>
</address>
xsi:type can be added to a newly introduced json array called
"elementIdentifiers" and the value will be appended to to the field name in
the schema as shown below
{
"$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"
},
"*address,xsi:type=ipo:UKAddress"*: {
"id": "
http://wso2jsonschema.org/phone",
"type": "object",
"value":{
"type": "number"
},
"properties": {
"city": {
"id": "http://wso2jsonschema.org/address/city",
"type": "string"
}
},
"attributes": {
"postalcode": {
"id": "http://wso2jsonschema.org/address/postalcode",
"type": "string"
}
}
}
},
*"elementIdentifiers": [{*
* "type": "xsi:type"*
* }]*
}
@Nuwan : Feel free to add things we've discussed if I've missed anything
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 Mon, Apr 11, 2016 at 11:57 AM, Sohani Weerasinghe <[email protected]>
wrote:
> Correction : This shouldn't add for the root level.
>
> Sohani Weerasinghe
> Software Engineer
> WSO2, Inc: http://wso2.com
>
> Mobile : +94 716439774
> Blog :http://christinetechtips.blogspot.com/
> Twitter : https://twitter.com/sohanichristine
>
> On Mon, Apr 11, 2016 at 11:32 AM, Sohani Weerasinghe <[email protected]>
> wrote:
>
>> Thanks Viraj.
>>
>> I think this should be applied to the root level as well.
>>
>> {
>> "$schema": "http://json-schema.org/draft-04/schema#",
>> "title": "person",
>> * "value"{*
>> * "id": "http://wso2jsonschema.org
>> <http://wso2jsonschema.org>",*
>> * "type": "object*
>> * },*
>> "properties": {
>> "firstName": {
>> "id": "http://wso2jsonschema.org/firstName",
>> "type": "string"
>> },
>> "phone": {
>> "id": "http://wso2jsonschema.org/phone",
>> "type": "array",
>> "items": [{
>> * “value”:{*
>> * "id":
>> "http://wso2jsonschema.org/phone/phone
>> <http://wso2jsonschema.org/phone/phone>",*
>> * "type": "number"*
>> * },*
>> "attributes": {
>> "primary": {
>> "id": "http://wso2jsonschema.org/phone/primary",
>> "type": "boolean"
>> }
>> }
>> }]
>> }
>> }
>> }
>>
>>
>>
>>
>>
>>
>>
>> Sohani Weerasinghe
>> Software Engineer
>> WSO2, Inc: http://wso2.com
>>
>> Mobile : +94 716439774
>> Blog :http://christinetechtips.blogspot.com/
>> Twitter : https://twitter.com/sohanichristine
>>
>> On Mon, Apr 11, 2016 at 11:14 AM, Sohani Weerasinghe <[email protected]>
>> wrote:
>>
>>> Ok. For an xml like below, let's have the value field as follows
>>>
>>> <person>
>>>
>>> <firstName>xyz</firstName>
>>>
>>> <phone primary="true">071655339</phone>
>>>
>>> <phone primary="false">0112655333</phone> </person>
>>> </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": [{
>>>
>>> * “value”:{*
>>>
>>> * "id": "http://wso2jsonschema.org/phone/phone
>>> <http://wso2jsonschema.org/phone/phone>",*
>>>
>>> * "type": "number"*
>>>
>>> * },*
>>>
>>> "attributes": {
>>>
>>> "primary": {
>>>
>>> "id": "http://wso2jsonschema.org/phone/primary",
>>>
>>> "type": "boolean"
>>>
>>> }
>>>
>>> }
>>>
>>> }]
>>>
>>> }
>>>
>>> }
>>>
>>> }
>>>
>>>
>>>
>>> Sohani Weerasinghe
>>> Software Engineer
>>> WSO2, Inc: http://wso2.com
>>>
>>> Mobile : +94 716439774
>>> Blog :http://christinetechtips.blogspot.com/
>>> Twitter : https://twitter.com/sohanichristine
>>>
>>> On Mon, Apr 11, 2016 at 11:05 AM, Nuwan Pallewela <[email protected]>
>>> wrote:
>>>
>>>> Hi Sohani,
>>>>
>>>> +1 for the above approaches.
>>>>
>>>> We have to decide on how to represent non identical elements with same
>>>> name. Viraj is working on it.
>>>>
>>>> Thanks,
>>>> Nuwan
>>>>
>>>> On Mon, Apr 11, 2016 at 10:44 AM, Sohani Weerasinghe <[email protected]>
>>>> wrote:
>>>>
>>>>> Hi Viraj/Nuwan,
>>>>>
>>>>> Really appreciate your input on this
>>>>>
>>>>> 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 Tue, Apr 5, 2016 at 12:06 PM, Sohani Weerasinghe <[email protected]>
>>>>> wrote:
>>>>>
>>>>>> Hi All,
>>>>>>
>>>>>> This is regarding clarifying the $subject.
>>>>>>
>>>>>> If we consider an xml as below, we are currently generating the below
>>>>>> json schema
>>>>>>
>>>>>> <h:person xmlns:h="http://www.w3.org/TR/html4/">
>>>>>> <firstName>susinda</firstName>
>>>>>> <phone primary="true">0717777771<ext>01</ext></phone>
>>>>>> <phone primary="false">0112655655<ext>01</ext></phone>
>>>>>> </h:person>
>>>>>>
>>>>>>
>>>>>> {
>>>>>> "$schema": "http://json-schema.org/draft-04/schema#",
>>>>>> "title": "h: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",
>>>>>> "properties": {
>>>>>> "ext": {
>>>>>> "id": "http://wso2jsonschema.org/phone/0/ext",
>>>>>> "type": "number"
>>>>>> }
>>>>>> },
>>>>>> "attributes": {
>>>>>> "primary": {
>>>>>> "id": "http://wso2jsonschema.org/phone/0/primary",
>>>>>> "type": "boolean"
>>>>>> }
>>>>>> }
>>>>>> }]
>>>>>> }
>>>>>> }
>>>>>> }
>>>>>>
>>>>>> But the issue is, we don't have any field to define the data type for
>>>>>> phone ( eg: number). So are we going to introduce a new field as below to
>>>>>> define the type?
>>>>>>
>>>>>> "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"
>>>>>> }
>>>>>> }
>>>>>> }]
>>>>>> }
>>>>>>
>>>>>> Please advice.
>>>>>>
>>>>>> Also, how are we going to represent an array which contains non
>>>>>> identical elements. Are we going to introduce xsi:type?
>>>>>>
>>>>>> Really appreciate your input in proceeding with this.
>>>>>>
>>>>>> 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