[xquery-talk] Generating an element sequence matching a template
Liam Quin
liam at w3.org
Tue Apr 25 19:10:32 PDT 2006
On Tue, Apr 25, 2006 at 02:13:21PM -0700, Howard Katz wrote:
> It actually gets a bit harder yet. If we now omit the first <e_1> in the
> row-data:
>
> let $headers := ( "e_1", "e_2", "e_3", "e_1", "e_4" )
> let $row-data := ( <e_3>33</e_3>, <e_1>123</e_1>, <e_4>44</e_4> )
>
> we end up with:
>
> <e_1>123</e_1>, <e_2/>, <e_3>33</e_3>, <e_1/>, <e_4>44</e_4>
>
> I'm not 100% sure about this, but I would think a more "correct" ordering
> would be one that preserved the original order of $row-data as much as
> possible, as in:
>
> <e_1/>, <e_2/>, <e_3>33</e_3>, <e_1>123</e_1>, <e_4>44</e4>
I'd probably try to write very pedestrian, simple code first...
for $e in $headers
if ($row-data[local-name() = $e])
then $row-data[local-name() = $e])
else <element name="{$e}"></element>
(I don't remember if we ended up allowing such dynamic constructors
but I hope so!)
Liam
--
Liam Quin, W3C XML Activity Lead, http://www.w3.org/People/Quin/
http://www.holoweb.net/~liam/
More information about the talk
mailing list