<xslTutorial creator="nicmila@idoox.com">
<index keywords="parent self attribute @ // descendant-or-self child"/>

<description>Axis child:: can be be omitted from a location step as it is the default axis. Axis attribute:: can be abbreviatet to @. // is short for /descendant-or-self::,  . is short for self:: and  .. is short for parent::. </description>

<xmlSource id="id1">
<AAA id='a1' pos='start'>
     <BBB  id='b1'/>
     <BBB  id='b2'/>
</AAA>               
<AAA  id='a2'>
     <BBB  id='b3'/>
     <BBB  id='b4'/>
     <CCC  id='c1'>
          <CCC  id='c2'/>
     </CCC>
     <BBB  id='b5'>
          <CCC  id='c3'/>
     </BBB>
</AAA>

</xmlSource>

<attValues>
<value match="">
</value>
</attValues>

<xslStylesheet id="id2">
<xsl:template match="AAA">

<H3><xsl:value-of select="name()"/>
<xsl:text> </xsl:text>
<xsl:value-of select="@id"/></H3>
<TABLE border="1">
<TR><TH>full</TH><TH>abbreviated</TH></TR>
<TR><TD>
<xsl:text>child::BBB/attribute::id</xsl:text>
</TD><TD>
<xsl:text>BBB/@id</xsl:text>
</TD></TR>
<TR><TD>
<xsl:value-of select="child::BBB/attribute::id"/>
</TD><TD>
<xsl:value-of select="BBB/@id"/>
</TD></TR>
</TABLE>
</xsl:template>
</xslStylesheet>

<xslStylesheet id="id3">
<xsl:template match="BBB">

<H3><xsl:value-of select="name()"/>
<xsl:text> </xsl:text>
<xsl:value-of select="@id"/></H3>
<TABLE border="1">
<TR><TH>full</TH><TH>abbreviated</TH></TR>
<TR><TD>
<xsl:text>parent::*/attribute::id</xsl:text>
</TD><TD>
<xsl:text>../@id</xsl:text>
</TD></TR>
<TR><TD>
<xsl:value-of select="parent::*/attribute::id"/>
</TD><TD>
<xsl:value-of select="../@id"/>
</TD></TR>
</TABLE>
</xsl:template>
</xslStylesheet>

<xslStylesheet id="id4">
<xsl:template match="CCC">

<H3><xsl:value-of select="name()"/>
<xsl:text> </xsl:text>
<xsl:value-of select="@id"/></H3>
<TABLE border="1">
<TR><TH>full</TH><TH>abbreviated</TH></TR>
<TR><TD>
<xsl:text>name(/descendant-or-self::*)</xsl:text>
</TD><TD>
<xsl:text>name(//*)</xsl:text>
</TD></TR>
<TR><TD>
<xsl:value-of select="name(/descendant-or-self::*)"/>
</TD><TD>
<xsl:value-of select="name(//*)"/>
</TD></TR>
</TABLE>

<xsl:apply-templates/>
</xsl:template>
</xslStylesheet>

</xslTutorial>