Noms d'éléments dynamiques

Je veux transformer un document XML. La source XML ressemble à ceci:

<svc:ElementList>
    <svc:Element>
        <Year>2007</Year>
    </svc:Element>
    <svc:Element>
        <Year>2006</Year>
    </svc:Element>
    <svc:Element>
        <Year>2005</Year>
    </svc:Element>
</svc:ElementList>

Je veux le transformer en:

<ElementList>
    <NewTag2007/>
    <NewTag2006/>
    <NewTag2005/>
</ElementList>

La ligne de code suivante ne fonctionne pas:

<xsl:element name="{concat('NewTag',Element/Year)}"/>

Le résultat est une série d'éléments qui ressemblent à ceci: < NewTag >. (Sans les espaces...)

"//Élément/An""./Élément/An" et "//svc:/Élément de l'Année" ne fonctionne pas non plus. Une complication est que la balise "Element" est dans le "svc" espace de noms, tandis que le "An" de la balise est dans l'espace de noms par défaut.

De toute façon, je suis face à un espace de noms problème ou suis-je mal à l'aide de la "méthode concat()" fonction?

source d'informationauteur JPLemme