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

RE: Using vars

Subject: RE: Using vars
From: xptm@xxxxxxx
Date: Tue, 27 Jul 2004 14:00:55 +0100
xsl attribute name target
Hi:

I keep forgeting that when i hit reply the msg does not go to the list, but
to
the person that send the original msg...

I've sended a reply to Tom clarifying some of his points.

I can't test this beacause i'm just writing a "framework" that will be feed
with
xml's not know to me at the time, i'm just working with a couple of examples.
So i don't know how big the tree can be.

But as Tom pointed, there is also the question of clarity and maintenence.

I've came up with this, folowing both your sugestions:

    <xsl:variable name='zoom-base'
select="/Formatos/Forms/Form/Grids/Grid/Zooms/Zoom[ModoZoom[contains(.,
'Z')]]"/>  --> it changes from the 'xxx'
    <xsl:variable name='pages'>
      <xsl:for-each select="$zoom-base"><xsl:value-of select="FormZoom"
/>:</xsl:for-each>
    </xsl:variable>
    <xsl:variable name='params'>
      <xsl:for-each select="$zoom-base"><xsl:value-of select="ParametroZoom"
/>:</xsl:for-each>
    </xsl:variable>

now i can use these vars in various places...

      <Event method="tablemouse" type="MouseHandler" target="GridPanel">
        <xsl:attribute name="next"><xsl:value-of select="$pages"
/></xsl:attribute>
        <xsl:attribute name="params"><xsl:value-of select="$params"
/></xsl:attribute>
      </Event>
      <xsl:for-each select="/Formatos/Forms/Form/Grids/Grid">
        <Event method="tablemouse" type="MouseHandler">
          <xsl:attribute name="target"><xsl:value-of select="@Nome"
/></xsl:attribute>
          <xsl:attribute name="next"><xsl:value-of select="$pages"
/></xsl:attribute>
          <xsl:attribute name="params"><xsl:value-of select="$params"
/></xsl:attribute>
        </Event>
        <Event method="tablemouse" type="MouseHandler">
          <xsl:attribute name="target"><xsl:value-of
select="concat('SPane_',@Nome)" /></xsl:attribute>
          <xsl:attribute name="next"><xsl:value-of select="$pages"
/></xsl:attribute>
          <xsl:attribute name="params"><xsl:value-of select="$params"
/></xsl:attribute>
        </Event>
      </xsl:for-each>
      <Event method="nextPage" target="btnProceed" type="ActionHandler">
        <xsl:attribute name="next"><xsl:value-of select="$pages"
/></xsl:attribute>
        <xsl:attribute name="params"><xsl:value-of select="$params"
/></xsl:attribute>
       </Event>


It seems clear and maintenable, but don't know about the performance. I guess
i
just wait and see if the problem ever arises...


Thanks all.



Citando Michael Kay <mhk@xxxxxxxxx>:

> You can't ask questions about performance without saying what XSLT
processor
> you are using, and you can't reliably answer them except by measuring and
> comparing.
>
> My own approach would be to define one variable:
>
> <xsl:variable name="pages"
>   select="/Formatos/Forms/Form/Grids/Grid/Zooms/Zoom[@Coluna!='xxx']" />
>
> and then do:
>
> <xsl:for-each select="$pages/FormZoom">
>
> <xsl:for-each select="$pages/ParametroZoom">
>
> I've no idea how the performance will compare on any given processor, but
> the code seems better structured that way.
>
> Michael Kay
>
>
>
>
>
> > -----Original Message-----
> > From: xptm [mailto:xptm@xxxxxxx]
> > Sent: 26 July 2004 19:09
> > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > Subject:  Using vars
> >
> > In terms of performance, what will be the best way to do
> > this?  Having:
> >
> > <Formatos>
> >   <Forms>
> >     <Form Nome="ProcessoTipoGrupoListaDoc">
> >       <Grids>
> >         <Grid Nome="ProcessoTipoGrupoLista_Grid"
> > SourceObject="ProcessoTipoGrupoLista_Grid">
> >           <Zooms>
> >             <Zoom Coluna="ProcessoTipoGrupo">
> >               <FormZoom>ProcessoTipoGrupoDoc</FormZoom>
> >               <ModoZoom>AZ</ModoZoom>
> >               <ParametroZoom>ProcessoTipoGrupo</ParametroZoom>
> >             </Zoom>
> >           </Zooms>
> >         </Grid>
> >       </Grids>
> >       (*/ n Grids/ *)
> >     </Form>
> >   </Forms>
> > </Formatos>
> >
> > should i use one variable like
> >
> > <xsl:template name="StandardEvents">
> >   <Events>
> >     <xsl:variable name="pages"
> >
> > select="/Formatos/Forms/Form/Grids/Grid/Zooms/Zoom[@Coluna!='x
> > xx']/*[name()='FormZoom'
> > or name()='ParametroZoom']" />
> >     <Event method="tablemouse" type="MouseHandler">
> >             <xsl:attribute name="target">GridPanel</xsl:attribute>
> >             <xsl:attribute name="next">
> >               <xsl:for-each select="$pages">
> >                 <xsl:if test="name()='FormZoom'">
> >                   <xsl:value-of select="." />
> >                   <xsl:text>:</xsl:text>
> >                 </xsl:if>
> >               </xsl:for-each>
> >             </xsl:attribute>
> >             <xsl:attribute name="params">
> >               <xsl:for-each select="$pages">
> >                 <xsl:if test="name()='ParametroZoom'">
> >                   <xsl:value-of select="." />
> >                   <xsl:text>:</xsl:text>
> >                 </xsl:if>
> >               </xsl:for-each>
> >             </xsl:attribute>
> >     </Event>
> >   </Events>
> > </xsl:template>
> >
> >
> > or two vars, like
> >
> > <xsl:template name="StandardEvents">
> >   <Events>
> >      <xsl:variable name="pages">
> >             <xsl:for-each
> > select="/Formatos/Forms/Form/Grids/Grid/Zooms/Zoom[@Coluna!='xxx']">
> >               <xsl:value-of select="concat(ParametroZoom,':')" />
> >             </xsl:for-each>
> >      </xsl:variable>
> >      <xsl:variable name="params">
> >           <xsl:for-each
> > select="/Formatos/Forms/Form/Grids/Grid/Zooms/Zoom[@Coluna!='xxx']">
> >             <xsl:value-of select="concat(ParametroZoom,':')" />
> >           </xsl:for-each>
> >      </xsl:variable>
> >
> >      <Event method="tablemouse" type="MouseHandler">
> >             <xsl:attribute name="target">GridPanel</xsl:attribute>
> >             <xsl:attribute name="next">
> >               <xsl:value-of select="$pages" />
> >             </xsl:attribute>
> >             <xsl:attribute name="params">
> >               <xsl:value-of select="$params" />
> >             </xsl:attribute>
> >            </xsl:attribute>
> >     </Event>
> >   </Events>
> > </xsl:template>
> >
> >
> > If i understand correctly, the first only traverses the tree once and
> > the second two times, so if the tree is very big the first
> > option is better?
> >
> > Thxs.
>
>







O SAPO ja esta livre de vmrus com a Panda Software, fique vocj tambim!
Clique em: http://antivirus.sapo.pt

Current Thread
  • Using vars
    • xptm - Mon, 26 Jul 2004 19:09:24 +0100
      • <Possible follow-ups>
      • Passin, Tom - Mon, 26 Jul 2004 14:55:44 -0400
      • xptm - Tue, 27 Jul 2004 14:00:55 +0100 <=

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.