[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Mapping from two sources

Subject: Re: Mapping from two sources
From: sudheshna iyer <sudheshnaiyer@xxxxxxxxx>
Date: Sun, 3 Oct 2010 04:37:26 -0700 (PDT)
Re:  Mapping from two sources
Thank you for your answers. 

But the solution returns only elements from
Doc1, I need element of Doc2 if
doc1.OLN = doc2.OLN
========
Problem

I need
to have two sources:

input1 and input2. 

input1:
<?xml version="1.0"
encoding="ISO-8859-1"?>
<Order>
	<OrderLine>
			<OLN>1</OLN>
<Fname>aa</Fname>
	</OrderLine>
	<OrderLine>
			<OLN>2</OLN>
<Fname>bb</Fname>
	</OrderLine>	
</Order>


input2:
<?xml version="1.0"
encoding="ISO-8859-1"?>
<POOrder>
	<POOrderLine>
			<OLN>1</OLN>
<ID>123</ID>
			<LName>aa</LName>
	</POOrderLine>
	<POOrderLine>
<OLN>2</OLN>
			<ID>324</ID>
			<LName>bb</LName>
	</POOrderLine>
<POOrderLine>
			<OLN>3</OLN>
			<ID>456</ID>
			<LName>bb</LName>
</POOrderLine>	
</POOrder>

I need the output from both sources combined.
Please note that first two elements are coming from input1 and thrid element
is from input2. What is the 
optimal way of doing this?

<?xml version="1.0"
encoding="ISO-8859-1"?>
<OrderResponse>
	<Oline>
		<OLN>1</OLN>
<Fname>aa</Fname>
		<ID>123</ID>
	</Oline>
	<Oline>
		<OLN>2</OLN>
<Fname>bb</Fname>
		<ID>324</ID>
	</Oline>
</OrderResponse>
=====

Solution
proposed:

<xsl:for-each-group select="$doc1//OrderLine, $doc2//POOrderline"
group-by="OLN">
<Oline>
<OLN><xsl:value-of
select="current-grouping-key()"></OLN>
<xsl:copy-of
select="current-group()/(FName, ID)"/>
</Oline>
</xsl:for-each-group>


--- On
Sat, 10/2/10, Mukul Gandhi <gandhi.mukul@xxxxxxxxx> wrote:

> From: Mukul
Gandhi <gandhi.mukul@xxxxxxxxx>
> Subject: Re:  Mapping from two sources
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Date: Saturday, October 2, 2010, 1:07
PM
> On Sat, Oct 2, 2010 at 4:29 PM,
> sudheshna iyer
<sudheshnaiyer@xxxxxxxxx>
> wrote:
> > does xsl:for-each-group acts like inner
join?
> 
> Well I think, for-each-group cannot be treated as inner
> join
(which is
> a relational algebra abstraction, as Mike also says) -- we
> are
not
> joining any two sets with for-each-group. The input to
> for-each-group
> is just a sequence, with definition of grouping key (for
> e.g, the
> value
of group-by attribute).
> 
> I would imagine for-each-group as a kind of
mapping
> function,
> something similar to for-each but with a kind of layer
of
> grouping on
> top of that.
> 
> 
> 
> -- 
> Regards,
> Mukul Gandhi
> 
>
--~------------------------------------------------------------------
>
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> To
unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
> or e-mail:
<mailto:xsl-list-unsubscribe@xxxxxxxxxxxxxxxxxxxxxx>
> --~--

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.