Fehler in SELFHTML oder Verständnisproblem meinerseits?
Markus Sinus
- xsl
0 ThomasM
Guten Tag,
ich habe im Kapitel über XSLT folgenden Abschnitt gefunden:
-----
Der gesamte Inhalt der XSL-Datei ist in xsl:stylesheet......</xsl:stylesheet> eingeschlossen. Die Notation mit dem Doppelpunkt ist die typische Notation, wenn in einer Datei mehrere Seite XML-Namensräume eingesetzt werden. Im einleitenden Tag wird angegeben, welche Namensräume verwendet werden. Anzugeben ist auf jeden Fall der Namensraum von XSL, der verwendet werden soll. Dabei sollten Sie http://www.w3.org/1999/XSL/Transform als Namensraum angeben. Der ältere Parser des Microsoft Internet Explorers kann die Daten dann freilich nicht verarbeiten. Moderne XSL-Parser dagegen erwarten diese Angabe.
Mit einem zweiten xmlns-Attribut im einleitenden xsl:stylesheet-Tag können Sie außerdem den Namensraum der gewünschten Ergebnissprache angeben. Im obigen Beispiel wurde darauf verzichtet. Wenn Sie jedoch ein XML-gerechtes Ergebnisdokument benötigen, müssen Sie dessen Namensraum angeben. Mit einer Angabe wie xmlns="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" geben Sie beispielsweise den Namensraum von XHTML 1.0 in der Variante Transitional an.
-----
Das Problem: Ist die Aussage bzgl. der Angabe des Namensraumes von XHTML nicht falsch? Der Namensraum von XHTML ist doch "http://www.w3.org/1999/xhtml" und nicht etwa "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd", was den Pfad zu einer DTD darstellt.
Ich bin darauf gekommen, weil ein XSLT-Skript (das ich nach den Anleitungen von SELFHTML erstellt habe) von mir nicht funktionierte. Dort wurde im stylesheet-Element der Default-Namensraum "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" angegeben. Nach vielem Rumprobieren habe ich diesen mal durch "http://www.w3.org/1999/xhtml" ersetzt und siehe da, es ging.
Nun würde mich interessieren, ob dies tatsächlich ein Fehler in SELFHTML ist und dort ein anderer URI in der Dokumentation stehen müsste oder ob der Fehler bei mir lag/liegt.
Hallo Markus,
Das Problem: Ist die Aussage bzgl. der Angabe des Namensraumes von XHTML nicht falsch? Der Namensraum von XHTML ist doch "http://www.w3.org/1999/xhtml" und nicht etwa "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd", was den Pfad zu einer DTD darstellt.
Ja, letztere Referenz kann unter <xsl:output ... doctype-system="..."/>
zur Ausgabe einer DOCTYPE-Deklaration verwendet werden (ggf. unter Hinzunahme von doctype-public="...").
Grüße,
Thomas