Эта статья на jordanhollinger.com - лучший вариант, который я чувствую. Похоже на ответ Razor, но немного яснее. Код ниже; полные кредиты Иорданию Холлингеру:
Страница до:
Вызов именованного шаблона не меняет текущий контекст. Вместо:
<xsl:call-template name="model" />
try:
<xsl:apply-templates select="xmi:XMI/uml:Model"/>
В противном случае вы останетесь в контексте корневого узла /
, который не имеет каких-либо атрибутов, которые вы пытаетесь использовать извлечения.
И тогда, конечно, шаблону, совпадающему с uml:Model
, не нужно иметь имя.