Online xsd generators[1] generate xsd as one object having all four
elements as child elements of urn:sObjects, without considering xsi:type.
https://devutilsonline.com/xsd-xml/generate-xsd-from-xml

On Wed, Mar 23, 2016 at 9:47 PM, Susinda Perera <[email protected]> wrote:

>
>
> On Wed, Mar 23, 2016 at 7:51 PM, Awanthika Senarath <[email protected]>
> wrote:
>
>> Even though these arrays are identical, AFAIS they may occur independent,
>>
>> as in we may have 5 of the first array with the three items and 3 of the
>> other array which is completely unrelated to the first array,
>>
>>
>> In that case is it okey to represent them as a single array?
>>
>> according to [1] it seems like the xsi:type attribute is not just any
>> attribute but something similar to a key word in XML. in that case IMO it
>> is not correct to represent these two arrays as a merged array instance.
>>
> The xsi:type attribute is used to identify derived complex types[1]. In
> this example we have 2 <urn:sObjects> objects which have different
> xsi:types. (i.e one does not have a xsi:type but other one
> having xsi:type="urn1:Contact") Therefore these two are different
> objects even though it has same name.
> However by looking at the given xml we can not say that it's xsd would
> have <urn:sObjects> array or single element because in this example we
> have only one object from each. Shall we add and object of <urn:sObjects>
> and check?
>
> [1] -
> http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.wst.xmleditor.doc.user%2Ftopics%2Ftxsityp.html
>
>
>>
>> We need to consider xsi:type attribute as a keyword. I dont know how
>> viable this is though.
>>
>>
>>
>>
>>
>> [1]
>> http://stackoverflow.com/questions/21216778/how-to-define-xsitype-as-an-attribute-in-xml-schema
>>
>> Regards
>> Awanthika
>>
>>
>>
>> Awanthika Senarath
>> Software Engineer, WSO2 Inc.
>> Mobile: +94717681791
>>
>>
>>
>> On Wed, Mar 23, 2016 at 7:17 PM, Sohani Weerasinghe <[email protected]>
>> wrote:
>>
>>> Hi All,
>>>
>>> If we consider the below xml, "urn:sObjects" is an array which contains
>>> elements which are not identical.
>>>
>>> First array contains AccountId, FirstName, LastName and the other array
>>> contains Name.
>>>
>>>      <urn:create xmlns:urn="urn:enterprise.soap.sforce.com"
>>> xmlns:urn1="urn:sobject.enterprise.soap.sforce.com"  xmlns:xsi="
>>> http://www.w3.org/2001/XMLSchema-instance";>
>>>         <urn:sObjects xsi:type="urn1:Contact"> <!--Zero or more
>>> repetitions:-->
>>>            <!--You may enter ANY elements at this point-->
>>>            <AccountId>001D000000HRzKD</AccountId>
>>>            <FirstName>Jane</FirstName>
>>>            <LastName>Doe</LastName>
>>>         </urn:sObjects>
>>>         <urn:sObjects xsi:type="urn1:Account">
>>>            <Name>Acme Rockets, Inc.</Name>
>>>         </urn:sObjects>
>>>      </urn:create>
>>>
>>> The generated json schema would be as follows
>>>
>>> {
>>>    "$Schema":"http://json-schema.org/draft-04/schema#";,
>>>    "title":"urn:create",
>>>    "id":"http://jsonschema.net";,
>>>    "type":"object",
>>>    "properties":{
>>>       "urn:create":{
>>>          "id":"http://jsonschema.net/urn:create";,
>>>          "type":"object",
>>>          "properties":{
>>>             "urn:sObjects":{
>>>                "id":"http://jsonschema.net/urn:create/urn:sObjects";,
>>>                "type":"array",
>>>                "items":[
>>>                   {
>>>                      "id":"
>>> http://jsonschema.net/urn:create/urn:sObjects/0";,
>>>                      "type":"object",
>>>                      "properties":{
>>>                         "AccountId":{
>>>                            "id":"
>>> http://jsonschema.net/urn:create/urn:sObjects/0/AccountId";,
>>>                            "type":"string"
>>>                         },
>>>                         "@type":{
>>>                            "id":"
>>> http://jsonschema.net/urn:create/urn:sObjects/0/@type";,
>>>                            "type":"string"
>>>                         },
>>>                         "FirstName":{
>>>                            "id":"
>>> http://jsonschema.net/urn:create/urn:sObjects/0/FirstName";,
>>>                            "type":"string"
>>>                         },
>>>                         "LastName":{
>>>                            "id":"
>>> http://jsonschema.net/urn:create/urn:sObjects/0/LastName";,
>>>                            "type":"string"
>>>                         }
>>>                      }
>>>                   },
>>>                   {
>>>                      "id":"
>>> http://jsonschema.net/urn:create/urn:sObjects/0";,
>>>                      "type":"object",
>>>                      "properties":{
>>>                         "@type":{
>>>                            "id":"
>>> http://jsonschema.net/urn:create/urn:sObjects/0/@type";,
>>>                            "type":"string"
>>>                         },
>>>                         "Name":{
>>>                            "id":"
>>> http://jsonschema.net/urn:create/urn:sObjects/0/Name";,
>>>                            "type":"string"
>>>                         }
>>>                      }
>>>                   }
>>>                ]
>>>             }
>>>          }
>>>       }
>>>    },
>>>    "namespaces":[
>>>       {
>>>          "prefix":"urn",
>>>          "url":"urn:enterprise.soap.sforce.com"
>>>       },
>>>       {
>>>          "prefix":"xsi",
>>>          "url":"http://www.w3.org/2001/XMLSchema-instance";
>>>       },
>>>       {
>>>          "prefix":"urn1",
>>>          "url":"urn:sobject.enterprise.soap.sforce.com"
>>>       }
>>>    ]
>>> }
>>>
>>>
>>> I am facing an issue in representing this in the tree view. Are we going
>>> to add all 4 elements ( AccountId, FirstName, LastName and Name) under the
>>> array object?
>>>
>>> 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
>>>
>>
>>
>
>
> --
> *Susinda Perera*
> Software Engineer
> B.Sc.(Eng), M.Sc(Computer Science), AMIE(SL)
> Mobile:(+94)716049075
> Blog: susinda.blogspot.com
> WSO2 Inc. http://wso2.com/
> Tel : 94 11 214 5345 Fax :94 11 2145300
>
>


-- 
*Susinda Perera*
Software Engineer
B.Sc.(Eng), M.Sc(Computer Science), AMIE(SL)
Mobile:(+94)716049075
Blog: susinda.blogspot.com
WSO2 Inc. http://wso2.com/
Tel : 94 11 214 5345 Fax :94 11 2145300
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to