AirMax: Darstellungsproblem mit XHTML strict

Guten Morgen

Habe folgendes Problem: Habe am WE eine homepage auf XHTML strict umgestellt und auch erfolgreich validiert. Nach dem upload auf den Server hat mit Safari 4 und Mac OS 10.5. auch alles tadellos geklappt. Wenn ich die Seite jedoch unter Windows XP öffne, passiert folgendes:

Internetexplorer 7:
"Die XML-Seite kann nicht angezeigt werden
Die XML-Eingabe kann nicht angezeigt werden, wenn Stylesheet verwendet wird. Beheben Sie den Fehler und klicken Sie dann auf Aktualisieren, oder wiederholen Sie den Vorgang später."

FireFox 3.5:
Der Quelltext der Seite wird angezeigt.

Safari 4:
Der Quelltext der Seite wird angezeigt.

Habe dann folgendes versucht: Da ich momentan nicht an meinem eigenen Rechner sitze habe ich mir die index.xhtml-Datei vom Server geladen. Nachdem ich die Pfade zu den Medien im Quelltext von relativ auf absolut geändert habe (damit er sie mir auf diesem Rechner anzeigt) passierte folgendes: (Wohlgemerkt - der Quelltext ist mit der index.xhtml-Datei auf dem Server sonst absolut identisch! Ich habs überprüft)

Internetexplorer 7:
IE will die XML-Datei auf dem Rechner speichern

FireFox 3.5:
Zeigt die Seite fehlerfrei an

Safari 4:
Zeigt die Seite fehlerfrei an

Woran lieget denn das? Komisch. Hat jemand eine Idee dafür, dass es lokal funktioniert aber auf dem Server nicht?!

