Hi Susinda, I was able to generate a nested avro schema from a nested xsd schema using the tool by doing some changes to the API, as it by default generated the nested schema Json objects as separate root level Json objects being mapped to the parent Json via namespaces.
But it has an issue as it does not generate the avro schema correctly when the root xsd has simple fields as children and not complex items, For an example it will correctly parse [1] while it would fail to parse [2] it will only parse the complexElement in [3] ignoring the simple elements parallel to it. [1] <xs:schema attributeFormDefault="unqualified" elementFormDefault= "qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="pizza"> <xs:complexType> <xs:sequence> <xs:element type="xs:string" name="name"/> <xs:element type="xs:float" name="price"/> <xs:element name="toppingsList"> <xs:complexType> <xs:sequence> <xs:element name="toppings" maxOccurs="unbounded" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element type="xs:short" name="id"/> <xs:element type="xs:string" name="name"/> <xs:element type="xs:float" name="extraPrice"/> <xs:element type="xs:string" name="category"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element></xs:schema> [2]<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="urn:sobject.partner.soap.sforce.com"> <xs:element name="type" type="xs:string"/> <xs:element name="Id" nillable="true" type="xs:string"/> <xs:element name="Name" type="xs:string"/> <xs:element name="Amount" type="xs:float"/> </xs:schema> [3] <xs:schema attributeFormDefault="unqualified" elementFormDefault= "qualified" targetNamespace="urn:sobject.partner.soap.sforce.com" xmlns:xs=" http://www.w3.org/2001/XMLSchema"> <xs:element name="type" type="xs:string"/> <xs:element name="Id" nillable="true" type="xs:string"/> <xs:element name="Account"> <xs:complexType> <xs:sequence> <xs:element type="xs:string" name="type"/> <xs:element type="xs:string" name="Id" nillable="true"/> <xs:element type="xs:string" name="Name"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Name" type="xs:string"/> <xs:element name="Amount" type="xs:float"/></xs:schema> Regards Awanthika Awanthika Senarath Software Engineer, WSO2 Inc. Mobile: +94717681791 On Thu, Feb 25, 2016 at 11:18 AM, Awanthika Senarath <[email protected]> wrote: > Hi Susinda, > > Currently I am evaluating approaches for generating avro schema from XSD > keeping option 1 in mind. > > [1] seems to be a reliable option, but the generated avro schema is not in > the accepted format for us. > > > [1] https://github.com/Nokia/Avro-Schema-Generator > > > Regards > Awanthika > > Awanthika Senarath > Software Engineer, WSO2 Inc. > Mobile: +94717681791 > > > > On Thu, Feb 25, 2016 at 11:04 AM, Susinda Perera <[email protected]> wrote: > >> For Datamapper we have to give an option to do data mapping starting from >> xml payload (that user may already have). For this we need to to create >> avro schema from xml instance. Possible approaches may be >> 1. Generate xml schema(XSD) from xml and then create avro schema from >> XSD. >> 2. Directly generate avro schema by looking at xml (we have to code >> from the scratch) >> >> I believe that going with option 1 would be good, so that we can handle >> the use case of mapping from xml-schema. Also there are some libraries[1] >> and online tools[2,3] available to generate XSD from xml with some >> limitations. (eg represent leaf values as strings). Also from bit of >> research i found that there are several types of XSD representation >> (Venetian Blind Design, Russian Doll Design, Salami Slice Design) and we >> may need to decide on which would best fit (or easy to convert to) avro >> schema. >> If someone has done similar xml<->XSD conversion, please share your ideas >> and suggestions. >> >> Thanks >> >> >> [1] http://xmlbeans.apache.org/docs/2.0.0/guide/tools.html#xsd2inst >> >> [2] https://devutilsonline.com/xsd-xml/generate-xsd-from-xml >> >> [3]http://www.freeformatter.com/xsd-generator.html >> >> >> >> -- >> *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 >> >> >
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
