Mam sytuację, w której parametr nie zostanie ustawiony, ale moje próby przechwytywania & obsługują sytację, nie działają.XSLT: Przetestuj parametr, aby dowiedzieć się, czy został ustawiony
Używam następujący:
<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>
Ja również próbował $ prefix = '' w pierwszym badaniu - ani pracy. ale jeśli użyję:
<xsl:value-of select="not($prefix)" />
... wartość zostanie wydrukowana jako prawdziwa. Ale używając tego w moim xsl: choose nie generuje żadnego wyjścia.
Potrzebuję obsługiwać inne prefiksy. –
Próbowałem - xsl: w przeciwnym razie daje mi fałszywe alarmy, stosując prefiks do tych, których nie powinien. –
Kiedy nie chcesz stosować prefiksu? Ponownie, podaj nam kompletny przypadek użycia. Jeśli prefiks = rdzeń, nie chcesz mieć prefiksu. Jeśli prefiks nie jest ustawiony, chcesz AcDec jako przedrostek. Co to jest w drugim przypadku? Czy chcesz użyć podanego przedrostka, czy też chcesz ręcznie dodać literę do każdego "dozwolonego" prefiksu. Jeśli tak, to co się dzieje, że wywołujący udostępnia prefiks, którego nie rozpoznajesz? –