Pretpostavljam da si hteo dati ovaj link:
http://www.biglist.com/lists/x.../archives/200112/msg01050.html
U svakom slucaju, XSL skripta se sastoji od niza templejta, ciji redosled unutar xsl stylesheet-a nije bitan.
Medjutim, redosled instrukcija (citaj: uputstava xsl procesoru sta da radi, a ne kako da radi) unutar templejta je bitan, posto se templejt obradjuje sekvencijalno.
U suprotnom, ovakav kod bi se izvrsavao bez problema (koristicu tvoj primer u ovom postu):
Code:
<xsl:template match="b">
<xsl:value-of select="$v" /><br />
<xsl:variable name="v" select="c" />
</xsl:template>
Varijabla v nije vezana za svoj parent element, vec za leksicki scope, tj. deo parent elementa u kome je vidljiva.
Znaci, unutar parent elementa razlikujemo 2 dela: deo pre definicije varijable, i deo nakon definicije varijable, koji se zavrsava tagom koji zatvara parent element.
Stoga, unutar templejta pojmovi: unapred i naknadno, kao i sekvenca izvrsavanja (mada nije dobar termin) imaju smisao.
Kod pravih deklarativnih jezika, npr CSS, redosled instrukcija unutar templejta/pravila je potpuno nebitan.
E, sad, ja sve vreme pokusavam da kazem (mada nisam koristio pravu terminologiju, posto nisam imao mnogo dodirnih tacaka sa deklarativnim jezicima, i posto sam xslt, xPath i xsl-fo, samostalno savladao na brzaka, iz sumnjivih izbora, a sve u cilju izrade jednog projekta, i to davno),
da npr. ovakav kod nije moguc:
Code:
<xsl:template match="b">
<xsl:variable name="v" select="c" />
<xsl:value-of select="$v" /><br />
<xsl:variable name="v" select="." />
<xsl:value-of select="$v" /><br />
</xsl:template>
Zasto ovakav kod nije moguc?
Samo zbog dizajna XSL-a koji naginje ka tome da zadovolji nacela deklarativnih jezika, a ne zbog toga sto bi ovakav feature pored gazenja osnovnih nacela deklarativnih jezika i bacanja matematickih cistunaca u depresiju prouzrokovao dodatne probleme, koje u ovom trenutku nisam u stanju da primetim. Ili se varam?
O_o