XSL-FO Fehlermeldung: "Es wurde ein Knotentest erwartet, der..."
verenice
- xsl
1 Thomas J.S.1 Thomas J.S.0 verenice
1 Axel Richter0 verenice
Hallo,
ich habe gerade ein XSL-FO-Beispiel aus einem Buch abgetippt und habe folgende Fehlermeldung erhalten, mit der ich nichts anfangen kann.
Ich habe schon mehrfach das Beispiel aus dem Buch mit dem Quelltext, den ich erhalten habe, verglichen und ich finde keinen Fehler. Bei der Syntax-Prüfung in AltovaXMLSpy bekomme ich auch die Meldung, dass die Syntax in Ordnung ist.
[Error]javax.xml.transform.TransformerConfigurationException:javax.xml.
transform.TransformerException:javax.xml.transform.TransformerException:
"Es wurde ein Knotentest erwartet, der entweder NCName:* oder QName entspricht."
Der Quelltext:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:output encoding="ISO-8859-1" method="xml" />
<xsl:template match="">
fo:root
<!-- Dokumentvorlagen-->
fo:layout-master-set
<!-- Seitenvorlage -->
<fo:simple-page-master master-name="A4" page-height="29.7cm" margin-top="1cm" margin-bottom="2cm margin-left="2.5cm" margin-right="2.5cm">
<!-- ... -->
<!-- Druckbare Fläche -->
<fo:region-body region-name="xsl-region-body"
margin-bottom="1.5cm" margin-left="3.5cm" margin-top="1.5cm" margin-right="3.5cm" background-color="wheat">
<xsl:apply-templates />
</fo:region-body>
</fo:simple-page-master>
<!-- Seitenverlaufsvorlage-->
<fo:page-sequence-master master-name="Kapitel"> <fo:repeatable-page-master-reference master-reference="A4" maximum-repeats="8" />
</fo:page-sequence-master>
</fo:layout-master-set>
<!-- Seitenverlauf-->
<fo:page-sequence master-reference="Kapitel">
<fo:flow flow-name="xsl-region-body" background-color="thistle">
<fo:block font-family="Times" font-size="15pt">
<!-- Hier wird das Template Textschleife aufgerufen -->
<xsl:call-template name="Textschleife">
<xsl:with-param name="Wert" select=" 'Dies ist Blindtext. Er braucht nicht gelesen zu werden.' " />
<xsl:with-param name="Grenze" select="100" />
</xsl:call-template>
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>
<!-- Vorlage Textschleife -->
<xsl:template name="Textschleife">
<xsl:param name="Grenze" />
<xsl:param name="Zaehler" select="1" />
<xsl:param name="Wert" select=" ' ' " />
<xsl:value-of select="$Wert" />
<xsl:if test="not($Grenze=$Zaehler)">
<xsl:call-template name="Textschleife">
<xsl:with-param name="Zaehler" select="$Zaehler+1" />
<xsl:with-param name="Wert" select="$Wert" />
<xsl:with-param name="Grenze" select="$Grenze" />
</xsl:call-template>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
Vielen Dank schon mal für Eure Hilfe.
Viele Grüße,
verenice
Hallo,
ich habe gerade ein XSL-FO-Beispiel aus einem Buch abgetippt und habe folgende Fehlermeldung erhalten, mit der ich nichts anfangen kann.
Ich habe schon mehrfach das Beispiel aus dem Buch mit dem Quelltext, den ich erhalten habe, verglichen und ich finde keinen Fehler. Bei der Syntax-Prüfung in AltovaXMLSpy bekomme ich auch die Meldung, dass die Syntax in Ordnung ist.[Error]javax.xml.transform.TransformerConfigurationException:javax.xml.
transform.TransformerException:javax.xml.transform.TransformerException:
"Es wurde ein Knotentest erwartet, der entweder NCName:* oder QName entspricht."
<xsl:param name="Wert" select=" ' ' " />
müsste:
<xsl:param name="Wert" select="' '" /> lauten, falls du ein Leerzeichen hane willst oder
<xsl:param name="Wert" select="''" /> bzw. <xsl:param name="Wert" /> falls du nichts haben willst.
Grüße
Thomas
das gesagte gilt natürlich auch für:
<xsl:with-param name="Wert" select=" 'Dies ist Blindtext. Er braucht nicht gelesen zu werden.' " />
was: <xsl:with-param name="Wert" select="'Dies ist Blindtext. Er braucht nicht gelesen zu werden.'" /> sein sollte.
Thomas
Hallo Thomas,
vielen Dank für Deine schnellen Antworten.
Ich habe zwischen " und ' jetzt einfach das Leerzeichen weggenommen. Leider bekomme ich immer noch die Fehlermeldung.
Hast Du vielleicht noch eine andere Idee, woran es liegen könnte?
Vielen Dank.
Viele Grüße, verenice
Hallo,
Der Quelltext:
Ich habe zwar keine Ahnung von XSL-FO, aber bist Du sicher, dass
<xsl:template match="">
^hier ein Backslash stehen darf?
viele Grüße
Axel
Hallo Axel,
vielen Dank!:o)
Das war mein Problem. Es funktioniert jetzt.
Viele Grüße, verenice