derletztekick: content-type application/xhtml+xml vs. text/html

Hallo,

ich habe einen kleinen JS Kalender, den ich mittels createElement('TABLE'); usw. usf. erzeug. Diesen weise ich dann einem DIV-Bereich in einer XHTML Seite zu. Das ganze funktioniert soweit auch, d.h. am Script selbst scheinen keine Fehler zu sein.

Nun habe ich ein wenig Probiert und bin auf folgendes Problem gestoßen, wie ich hier bereits beschrieben haben. Der Beitrag ist ja bereits im Archiv verschwunden, daher noch einmal mein Problem:

Gebe ich die eite als text/html aus, erscheint der Kalender in einer Tabelle:
Kalender (text/html)

gebe ich selbigen jedoch als application/xhtml+xml aus, wird die Tabelle in einer Zeile dargestellt. Wenn ich den Inhalt der Seite jedoch markiere und in einem Texteditor einfüge, sehe ich, das ide Tabelle korrekt vorhanden ist, trotzdem wird sie nicht wie gewünscht dargestellt.

Kalender (application/xhtml+xml)

Warum passiert das?

Mit freundlichem Gruß
Micha

  1. Kalender (application/xhtml+xml)

    Nur so nebenbei: die URL wird mit Content-Type: text/html ausgeliefert.

    1. Hallo Anonymous.

      Nur so nebenbei: die URL wird mit Content-Type: text/html ausgeliefert.

      Nanu? Bei mir nicht:

      URL der Hauptseite:
      http://www.derletztekick.com/calendar_js_oop.php

      Angegebene Kodierung (von Opera verwendet):
      ISO-8859-1 (windows-1252)

      Angegebener MIME-Typ:
      application/xhtml+xml

      Gruß, Ashura

      --
      Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
      Try it: Become an Opera Lover in 30 days
      Meine Browser: Opera 8.0 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
      IE Layout-Workaround №1: <!--[if IE]><style type="text/css">*{display:none;}</style><![endif]-->
      1. Hallo Anonymous.

        Nur so nebenbei: die URL wird mit Content-Type: text/html ausgeliefert.

        Nanu? Bei mir nicht:

        Sicher?

        curl --dump - http://www.derletztekick.com/calendar_js_oop.php
        HTTP/1.1 200 OK
        Date: Sun, 15 May 2005 15:29:20 GMT
        Server: Apache/1.3.33 (Unix) mod_jk/1.2.8 mod_gzip/1.3.26.1a mod_auth_passthrough/1.8 mod_log_bytes/1.2 mod_bwlimited/1.4 FrontPage/5.0.2.2635 mod_ssl/2.8.22 OpenSSL/0.9.7a PHP-CGI/0.1b
        X-Powered-By: PHP/4.3.10
        Transfer-Encoding: chunked
        Content-Type: text/html

        [...]

        1. Hallo Anonymous.

          Sicher?

          Ja:

          Response Headers - http://www.derletztekick.com/calendar_js_oop.php

          Date: Sun, 15 May 2005 15:34:47 GMT
          Server: Apache/1.3.33 (Unix) mod_jk/1.2.8 mod_gzip/1.3.26.1a mod_auth_passthrough/1.8 mod_log_bytes/1.2 mod_bwlimited/1.4 FrontPage/5.0.2.2635 mod_ssl/2.8.22 OpenSSL/0.9.7a PHP-CGI/0.1b
          X-Powered-By: PHP/4.3.10
          Connection: close
          Content-Type: application/xhtml+xml

          200 OK

          Gruß, Ashura

          --
          Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
          Try it: Become an Opera Lover in 30 days
          Meine Browser: Opera 8.0 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
          IE Layout-Workaround №1: <!--[if IE]><style type="text/css">*{display:none;}</style><![endif]-->
          1. Hallo ihr zwei,

            Ich habe eine einfache Abfrage im Kopf:
            if ( stristr($_SERVER["HTTP_ACCEPT"],"application/xhtml+xml") ) {
            header("Content-type: application/xhtml+xml");
            } else {
            header("Content-type: text/html");
            }

            Es ist somit möglich, das text/html ausgeliefert wird - gerade in hinblick auf den IE

            Mit FF und Opera sollte es aber also XML ausgegeben werden.

            Mit freundlichem Gruß
            Micha

            1. Hallo derletztekick.

              Es ist somit möglich, das text/html ausgeliefert wird - gerade in hinblick auf den IE

              Genial. :)
              Mir war bekannt, dass der IE ein Lügner ist, aber das es sich mittels 3 Zeichen darstellen lässt, finde ich doch wiederum amüsant: */*.

              Mit FF und Opera sollte es aber also XML ausgegeben werden.

              Gut, ich hatte zugegeben nur mit diesen beiden getestet.
              Ich wüsste auch gar nicht, wie ich im IE den Content-Type herausfinden kann.

              Gruß, Ashura

              --
              Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
              Try it: Become an Opera Lover in 30 days
              Meine Browser: Opera 8.0 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
              IE Layout-Workaround №1: <!--[if IE]><style type="text/css">*{display:none;}</style><![endif]-->
              1. Hallo Ashura,

                Gut, ich hatte zugegeben nur mit diesen beiden getestet.
                Ich wüsste auch gar nicht, wie ich im IE den Content-Type herausfinden kann.

                Wenn Du es "wirklich" nutzen möchtest, solltest Du vielleicht auf diese Funktion zurück greifen:
                http://home.arcor.de/terrikay/tutorials/xhtml.html

                Da werden - so der Autor - noch ein paar eventualitäten abgedeckt, aber zum probieren sollte meiniges reichen.

                Mit freundlichem Gruß
                Micha

                1. Hallo derletztekick.

                  Wenn Du es "wirklich" nutzen möchtest, solltest Du vielleicht auf diese Funktion zurück greifen:
                  http://home.arcor.de/terrikay/tutorials/xhtml.html

                  Recht interessant.
                  Jaja, das typische Webmasterleben äußert sich im Einstellen auf alle Eventualitäten.

                  Gruß, Ashura

                  --
                  Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
                  Try it: Become an Opera Lover in 30 days
                  Meine Browser: Opera 8.0 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
                  IE Layout-Workaround №1: <!--[if IE]><style type="text/css">*{display:none;}</style><![endif]-->
                  1. Hallo Ashura,

                    Jaja, das typische Webmasterleben äußert sich im Einstellen auf alle Eventualitäten.

                    Ja, so soll es sein^^ Noch ne Idee zu meinem eigentlichen Problem?

                    Mit freundlichem Gruß
                    Micha

                    1. Hallo derletztekick.

                      Noch ne Idee zu meinem eigentlichen Problem?

                      Hm... Nein, tut mir leid.
                      Eine reguläre Tabelle wird ordnungsgemäß ausgegeben, das habe ich überprüft.
                      Lediglich deine Tabelle, die mittels JS generiert wird, springt aus der Reihe.

                      Gruß, Ashura

                      --
                      Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
                      Try it: Become an Opera Lover in 30 days
                      Meine Browser: Opera 8.0 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
                      IE Layout-Workaround №1: <!--[if IE]><style type="text/css">*{display:none;}</style><![endif]-->
                      1. Hallo,

                        Eine reguläre Tabelle wird ordnungsgemäß ausgegeben, das habe ich überprüft.

                        Richtig, das habe ich als erstes geprüft, da ich auch dahte, das dort der Schweinehund begraben liegt.

                        Lediglich deine Tabelle, die mittels JS generiert wird, springt aus der Reihe.

                        Ja, leider und das obwohl sie korrekt erzeugt wird...

                        Mit freundlichem Gruß
                        Micha

                2. Hallo,

                  Wenn Du es "wirklich" nutzen möchtest, solltest Du vielleicht auf diese Funktion zurück greifen:
                  http://home.arcor.de/terrikay/tutorials/xhtml.html

                  So nebenbei zu dem Artikel:
                  Die Argumentation dort ist extrem verkürzt und oberflächlich. Als Vorteil für XHTML wird die Mischbarkeit mit anderen XML-Dialekten genannt. Aber bekommt man davon momentan etwas mit? Nein, denn die Einbindung von MathML und SVG direkt ins Dokument bringt zur Zeit wenig bis nichts. Warum Leute XHTML einsetzen, ohne sich um Erweiterbarkeit zu kümmern, wird nicht thematisiert. Nun wird kritisiert, text/html zu verwenden, weil: "richtiges XHTML ist das natürlich nicht. Und die Vorteile, eben das eXtensible, fehlen auch." Als Problem bzw. Hindernis, XHTML zu verwenden, wird der Internet Explorer herausgestellt. Da fragt man sich, welche realen Vorteile von XHTML sich ergeben würden, wenn MSIE application/xhtml+xml genauso unterstützen würde wie die anderen Browser. Keine, denkt man sich.
                  (Die entscheidende Frage ist sowieso, ob ein Dokument des Typs XHTML + SVG + MathML wirklich als application/xhtml+xml ausgeliefert werden muss, damit die Browser, die es prinzipiell verarbeiten können - besondere Mozilla-Versionen -, es auch verarbeiten.)

                  | Sprung-Anker funktieren nicht in alten Browsern (diese kennen nur »name« — erlaubt ist aber nur noch »id«)

                  <a name=""></a> ist valides XHTML 1.0 Strict. Wer redet schon von XHTML 1.1 - was das angeht, besteht gar kein Diskussionsbedarf, weil es sowieso nicht HTML-kompatibel ist.

                  Mathias

                  1. Hallo,

                    Als Vorteil für XHTML wird die Mischbarkeit mit anderen XML-Dialekten genannt.

                    Da klinke ich mich auch gleich mal mit ein, ist es nicht theoretisch auch so, dass der Browser XHTML schneller rändern (können) weil man dann die Fehlerkorrektur ganz weglassen kann?

                    Als ich mit der Idee im Chat ankam meine private Seite als XML auszuliefern wurde ich wüst beschimpft von wegen Barierefreicheit und keinem Nutzen usw. Es wurde aber nichts konkretes genannt, außer, dass wenn jemand einen IE nutzt und den so modifiziert hat, dass er in $_SERVER['HTTP_ACCEPT'] anzeigt dass er application/xhtml\+xml verarbeiten kann, dieser dann den XML Baum anzeigt. Wenn jemand da schon herumpfuscht, dann weiß er doch normalerweise was er tut und was das für Folgen hat oder nicht?

                    Welche Nachteile gibt es sonst nocht? Im Chat meinten sie dass du dir ein großes Wissen rund um dieses Thema angeeignet hast, vielleicht hast du mal einen oder zwei Links dazu parat?

                    Grüße
                    Jeena Paradies

                    --
                    Weblogsoftware Jlog
                    Was gutes gesucht? Dann nimm doch Gourmetica Mentiri
                  2. Hallo Mathias,

                    Wenn Du es "wirklich" nutzen möchtest, solltest Du vielleicht auf diese Funktion zurück greifen:
                    http://home.arcor.de/terrikay/tutorials/xhtml.html

                    So nebenbei zu dem Artikel:
                    Die Argumentation dort ist extrem verkürzt und oberflächlich.

                    Es sollte da nur um die Funktion gehen, mit der man - sofern gewünscht - bestimmen kann, ob ein Browser XHTML unterstützt oder nicht. Ob und wie viel man sich aus diesem Beitrag sonst noch zu Herzen nehmen sollte, bleibt wohl jedem selbst überlassen.

                    Wie ich leider festgestellt habe, funktioniert auch das funktion() - Script nur bedingt. Schalte ich den PROXY Server, den mir mein I-Net Anbieter zur Verfügung stellt, ein, so bekommt auch mein FF text/html übermittlet. Schalte ich ihn aus, ist es application/xhtml+xml. Die Funktion fasst somit doch nciht alle Eventualitäten ab...

                    Mit freundlichem Gruß
                    Micha

                    1. Wie ich leider festgestellt habe, funktioniert auch das funktion() - Script nur bedingt. Schalte ich den PROXY Server, den mir mein I-Net Anbieter zur Verfügung stellt, ein, so bekommt auch mein FF text/html übermittlet. Schalte ich ihn aus, ist es application/xhtml+xml. Die Funktion fasst somit doch nciht alle Eventualitäten ab...

                      Kann sie auch gar nicht. Ein Proxy-Server kann theoretisch jeden Header manipulieren wie er es gern möchte, ohne, dass du etwas dagegen tun kannst.

                      1. Hallo,

                        Kann sie auch gar nicht. Ein Proxy-Server kann theoretisch jeden Header manipulieren wie er es gern möchte, ohne, dass du etwas dagegen tun kannst.

                        Das scheint er auch erfolgreich zu tun, er liefert bei $_SERVER['SERVER_PROTOCOL']  HTTP/1.0 womit ich in der zweiten IF-Bedingung lande.

                        Mit freundlichem Gruß
                        Micha

  2. Hallo Micha

    Warum passiert das?

    Nachdem ich mich auch eine ganze Zeit gewundert habe, habe ich mir mal den
    mittels Javascript genereierten Quelltext angesehen:

    <TABLE id="caltable"><THEAD><TR><TH ...

    Fällt dir etwas auf in Verbindung mit Unterschiede zwischen XHTML und HTML?

    Auf Wiederlesen
    Detlef

    --
    - Wissen ist gut
    - Können ist besser
    - aber das Beste und Interessanteste ist der Weg dahin!
    1. Hallo Detlef,

      Fällt dir etwas auf in Verbindung mit Unterschiede zwischen XHTML und HTML?

      Ich habe alles groß geschrieben... Scheiß man, wie simple der Fehler doch sein kann, daran habe ich ja gar nicht gedacht. Vielen Dank!!!

      Mit freundlichem Gruß
      Micha

  3. Hallo,

    Kalender (application/xhtml+xml)

    ich verwende Opera 8.01, bekomme aber text/html

    URL of main page:
    http://www.derletztekick.com/calendar_js_oop.php
    Encoding from server (used by Opera):
    ISO-8859-1 (windows-1252)
    MIME type from server:
    text/html
    Size of main page:
    703 bytes
    Number of inline elements:
    3 ( 3)
    Size of inline elements:
    18974 bytes
    Local cache file:
    C:\Dokumente und Einstellungen\xxx\Anwendungsdaten\Opera\Opera 7.60 Beta\profile\cache4\opr0J7LM.htm
    Security
    Summary:

    • not secure -

    mfg
    Twilo