Шаблон Microsoft XSLT в Visual Studio имеет что-то вроде:
<xsl:template match="@* | node()">
Что такое @ *?
@* является сокращением от attribute::* и выбирает все атрибуты узла контекста (или, в шаблоне совпадения XSLT, более уместно сказать, что он соответствует всем атрибутам).Начиная с спецификация XPath :
@*
attribute::*
Существует также сокращение для атрибутов: attribute:: может быть сокращено до @.Например, путь местоположения para[@type="warning"] является коротким для child::para[attribute::type="warning"] и поэтому выбирает para потомков с атрибутом type со значением, равным warning.
attribute::
@
para[@type="warning"]
child::para[attribute::type="warning"]
para
type
warning
Это означает соответствие любому атрибуту.
http://www.w3.org/TR/1999/REC-xpath-19991116/#path-abbrev
Из MSDN - Примеры XPath :
@ * |Все атрибуты текущего элемента контекста.