Announcement

Collapse
No announcement yet.

xsl:fallback richig verwenden

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • xsl:fallback richig verwenden

    Hallo!

    Ich versuche gerade, das fallback-Element in meinen stylesheets einzusetzen. So wie ich das verstehe, dient das Element dazu, einen Alternative anzugeben, die vom Prozessor ausgeführt wird, wenn eine andere Instruktion nicht ausgeführt werden konnte.

    Ich setze es gerade folgendermaßen ein:

    Code:
    		<fo:table xsl:use-attribute-sets="table-tags">
    			<xsl:for-each select="tflokenize(@hsdl-percent,'\s+')">
    				<fo:table-column column-width="{concat(.,'%')}" />
    					<xsl:fallback>
    						<xsl:message terminate="yes">
    						Fehler beim Erzeugen der Tabellen
    						</xsl:message>
    					</xsl:fallback>
    			</xsl:for-each>
    			<xsl:apply-templates />
    		</fo:table>
    Sollte da nicht auf das fallback zurückgegriffen, die Nachricht angezeigt und der Prozess beendet werden? Stattdessen kommt nur die Meldung, dass die Funktion tflokenize unbekannt ist. Ich verwende Saxon9-HE als Prozessor.

  • #2
    xsl:fallback greift innerhalb von nicht ausführbaren XSL- oder Erweiterungselementen, aber nicht bei fehlerhaften XPath-Funktionen.

    Comment


    • #3
      Ah okay... ich dachte, dass durch die fehlerhafte Funktion quasi der ganze Ausdruck for-each falsch wird.

      Und wieso klappt es bei folgendem Beispiel nicht? Hier kommt die Meldung, dass das Element analyze-stringss unbekannt ist.

      Code:
      <xsl:analyze-stringss select="target[2]/echo" regex="[eoh]" flags="s">
      				<xsl:matching-substring>
      					<xsl:value-of select="."/>
      				</xsl:matching-substring>
      				<xsl:non-matching-substring>
      					<xsl:text> NIX </xsl:text>
      				</xsl:non-matching-substring>
      				<xsl:fallback>
      					<xsl:message>
      					Fallback hat geklappt
      					</xsl:message>
      				</xsl:fallback>
      			</xsl:analyze-stringss>

      Comment


      • #4
        SO, habs jetzt. xsl:fallback greift nur, wenn das Element aus einer anderen XSL-Version ist. Wenn das Element an sich falsch ist, kommt ein Fehler. Wenn hier stünde <xsl:analyze-stringss version=3.0"> ... dann käme die Meldung im xsl:fallback.

        Comment

        Working...
        X