Hi Srinath, Above transformation can be achieved by using a payload factory mediator.
<payloadFactory media-type="xml"> <format> <Customers>$1</Customers> </format> <args> <arg xmlns:ns="http://org.apache.synapse/xsd" expression="//customer" evaluator="xml"/> </args> </payloadFactory> If the customer elements inside outer foo needs to be changed the following synapse config can be used. Here we iterate over customer elements and apply a transformation. <foreach xmlns:ns="http://org.apache.synapse/xsd" xmlns:m0=" http://services.samples" expression="//foo/customer"> <sequence> <payloadFactory media-type="xml"> <format> <cust value="$1"/> </format> <args> <arg expression="//customer/@value" evaluator="xml"/> </args> </payloadFactory> </sequence> </foreach> Thanks, Maheeka Maheeka Jayasuriya Software Engineer Mobile : +94777750661 On Wed, May 6, 2015 at 10:00 AM, Srinath Perera <srin...@wso2.com> wrote: > Could u explain how? > > > I have input that looks like following ( # of customers will vary) > > <foo> > <customer value ="1" /> > <customer value ="1" /> > <customer value ="1" /> > .... > </foo> > > I want to construct following > > <Customers> > <customer value ="1" /> > <customer value ="1" /> > <customer value ="1" /> > .... > > </Customers> > > How can I do it? Also it is good if we can support this within payload > mediator if possible. > > --Srinath > > > > On Wed, May 6, 2015 at 9:55 AM, Malaka Silva <mal...@wso2.com> wrote: > >> Hi Srinath, >> >> I think use case you mentioned can be handled with FOR-EACH mediator >> which will be introduced in ESB 4.9.0 >> >> On Wed, May 6, 2015 at 9:46 AM, Srinath Perera <srin...@wso2.com> wrote: >> >>> Hi Kasun, >>> >>> I have been working on ESB script last week, and two comments. >>> >>> 1. If we use payload factory mediator, and if Xpath matches more than >>> one results, what do we do? It is a valid usecase if someone want to copy N >>> elements from request to response via payload factory. >>> >>> 2. Enrich has too many parameters, and some combinations does not work. >>> ( see below). >>> >>> <enrich> >>> <source [clone=true|false] >>> [type=custom|envelope|body|property|inline] xpath="" property="" /> >>> <target [action=replace|child|sibiling] >>> [type=custom|envelope|body|property|inline] xpath="" property="" /> >>> </enrich> >>> >>> I think we can remove "type" and "property" and support both via Xpath >>> only. We can break Xpath to <source>/foo/bar where source can be $envelope, >>> $body $header $getProperty("bar") etc ( $envelope etc is already there). >>> >>> If we do this correct, we can refer to anything in ESB environment via >>> Xpath of the format <source>/foo/bar. Then we can make this consistent >>> across the language. >>> >>> WDYT? >>> >>> --Srinath >>> >>> -- >>> ============================ >>> Blog: http://srinathsview.blogspot.com twitter:@srinath_perera >>> Site: http://people.apache.org/~hemapani/ >>> Photos: http://www.flickr.com/photos/hemapani/ >>> Phone: 0772360902 >>> >>> _______________________________________________ >>> Architecture mailing list >>> Architecture@wso2.org >>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>> >>> >> >> >> -- >> >> Best Regards, >> >> Malaka Silva >> Senior Tech Lead >> M: +94 777 219 791 >> Tel : 94 11 214 5345 >> Fax :94 11 2145300 >> Skype : malaka.sampath.silva >> LinkedIn : http://www.linkedin.com/pub/malaka-silva/6/33/77 >> Blog : http://mrmalakasilva.blogspot.com/ >> >> WSO2, Inc. >> lean . enterprise . middleware >> http://www.wso2.com/ >> http://www.wso2.com/about/team/malaka-silva/ >> <http://wso2.com/about/team/malaka-silva/> >> >> Save a tree -Conserve nature & Save the world for your future. Print this >> email only if it is absolutely necessary. >> > > > > -- > ============================ > Blog: http://srinathsview.blogspot.com twitter:@srinath_perera > Site: http://people.apache.org/~hemapani/ > Photos: http://www.flickr.com/photos/hemapani/ > Phone: 0772360902 >
_______________________________________________ Architecture mailing list Architecture@wso2.org https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture