In the case of {@isbn}, the contents of the curly
braces is treated exactly as <xsl:value-of
select="@isbn"/> in the previous approach.
This is obviously much simpler. The text inside of the
{} characters can be any location path, so you are
not limited to selecting attributes. For example, to select the title
of the book, simply change the value to {title}.
So where do you use AVTs and where don't you? Well, whenever
you need to treat an attribute value as an XPath expression rather
than static text, you may need to use an AVT. But for standard XSLT
elements, such as <xsl:template
match="pattern">, you don't
need to use the AVT syntax. For nonXSLT elements, such as any HTML
tag, AVT syntax is required.