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