Je tente de faire une transformation sur un document XML. Ma transformation XML peut se traduire par deux différents types d'éléments de base en fonction de la valeur d'un certain élément:Blank xmlns = "" Attributs de l'importation
<xsl:template match="/">
<xsl:choose>
<xsl:when test="/databean/data[@id='pkhfeed']/value/text()='200'">
<xsl:call-template name="StructureA">
<xsl:with-param name="structure" select="//databean" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="StructureB">
<xsl:with-param name="structure" select="//databean" />
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
StructureA ou StructureB sont ensuite créés avec leurs propres espaces de noms et schemaLocations:
<StructureA xmlns="http://...">
StructureA & B partage certains éléments communs, ceux-ci sont donc définis dans un fichier séparé appelé "xmlcommon.xslt" dont les deux structures incluent des modèles. Ce fichier xmlcommon n'a pas d'espace de noms par défaut défini car je souhaite qu'il soit utilisable à partir de l'espace de noms défini dans StructureA ou StructureB. Mais quand je lance mon transform, tous les modèles tirés dans du résultat de fichier commun dans xmlns blanc attributs:
<StructureA xmlns="http://...">
<SharedElement xmlns="">Something</SharedElement>
</StructureA>
Lors de la validation, l'espace de noms vide est ensuite utilisé à la place du parent correct un. Est-ce que quelqu'un sait comment je peux empêcher mes modèles dans mon fichier commun d'ajouter ces attributs xmlns vides?
Voici un extrait du fichier commun:
<xsl:stylesheet version="1.0" xmlns:fn="http://www.w3.org/2005/02/xpath-functions" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template name="ControlledListStructure">
<xsl:param name="xmlElem" />
<xsl:param name="structure" />
<xsl:element name="{$xmlElem}">
<!-- Blah blah blah -->
</xsl:element>
</xsl:template>
</xsl:stylesheet>
Bonne explication, Evan. Rien de plus à ajouter. +1 de moi. Bienvenue à SO. –
Merci Evan. C'est une grande aide :) Et merci pour les infos supplémentaires aussi. Je ne touche pas souvent XSLT, donc c'est agréable d'entendre les meilleures façons de faire les choses. –