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>* >> > >
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev