Thanks for the input. Let's use - "name" : "attr_gender"
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 2, 2016 at 11:31 AM, Susinda Perera <susi...@wso2.com> wrote: > How about *attr* (lowercase) > > On Wed, Mar 2, 2016 at 11:29 AM, Sohani Weerasinghe <soh...@wso2.com> > wrote: > >> I think it's better if we can use "ATR" instead of "ATT" >> >> 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 2, 2016 at 11:25 AM, Sohani Weerasinghe <soh...@wso2.com> >> wrote: >> >>> Hi All, >>> >>> When representing attributes in avro schema, according to [1] the >>> suggested approach is to use @ as a prefix. >>> >>> Since avro name should start with [A-Za-z] and subsequently contain only >>> [A-Za-z0-9_], shall we represent it as below (adding ATT as a prefix) >>> >>> "name" : "*ATT*_gender" >>> >>> [1] >>> https://docs.google.com/spreadsheets/d/15eyRuxn9rFazULASqtB2DZaSAVznKqSNnIGrwvdpzic/edit?ts=56d5250b#gid=0 >>> >>> 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 2, 2016 at 7:47 AM, Sohani Weerasinghe <soh...@wso2.com> >>> wrote: >>> >>>> >>>> Please find the attached image which represents the prefix in the tree >>>> view >>>> >>>> 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 2, 2016 at 7:45 AM, Sohani Weerasinghe <soh...@wso2.com> >>>> wrote: >>>> >>>>> >>>>> >>>>> 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 2, 2016 at 6:28 AM, Jasintha Dasanayake <jasin...@wso2.com >>>>> > wrote: >>>>> >>>>>> >>>>>> >>>>>> On Tue, Mar 1, 2016 at 9:07 PM, Sohani Weerasinghe <soh...@wso2.com> >>>>>> wrote: >>>>>> >>>>>>> Thanks Nuwan for the response. >>>>>>> >>>>>>> When generating the avro schema by adding elements to the tree view, >>>>>>> user can specify the namespace (xml namespace) with the prefix, so that >>>>>>> when generating the the avro schema we can map the namespace to doc and >>>>>>> prefix to the namespace in avro. >>>>>>> >>>>>> >>>>>> Yes that's mapping is fine , somehow we need to show at least prefix >>>>>> in the tree view otherwise user experience won't be nice since user have >>>>>> to >>>>>> check it explicitly while doing the mapping >>>>>> >>>>> >>>>> Yes, I have implemented that and the prefix will be shown in the tree >>>>> view. >>>>> >>>>>> >>>>>> Thanks and Regards >>>>>> /Jasintha. >>>>>> >>>>>>> >>>>>>> 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, Mar 1, 2016 at 8:54 PM, Nuwan Pallewela <nuw...@wso2.com> >>>>>>> wrote: >>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Tue, Mar 1, 2016 at 7:34 PM, Sohani Weerasinghe <soh...@wso2.com >>>>>>>> > wrote: >>>>>>>> >>>>>>>>> Hi All, >>>>>>>>> >>>>>>>>> If we consider an XML which has multiple namespaces as below , >>>>>>>>> >>>>>>>>> <root> >>>>>>>>> <h:table xmlns:h="http://www.w3.org/TR/html4/"> >>>>>>>>> <h:name>Asian Coffee Table</h:name> >>>>>>>>> <h:width>74</h:width> >>>>>>>>> <h:length>129</h:length> >>>>>>>>> </h:table> >>>>>>>>> <f:table xmlns:f="http://www.w3schools.com/furniture"> >>>>>>>>> <f:name>African Coffee Table</f:name> >>>>>>>>> <f:width>80</f:width> >>>>>>>>> <f:length>120</f:length> >>>>>>>>> </f:table> >>>>>>>>> </root> >>>>>>>>> >>>>>>>>> The avro schema should be as follows , >>>>>>>>> >>>>>>>>> { >>>>>>>>> "type" : "record", >>>>>>>>> "name" : "root", >>>>>>>>> "fields" : [ { >>>>>>>>> "type" : "record", >>>>>>>>> "name" : "tableRecord", >>>>>>>>> * "doc" : "http://www.w3.org/TR/html4/ >>>>>>>>> <http://www.w3.org/TR/html4/>",* >>>>>>>>> "namespace" : "http://www.w3.org/TR/html4/" >>>>>>>>> "fields" : [ { >>>>>>>>> "name" : "name", >>>>>>>>> "type" : [ "null", "string" ] >>>>>>>>> "doc" : "http://www.w3.org/TR/html4/" >>>>>>>>> } , { >>>>>>>>> "name" : "width", >>>>>>>>> "type" : [ "null", "int" ] >>>>>>>>> },{ >>>>>>>>> "name" : "length", >>>>>>>>> "type" : [ "null", "int" ] >>>>>>>>> }] >>>>>>>>> }, { >>>>>>>>> "type" : "record", >>>>>>>>> "name" : "tableRecord", >>>>>>>>> * "doc" : "http://www.w3schools.com/furniture >>>>>>>>> <http://www.w3schools.com/furniture>",* >>>>>>>>> "namespace" : "http://www.w3schools.com/furniture" >>>>>>>>> "fields" : [ { >>>>>>>>> "name" : "name", >>>>>>>>> "type" : [ "null", "string" ] >>>>>>>>> } , { >>>>>>>>> "name" : "width", >>>>>>>>> "type" : [ "null", "int" ] >>>>>>>>> },{ >>>>>>>>> "name" : "length", >>>>>>>>> "type" : [ "null", "int" ] >>>>>>>>> }] >>>>>>>>> } ] >>>>>>>>> } >>>>>>>>> >>>>>>>>> When representing this using the Visual DataMapper Editor, in >>>>>>>>> order to differentiate the two records, we can add a namespace prefix >>>>>>>>> to >>>>>>>>> the name of the record as shown below. >>>>>>>>> >>>>>>>>> >>>>>>>>> But when generating the Avro Schema, if we pass this value as the >>>>>>>>> name of the node it throws *org.apache.avro.SchemaParseException: >>>>>>>>> Illegal character in: y:tableRecord.* >>>>>>>>> >>>>>>>> >>>>>>>> AVRO name should start with [A-Za-z] and subsequently contain only >>>>>>>> [A-Za-z0-9_]. >>>>>>>> So we can not pass name with namespace prefix. >>>>>>>> >>>>>>>>> >>>>>>>>> So, if we use only the name (tableRecord, by removing the prefix) >>>>>>>>> to create the avro schema, how are we going to differentiate the >>>>>>>>> records >>>>>>>>> separately when generating the mapping config? >>>>>>>>> >>>>>>>> >>>>>>>> We should add above xml namespace prefix as the namespace of AVRO >>>>>>>> record. Then two elements can be differentiated. >>>>>>>> For Eg: >>>>>>>> >>>>>>>> { >>>>>>>> "type" : "record", >>>>>>>> "name" : "root", >>>>>>>> "fields" : [ { >>>>>>>> "type" : "record", >>>>>>>> "name" : "tableRecord", >>>>>>>> * "doc" : "http://www.w3.org/TR/html4/ >>>>>>>> <http://www.w3.org/TR/html4/>",* >>>>>>>> "namespace" : "N1", >>>>>>>> "fields" : [ { >>>>>>>> "name" : "name", >>>>>>>> "type" : [ "null", "string" ], >>>>>>>> "doc" : "http://www.w3.org/TR/html4/" >>>>>>>> } , { >>>>>>>> "name" : "width", >>>>>>>> "type" : [ "null", "int" ], >>>>>>>> "doc" : "http://www.w3.org/TR/html4/" >>>>>>>> },{ >>>>>>>> "name" : "length", >>>>>>>> "type" : [ "null", "int" ], >>>>>>>> "doc" : "http://www.w3.org/TR/html4/" >>>>>>>> }] >>>>>>>> }, { >>>>>>>> "type" : "record", >>>>>>>> "name" : "tableRecord", >>>>>>>> * "doc" : "http://www.w3schools.com/furniture >>>>>>>> <http://www.w3schools.com/furniture>",* >>>>>>>> "namespace" : "N2", >>>>>>>> "fields" : [ { >>>>>>>> "name" : "name", >>>>>>>> "type" : [ "null", "string" ], >>>>>>>> *"doc" : "http://www.w3schools.com/furniture >>>>>>>> <http://www.w3schools.com/furniture>"* >>>>>>>> } , { >>>>>>>> "name" : "width", >>>>>>>> "type" : [ "null", "int" ] >>>>>>>> *"doc" : "http://www.w3schools.com/furniture >>>>>>>> <http://www.w3schools.com/furniture>"* >>>>>>>> },{ >>>>>>>> "name" : "length", >>>>>>>> "type" : [ "null", "int" ], >>>>>>>> *"doc" : "http://www.w3schools.com/furniture >>>>>>>> <http://www.w3schools.com/furniture>"* >>>>>>>> }] >>>>>>>> } ] >>>>>>>> } >>>>>>>> >>>>>>>> Then the full names of the two tableRecords will be N1.tableRecord >>>>>>>> and N2.tableRecord and AVRO can differentiate these two fields. >>>>>>>> >>>>>>>>> >>>>>>>>> eg: If we are to map a field in y:tableRecord with a field >>>>>>>>> in y:tableRecord etc. How can we differentiate this? >>>>>>>>> >>>>>>>>> This usecase of having multiple namespaces can be displayed >>>>>>>>> graphically in the Design view by appending a namespace prefix, but it >>>>>>>>> seems this will have issues in generating the avro schema and the >>>>>>>>> mapping >>>>>>>>> config. >>>>>>>>> >>>>>>>> >>>>>>>> Mapping configuration does not need to be aware of the namespaces >>>>>>>> as long as they can be differentiate in the diagram. Output from the >>>>>>>> mapping will look into the output schema and will build the output >>>>>>>> message >>>>>>>> with desired namespaces. >>>>>>>> >>>>>>>>> >>>>>>>>> Your suggestions are highly appreciated. >>>>>>>>> >>>>>>>>> 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 *nuw...@wso2.com <nuw...@wso2.com>* >>>>>>>> Mobile *+94719079739 <%2B94719079739>@* >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> >>>>>> *Jasintha Dasanayake* >>>>>> >>>>>> *Senior Software EngineerWSO2 Inc. | http://wso2.com >>>>>> <http://wso2.com/>lean . enterprise . middleware* >>>>>> >>>>>> >>>>>> *mobile :- 0711368118 <0711368118>* >>>>>> >>>>> >>>>> >>>> >>> >> > > > -- > *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 Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev