J'ai une situation où le param ne sera pas défini, mais mes tentatives de capture & ne fonctionnent pas.XSLT: Paramètre de test pour savoir si elle a été définie
J'utilise les éléments suivants:
<xsl:template match="xs:complexType">
<xsl:param name="prefix" />
<xsl:variable name="prefix-no-core">
<xsl:choose>
<!-- if no value, default to 'AcRec' -->
<xsl:when test="not($prefix)">
<xsl:value-of select="'AcRec'" />
</xsl:when>
<!-- if 'core', leave as empty string -->
<xsl:when test="$prefix = 'core'">
</xsl:when>
<!-- if 'AcRec', set the value -->
<xsl:when test="$prefix = 'AcRec'">
<xsl:value-of select="$prefix" />
</xsl:when>
</xsl:choose>
</xsl:variable>
<xs:complexType name="{concat($prefix-no-core, @name)}">
...
</xsl:template>
J'ai aussi essayé $ prefix = '' dans le premier test - ni travail. mais si j'utilise:
<xsl:value-of select="not($prefix)" />
... la valeur est vraie. Mais l'utiliser dans mon xsl: choose ne produit aucune sortie.
Je dois soutenir la possibilité d'autres préfixes. –
Je l'ai essayé - le xsl: sinon, il me donne des faux positifs, en appliquant le préfixe à ceux qu'il ne devrait pas. –
Quand ne voulez-vous pas appliquer le préfixe? Encore une fois, donnez-nous le cas d'utilisation complet. Si prefix = core, vous ne voulez pas de préfixe. Si le préfixe n'est pas défini, vous voulez AcDec comme préfixe. Quel est l'autre cas? Voulez-vous utiliser le préfixe fourni ou souhaitez-vous ajouter manuellement un cas pour chaque préfixe "autorisé". Si oui, que se passe-t-il si l'appelant fournit un préfixe que vous ne reconnaissez pas? –