M
Der, der fragen tut! schrieb:
Woher weiß die XML-Datei, welches Stylesheet es verwenden soll? Muss nicht in die XML-Datei noch sowas wie <?xml-stylesheet type='text/xsl' href='blablub.xsl' version='1.0'?> eingefügt werden?
Die XML-Datei muss es gar nicht wissen. Aber der XSLT-Prozessor schon - und wenn der z.B. ein Browser ist, dann musst du definitiv ein xml-stylesheet verwenden um die XSL-Datei anzugeben.
Ist das normal oder macht einer der Browser etwas nicht richtig? Oder mache ich etwas nicht richtig?
Einer der beiden Browser macht etwas nicht richtig. Rate mal welcher. Ich verrate es gleich: natürlich der unfähige Internet Explorer. Das Problem ist der Namespace im html-Tag. Das Template "person" liegt "außerhalb" und muss dies auch im Namespace anzeigen. Das Ergebnis der Transformation lautet deswegen:
<?xml version="1.0" encoding="UTF-8"?><html xmlns="http://www.w3.org/1999/xhtml">
<head><title>xsl wiki ex.</title></head>
<body><h1>Persons</h1><ul><li [b]xmlns=""[/b]>Ismincius,
Morka</li><li [b]xmlns=""[/b]>Smith,
John</li></ul></body></html>
Und eben nicht was du annimmst. Dadurch ist <li> aber explizit als Nicht-XHTML gekennzeichnet. Der Firefox reagiert darauf völlig richtig indem er sagt "kenn ich nicht, keine Ahnung wie ich's darstellen soll". Der IE dagegen macht, was er immer macht: Standards ignorieren.
Am einfachsten ist es, wenn du das xmlns-Attribut aus dem html-Tag entfernst. Es ist sowieso kein brauchbares XHTML. Wenn du aber wirklich XHTML verwenden willst, solltest du dich vielleicht in Namespaces einlesen