xsl-list
[Top] [All Lists]

RE: Param Element

2005-06-02 20:26:56
Michael:  the content of the source xml is the persisted state of the
supplied xm data param.  

That tells me absolutely nothing about the structure of either. 

Let's be concrete. Is the outermost element of your source XML caled <row>
or is it called <in_proc>? If it's called <row> then I can point to one set
of errors in your stylesheet, if it's called <in_proc> then I can point to a
different set. It's possible that your stylesheet is written to allow it to
be either, but that seems unlikely.

Michael Kay
http://www.saxonica.com/


xm data param may or may not contain new
data.  This data is appended to the xml source when it is new.  There
is an id column named "activityid" which allows me a guarantee of
unique matches.




On 6/2/05, David Carlisle <davidc(_at_)nag(_dot_)co(_dot_)uk> wrote:

  It is working...

This seems unlikely.

  I'm still a little confused on the parm(s) but no worries!

  On 6/2/05, Karl Stubsjoen <kstubs(_at_)gmail(_dot_)com> wrote:
  > Here is what I have, but not confident that it is 
working... it seems
  > that my check for uniqueness is failing, I get no 
results.  Isn't it a
  > fair test to ask of a value it it exists in a set of 
values as I am
  > here:
  >  <xsl:if test="$current_id = $activity_id">
  > Where activity_id is a set of ID values as defined below..
  >
  > <xsl:param name="xm" select="in_proc" />
  >
  > <xsl:variable name="activity_id" select="in_proc/row/@id"/>
  >
  > <xsl:template match="/">
  >  <in_proc>
  >  <xsl:apply-templates select="row"/>
  >  <xsl:apply-templates select="$xm/row" mode="append"/>
  >  </in_proc>
  > </xsl:template>
  >
  > <xsl:template match="row">
  >  <xsl:copy-of select="."/>
  > </xsl:template>
  >
  > <xsl:template match="row" mode="append">
  >  <xsl:variable name="current_id" select="@id"/>
  >  <xsl:if test="$current_id = $activity_id">
  >    <xsl:copy-of select="."/>
  >  </xsl:if>
  > </xsl:template>
  >
  > </xsl:stylesheet>
  >
  >


 <xsl:apply-templates select="row"/>
 <xsl:template match="row">
 <xsl:copy-of select="."/>
 </xsl:template>

is equivalent (but slower, probably) to
<xsl:copy-of select="row"/>
it just copies all the row elements. In this case however it prduces
nothing as there are no row element children of the current 
node (the
only child of / is a in_proc element (I guess, you have not 
shown your
input format)

 <xsl:if test="$current_id = $activity_id">
this test is always true (given the default value of $xm) 
as $current_id
is an attribute node from the set $activity_id
Even if you supply an xm parameter so that the tests may be false,

 <xsl:apply-templates select="$xm/row" mode="append"/>
 <xsl:template match="row" mode="append">
 <xsl:variable name="current_id" select="@id"/>
 <xsl:if test="$current_id = $activity_id">
   <xsl:copy-of select="."/>
 </xsl:if>
 </xsl:template>

is equivalent to

<xsl:copy-of select="$xm/row[(_at_)id = $activity_id]"/>

David


______________________________________________________________
__________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on 
a proactive
anti-virus service working around the clock, around the 
globe, visit:
http://www.star.net.uk

______________________________________________________________
__________


--~------------------------------------------------------------------
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(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
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(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--





--~------------------------------------------------------------------
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(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>