Re: [xsl] Scope of xml source, includes, and inline xml

Subject: Re: [xsl] Scope of xml source, includes, and inline xml
From: Karl Stubsjoen <kstubs@xxxxxxxxx>
Date: Thu, 31 Mar 2005 13:29:24 -0700
Sorry, resulting in match of:
foo = 3; and foo=99


On Thu, 31 Mar 2005 13:25:40 -0700, Karl Stubsjoen <kstubs@xxxxxxxxx> wrote:
> So let me pose a simple example.
> The following xml document is our main document, which I still don't
> have the terminology for.  It might look like:
> 
> <data>
>  <foo>1</foo>
>  <foo>3</foo>
>  <foo>5</foo>
>  <foo>2</foo>
>  <foo>99</foo>
> </data>
> 
> Lets say our XSLT creates a global variable "foo_test" and it imports
> an external data source which looks like:
> 
> <foo_test>
>  <foo>3</foo>
>  <foo>99</foo>
> </test_foo>
> 
> Will the following expression work:
> <xsl:apply-templates select="data/foo = $foo_test//foo"/>
> 
> Resulting in a match on:
> foo = 3; and foo = 4
> 
> Now, let do the reverse of this and match on all $foot_test foo
> elements so we have:
> <xsl:apply-templates select="$foo_test//foo"  mode="my_external_foo"/>
> 
> And we have the template:
> <xsl:template match="foo" mode="my_external_foo">
>  <!-- AT THIS POINT..
>        HOW DO WE REFER BACK TO MAIN XML SOURCE??? -->
> 
> <!-- mabye, but isn't /data/foo out of context??? -->
>    <xsl:for-each select="/data/foo">
>        <xsl:if test=".=current()/.">
>            <!-- I'M ASSUMING WE NEVER MAKE IT HERE -->
>        </xsl:if>
>    </xsl:for-each>
> </xsl:template>
> 
> 
> On Thu, 31 Mar 2005 20:55:11 +0100, Michael Kay <mike@xxxxxxxxxxxx> wrote:
> > > I am discovering such... I think a better approach is to import the
> > > xml into a variable at the parent level, so into
> > > parent_xslt_document.xsl
> > > Would you agree?
> >
> > Yes, I would always use global variables for this kind of thing. Or external
> > "lookup.xml" files, read using the document() function.
> > >
> > > Also, since we are on the subject:
> > > Is there such thing as cross-walking xml sources?  Recently I tempted
> > > to match all (as an example) AAA elements with a value of matching all
> > > BBB element values where BBB xml Source is not the same as AAA's xml
> > > source.  AAA would be part of the original xml source (not sure how
> > > you refer to that) where BBB is either an inline XML source "user data
> > > element" or imported into the stylesheet into a variable, or passed in
> > > as a parameter.
> >
> > I can't work out exactly what process you are describing, but it's certainly
> > possible to join, compare, or merge data from multiple sources in XSLT.
> >
> > Michael Kay
> > http://www.saxonica.com/

Current Thread