Wäre über Tipps sehr froh. Danke

  1. Ach so: Hier mal der link zur page:

    www.thomaspetke.info

  2. Nach dem upload auf den Server hat mit Safari 4 und Mac OS 10.5. auch alles tadellos geklappt.

    Dann ist Safari unter Mac OS - der Browser interpretiert etwas hinein, was nicht da ist.

    Die XML-Eingabe kann nicht angezeigt werden, wenn Stylesheet verwendet wird.

    Der Browser interpretiert etwas hinein (wie auch sein Mac-OS-Kollege) - das ist ein Fehler - zusätzlich macht er's noch falsch.

    FireFox 3.5:
    Der Quelltext der Seite wird angezeigt.

    Works as Designed

    Safari 4:
    Der Quelltext der Seite wird angezeigt.

    Works as Designed

    Woran lieget denn das? Komisch. Hat jemand eine Idee dafür, dass es lokal funktioniert aber auf dem Server nicht?!

    Sieh dir deinen HTTP-Header an - insbesondere den Content-Type.

    btw: die Verarbeitung von XHTML als XML ist in den seltensten fällen schlau - einige ältere Browser mit hohem Verbreitungsgrad (z.B. der IE 6) können damit nichts anfangen.

    Übrigens: nur XHTML des XHTML-Willens haben zu wollen ist ein Fehler. Eine Tabellenlayout mit   gezwängt in XHTML Strict ist schon fast pervers :)

    1. Woran lieget denn das? Komisch. Hat jemand eine Idee dafür, dass es lokal funktioniert aber auf dem Server nicht?!

      Sieh dir deinen HTTP-Header an - insbesondere den Content-Type.

      Dein http-equiv für die lokale Version ist übrigens auch nicht der Renner - text/xhtml nicht - auch hier ist nicht ganz ersichtlich, warum es funktioniert.

      1. Hi Rebell

        Ok. Werde von "text/xhtml" auf "text/html" wechseln. Ich hoffe, es funzt dann.

        Danke & Gruss

        1. Ok. Werde von "text/xhtml" auf "text/html" wechseln.

          Ohne dein Dokument zu ändern? Warum?

          Ich hoffe, es funzt dann.

          Die Hoffnung stirbt zuletzt - dennoch ist es machmal besser einen Blick in eine http://de.selfhtml.org/html/xhtml/unterschiede.htm@title=Dokumentation zu werfen als nur zu hoffen.

          1. Hi Suit.

            Ich bin mewbie in Sachen XHTML. eshalb danke für Deine Hilfe!
            Habe den Syntaxfehler entdeckt: Habe "text/xhtml; statt ""text/xhtml" geschrieben. Ausserdem sollte wohl eher "application/xhtml+xml" dort stehen.
            Werd's mal probieren

            Gruss

            1. Ich bin mewbie in Sachen XHTML. eshalb danke für Deine Hilfe!

              Keine Ursache.

              Ausserdem sollte wohl eher "application/xhtml+xml" dort stehen.

              Jein. Wie bereits erwähnt ist die Verarbeitung von XHTML als XML in den seltensten Fällen schlau.

              Werd's mal probieren

              1. @suit: danke für den Tipp (Doppel-posting)

                Das strict XHTML-Dokumenthttp://www.thomaspetke.info/index.xhtml wird von browsern, die XML eigentlich verstehen, nicht als XML geparst, sondern als "plain/text". Ich weiss nicht, wo der Fehler liegt.
                Das Ergebnis der Validation war folgendes: Validations-Ergebnis

                Ich weiss, dass es einige browser gibt, die mit XML nichts anfangen könen. Aber trotzdem will ich es einmal testen. Nur mal sehen, was passiert

                Danke & Gruss

                1. Das strict XHTML-Dokumenthttp://www.thomaspetke.info/index.xhtml wird von browsern, die XML eigentlich verstehen, nicht als XML geparst, sondern als "plain/text". Ich weiss nicht, wo der Fehler liegt.

                  Works as desigend - ich sagte bereits, dass du dir deinen HTTP-Header ansehen sollst:

                  HTTP/1.x 200 OK
                  Date: Tue, 06 Oct 2009 08:21:42 GMT
                  Server: Apache/1.3.41 manitu (Unix) mod_ssl/2.8.31 OpenSSL/0.9.8j PHP/5.2.9 mod_auth_pam_external/0.1 FrontPage/4.0.4.3 mod_perl/1.29
                  Last-Modified: Mon, 05 Oct 2009 17:11:54 GMT
                  Etag: "7a0274-7d0-4aca28da"
                  Accept-Ranges: bytes
                  Content-Length: 2000
                  Keep-Alive: timeout=15
                  Connection: Keep-Alive
                  Content-Type: text/plain

                  Ich weiss, dass es einige browser gibt, die mit XML nichts anfangen könen. Aber trotzdem will ich es einmal testen. Nur mal sehen, was passiert

                  Gern.

                  1. Server: Apache/1.3.41 manitu (Unix) mod_ssl/2.8.31 OpenSSL/0.9.8j PHP/5.2.9 mod_auth_pam_external/0.1 FrontPage/4.0.4.3 mod_perl/1.29

                    Du solltest deinem Server übrigens beibringen nicht so geschätzig zu sein. Security through obscurity ist zwar alleine nicht sehr hilfreich, dennoch ist es nicht verkehrt es einem potentiellen Angreifer etwas schwerer zu machen.

                    So ist man zumindest nicht ganz oben auf der Abschussliste für Mass-Defacements wofür sich jemand anhand der HTTP-Header potentielle Kandidaten (mit einer speziellen Sicherheitslücke) zusammencrawlen kann.

                    1. Das ist nicht mein Server. Ich bin nur Kunde :-)

                      1. Das ist nicht mein Server. Ich bin nur Kunde :-)

                        Ich hoffe du machst Backups :)

                        1. "Ich hoffe du machst Backups :)"

                          Nun mal mal nicht den Teufel an die Wand :-)
                          Ich hab alle Daten, die auf dem Server liegen auch gesichert. Datenbanken o.ä. gibt's bei meinem Projekt zum Glück nicht!

                      2. Hi!

                        Das ist nicht mein Server. Ich bin nur Kunde :-)

                        Kannst du denn eine htaccess anlegen und dort eine AddType Angabe vornehmen?
                        Siehe u.a. auch: http://schneegans.de/web/xhtml/

                        Gruß Gunther

                        1. Hi Gunther

                          Ja, kann glücklicherweise meine eigene .htaccess anlegen. Hab mich auch schon schlau gemacht, wie ich den "content-type" für den Dateityp dort definiere:

                          AddType application/xhtml+xml .xhtml

                  2. "Content-Type: text/plain
                    Angaben über den Dateityp. Der Browser erkennt hier, ob er die Datei als Text, als formatierten Text oder z.B. als Bild anzeigen soll."

                    In meinem Dokument steht: "application/xhtml+xml"

                    Entschuldige meine Dummheit. Bin Autodidakt

                    1. "Content-Type: text/plain
                      Angaben über den Dateityp. Der Browser erkennt hier, ob er die Datei als Text, als formatierten Text oder z.B. als Bild anzeigen soll."

                      In meinem Dokument steht: "application/xhtml+xml"

                      Was im Dokument steht (http-equiv) ist nicht relevant, solange ein HTTP-Header vorhanden ist. Dieser hat IMMER die höhere Priorität.

                      Zusammenfassend:

                      Wenn beide vorhanden sind zählt der HTTP-Header, wenn nur eins vorhanden ist die Meta-Angabe. Wenn beides fehlt, "rät" der Browser.

                      1. Hi,

                        In meinem Dokument steht: "application/xhtml+xml"

                        Zusammenfassend:

                        Wenn beide vorhanden sind zählt der HTTP-Header, wenn nur eins vorhanden ist die Meta-Angabe. Wenn beides fehlt, "rät" der Browser.

                        Wenn nur letzteres vorhanden ist, dann muss er sowieso raten.

                        MfG ChrisB

                        --
                        Light travels faster than sound - that's why most people appear bright until you hear them speak.
                        1. Wenn nur letzteres vorhanden ist, dann muss er sowieso raten.

                          Ja, aber er rät hoffentlich nur so lange, wie er keine entsprechende http-equiv-Angabe findet :)

                          1. @@suit:

                            nuqneH

                            Ja, aber er rät hoffentlich nur so lange, wie er keine entsprechende http-equiv-Angabe findet :)

                            Und was sollte er tun, wenn er eine findet?

                            Die Verarbeitung anhand des geratenen Content-Types abbrechen und anhand des Content-Types  der HTTP-EQUIV-Angabe neu beginnen? Wohl kaum.

                            Qapla'

                            --
                            Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
                  3. So wie es scheint ist es nicht ein Problem mit dem Dokument, sondern mit der Servereinstellung?!

                    1. So wie es scheint ist es nicht ein Problem mit dem Dokument, sondern mit der Servereinstellung?!

                      Jein. Deine Dateiendung ist xhtml - was der Server damit macht, hängt von seiner Einstellung ab. Ggf. wurde kein Handler definiert, der dem Apache sagt er soll .xhtml als application/xhtml+xml ausliefern.

                  4. So Suit, hab mich mal schlau gemacht. Es liegt daran, dass der Server die XHTML-Datei mit dem falschen header ausliefert. Werde das in der .htaccess ändern.

                    Danke für Deine Hilfe

            2. Hallo,

              Ich bin mewbie in Sachen XHTML. eshalb danke für Deine Hilfe!
              Habe den Syntaxfehler entdeckt: Habe "text/xhtml; statt ""text/xhtml" geschrieben. Ausserdem sollte wohl eher "application/xhtml+xml" dort stehen.

              oder auch nicht.

              Lies Dir bitte SELFHTML: HTML/XHTML, Unterschiede zwischen XHTML und HTML, Abschnitt <http://de.selfhtml.org/html/xhtml/unterschiede.htm#mimetypen@title=Unterschied: MIME-Typen> durch.

              Freundliche Grüße

              Vinzenz

            3. @@AirMax:

              nuqneH

              Ausserdem sollte wohl eher "application/xhtml+xml" dort stehen.

              Nein, die Angabe ist völliger Unfug.

              Die 'Content-Type'-HTTP-EQUIV-Angabe in einem Dokument dient dem Client nicht dazu, den Content-Type mitgeteilt zu bekommen, falls dies der Server nicht im HTTP-Header tut (bzw. gar kein Server im Spiel ist). Wenn der Client die 'Content-Type'-HTTP-EQUIV-Angabe liest, dann hat er sich längst entschieden, als was er das Dokument verarbeitet (sonst könnte er die 'Content-Type'-HTTP-EQUIV-Angabe ja gar nicht lesen).

              Die 'Content-Type'-HTTP-EQUIV-Angabe in einem Dokument dient lediglich einem Tagsoup-Parser dazu, die Zeichencodierung mitgeteilt zu bekommen, falls dies der Server nicht im HTTP-Header tut (bzw. gar kein Server im Spiel ist). Nicht aber einem X(HT)ML-Parser. [TUTORIAL-CHAR-ENC]

              Qapla'

              --
              Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)