Bonjour à tous,

On m'a fait une demande comme quoi, je devais ajouter 2 attributs dans un élément. Jusque là rien d'anormal, cependant ces attributs sont un peu spéciaux, ce sont des xmlns et xmlns: xsi.

Je devrais avoir ceci en sortie :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
<Pack  Number="1" Sender="Moi" Receiver="Toi" xmlns="http:.../.../Truc.xsd" xmlns:xsi=".../.../XMLSchema-in">

Evidemment lorsque mon xsl donne ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
	<xsl:template match="/">
		<xsl:element name="Pack">
			<xsl:attribute name="Number">1</xsl:attribute>
			<xsl:attribute name="Sender">Moi</xsl:attribute>
			<xsl:attribute name="Receiver">Toi</xsl:attribute>
			<xsl:attribute name="xmlns"><value-of select="'.../.../Truc.xsd'"/></xsl:attribute>
			<xsl:apply-templates select="Document"/>
		</xsl:element>

Ca ne fonctionne pas, le terme xmlns est interdit comme nom d'attribut, et je n'ai même pas essayé avec le xmlns: xsi, de toute façon cela revient au même.

Message d'erreur : illegal attribut name.

Du coup, celui qui m'a fait cette demande veut ces données en attribut absolument, pour des raisons de recherche ou autre.
Si jamais ce n'est pas possible j'essaierais de lui proposer de les mettre en stylesheet directement...

Mes questions sont :

-Est-ce possible ?
-Si oui, comment forcer ces noms en attributs ?

Merci à tous