Joschi: 2 Fragen bzgl des MIME Typen und xhtml

Hallo,
Ich habe so zwei Verständnisfragen.

1. Ich hab das jetzt so verstanden und auch getestet, dass die Dateiendung davon abhängt wie diese Datei geparst wird und damit auch, wie man die Zeichenkodierung angeben muss. bei *.xhtml läuft die Datei durch den xml-parser und demnach muss man für die Zeichenkodierung z.B. <?xml version="1.0" encoding="ISO-8859-1" ?> angeben. Ist es allerdings eine *.html Datei, muss man z.B. <meta http-equiv="content-type" content="text/html;charset=iso-8859-1"> angeben. Nun muss man bei "content=" auch den MIME Typen angeben, was aber irgendwie in keinster Weise das Dokument beeinflusst - der IE stellt mir bei "application/xhtml+xml" die Seite trotzdem ganz normal dar.
Also müsste es doch eigentlich überflüssig sein, da den MIME Typen anzugeben oder? Oder weswegen wird der da angeben?

2. Wenn man xhtml Dokumente als *.html abspeichert, werden diese ja normal als html geparst, dadurch gehen ja völlig die Vorteile von xml verloren, was ja dann irgendwie sinnfrei ist. Demnach wäre es ja korrekterweise falsches xhtml, wenn es als html geparst wird und genauso gut könnte man das Dokument auch in normalen html schreiben oder?

Danke für Antworten schonmal im vorraus :)

Gruß,
Joschi

  1. hi,

    1. Ich hab das jetzt so verstanden und auch getestet, dass die Dateiendung davon abhängt wie diese Datei geparst wird und damit auch, wie man die Zeichenkodierung angeben muss.

    Eine "Dateiendung" existiert im HTTP-Umfeld gar nicht - weil keine "Dateien" existieren, sondern nur Ressourcen.

    bei *.xhtml läuft die Datei durch den xml-parser

    Allerhöchstens beim wirklichen Aufrufen einer Datei aus dem lokalen Dateisystem.

    Nun muss man bei "content=" auch den MIME Typen angeben, was aber irgendwie in keinster Weise das Dokument beeinflusst - der IE stellt mir bei "application/xhtml+xml" die Seite trotzdem ganz normal dar.

    Eben, weil ihn das überhaupt nicht kümmert - er interpretiert trotzdem als text/html.

    Also müsste es doch eigentlich überflüssig sein, da den MIME Typen anzugeben oder? Oder weswegen wird der da angeben?

    hhtp-equiv ist, wie der Name schon sagt, das Äquivalent einer eigentlich schon in den HTTP Response Headern zu machenden Angabe.

    Wenn du _dort_ application/xhtml+xml angibst - dann stellt dir der IE gar nichts dar, sondern bietet dir die Ressource zum Download an.

    1. Wenn man xhtml Dokumente als *.html abspeichert, werden diese ja normal als html geparst, dadurch gehen ja völlig die Vorteile von xml verloren, was ja dann irgendwie sinnfrei ist.

    XHTML als XML ausliefern zu lassen hat aktuell eigentlich gar keine Vorteile - nur den immensen Nachteil, dass der IE dann gar nichts anzeigen mag.

    Demnach wäre es ja korrekterweise falsches xhtml, wenn es als html geparst wird

    Für XHTML 1.0 ist aus Kompabilitätsgründen eine Auslieferung als text/html erlaubt. Für XHTML 1.1 m.W. nicht mehr.

    und genauso gut könnte man das Dokument auch in normalen html schreiben oder?

    Ja - zumal mit HTML 5, dessen Spezifikation gerade in Arbeit ist, sowieso einiges anders wird.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. hi,

      danke schonmal für die Antwort.

      Also, wenn ich das richtig verstehe, sagt die Dateiendung nur im lokalen System aus, wie die Datei geparst wird, ansonsten gibt der HTTP Response Header aus, wie die Ressourcen geparst werden sollen oder?
      Und dann hab ich dazu dann nochmal gleich zwei Fragen -
      1. Wozu soll man dann dort den MIME Typ bei "content=" angeben, wenn es sowieso keine Auswirkung hat?
      2. Wenn in dem HTTP Response Header der MIME Typ application/xhtml+xml angegeben wird, sendet er _alle_ Ressourcen als XML oder könnte man es auch einstellen, dass er die einen so und die anderen so ausgibt? (Hier reicht mit eine "Ja, das ist möglich" oder "nein, das ist nicht möglich" Antwort :) )

      Für XHTML 1.0 ist aus Kompabilitätsgründen eine Auslieferung als text/html erlaubt.

      Das schießt doch dann völlig am Zweck vorbei, weil xhtml doch grade wegen der Benutzung bezüglich xml geschrieben wurde oder irre ich mich da?

      Und ich denke, dass es schon Vorteile hat, wenn man es als XML ausliefert, nur kann der Großteil die Vorteile nicht nutzen wegen dem IE.

      Gruß,
      Joschi

      1. Hallo Joschi!

        Für XHTML 1.0 ist aus Kompabilitätsgründen eine Auslieferung als text/html erlaubt.
        Das schießt doch dann völlig am Zweck vorbei, weil xhtml doch grade wegen der Benutzung bezüglich xml geschrieben wurde oder irre ich mich da?

        Ja... wobei hier wurde die Rechnung wieder mal ohne den Wirt gemacht. Die Rechnung hat das W3C gemacht, der Wirt sind die Browserhersteller. Die Situation ist deswegen so verzwickt, weil die einen unbedingt auf Abwärtskompatibilität pochen (allen voran Microsoft) - was irgendwie verständlich ist, denn es gibt noch Unmengen an immer noch nützliche Informationen im WWW, deren Präsentation aber lange nicht mehr gepflegt wird, will sagen: die Seiten enthalten informative Schätze in einer (heute - für heutige Browser fast) unverdaulichen Form.

        Das W3C hat sich als Hüter der Standards zu lange in der Position derer gewälzt, die die alleinige Wahrheit für sich beanspruchten. Die Entwicklung (Stichwort Web 2.0) hat aber gezeigt, dass heute von seinen Usern etwas anderes vom Medium Internet erwartet wird. Einige sagen, XHTML ist eine Totgeburt. So weit reicht mein Wissen nicht, es so zu beurteilen, aber ich denke, die -mittlerweile- mit Browserherstellern geführten Gesprächen um HTML 5 wird eher zu einem konstruktiverem Ergebnis führen als das, was der Versuch mit XHTML bisher gebracht hat.

        Viele Grüße aus Frankfurt/Main,
        Patrick

        --

        _ - jenseits vom delirium - _
        [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
        Nichts ist unmöglich? Doch!
        Heute schon gegökt?
      2. Hi,

        Also, wenn ich das richtig verstehe, sagt die Dateiendung nur im lokalen System aus, wie die Datei geparst wird, ansonsten gibt der HTTP Response Header aus, wie die Ressourcen geparst werden sollen oder?

        Nicht ganz.
        In einem lokalen Windows-System werden die Dateien anhand ihrer Endungen mit bestimmten Programmen verknüpft. Ein (Apache-)Server setzt anhand der Dateiendung den passenden Mime-Typ. Welchen Typ er welcher Dateiendung zuweist, ist (wie bei Windows auch) einstellbar.

        1. Wenn in dem HTTP Response Header der MIME Typ application/xhtml+xml angegeben wird, sendet er _alle_ Ressourcen als XML oder könnte man es auch einstellen, dass er die einen so und die anderen so ausgibt?

        Er verwendet wie gesagt eine Zuordnungsliste, die prinzipiell änderbar ist.

        freundliche Grüße
        Ingo

    2. Hello out there!

      Für XHTML 1.0 ist aus Kompabilitätsgründen eine Auslieferung als text/html erlaubt. Für XHTML 1.1 m.W. nicht mehr.

      Du solltest es besser wissen. Unter gewissen Voraussetzungen ist XHTML 1.1 als 'text/html' durchaus erlaubt.

      (Die Sinnlosigkeit von XHTML 1.1 ist eine andere Sache.)

      und genauso gut könnte man das Dokument auch in normalen html schreiben oder?

      Ja

      Könnte man. Aber warum sollte man ... sich Probleme mit HTML 4.01 aufhalsen, die man mit XHTML 1.0 nicht hätte?

      zumal mit HTML 5, dessen Spezifikation gerade in Arbeit ist, sowieso einiges anders wird.

      Aber auch das wird es in XML-Syntax als XHTML 5 geben.

      See ya up the road,
      Gunnar

      --
      „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
      1. hi,

        Aber warum sollte man ... sich Probleme mit HTML 4.01 aufhalsen, die man mit XHTML 1.0 nicht hätte?

        Die da wären?

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Hello out there!

          Aber warum sollte man ... sich Probleme mit HTML 4.01 aufhalsen, die man mit XHTML 1.0 nicht hätte?

          Die da wären?

          Ich hatte doch in diesem Thread schon auf </archiv/2007/2/t147284/#m961973> verwiesen.

          Deutlich wird’s in </archiv/2006/9/t136260/#m885165> und darauffolgendem Gunnar™-Posting.

          XHTML-Dokumente ließen sich auch gegen das strengere XML Schema prüfen, wodurch mehr Fehler* gefunden werden können. [</archiv/2007/1/t145186/#m942346>]

          See ya up the road,
          Gunnar

          * hier nicht im Sinne der DTD gemeint

          --
          „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
  2. Hallo,

    ich empfehle zu diesem Thema immer wieder gerne:
    http://schneegans.de/web/xhtml/

    Der Artikel ist nun auch schon fast 2 Jahre alt (aber immer noch aktuell) - mind. genauso alt ist die Frage und die Diskussion bezüglich des Themas.

    Wie heißt es doch so schön:"Bild dir deine Meinung!"

    Gruß Gunther

  3. Hello out there!

    bei *.xhtml läuft die Datei durch den xml-parser und demnach muss man für die Zeichenkodierung z.B. <?xml version="1.0" encoding="ISO-8859-1" ?> angeben.

    SOLLTE, nicht MUSS. Die Angabe ist erforderlich, wenn sie nicht durch ein externes Transportprotokoll (z.B. HTTP-Header) geliefert wird. [XML :2000@de §4.3.3]

    BTW: da ist ein Übersetzungsfehler: „Bei Abwesenheit von Informationen, die durch ein externes Transportprotokoll […] geliefert werden, ist es ein Fehler, wenn […] Ebenso ist es ein Fehler, wenn […]“ ist im Original [XML:2000 §4.3.3] ein Satz; in der Übersetzung wird nicht klar, dass die der zweite Satz auch auf die „Abwesenheit von Informationen“ bezieht.

    Laut 4. Auflage [XML:2006 §4.3.3] ist es sogar ein „kritischer Fehler“.

    Ist es allerdings eine *.html Datei, muss man z.B. <meta http-equiv="content-type" content="text/html;charset=iso-8859-1"> angeben.

    SOLLTE, nicht MUSS. [HTML401 §5.2.2]

    Nun muss man bei "content=" auch den MIME Typen angeben,

    SOLLTE, nicht MUSS.

    […] was aber irgendwie in keinster Weise das Dokument beeinflusst - der IE stellt mir bei "application/xhtml+xml" die Seite trotzdem ganz normal dar.

    Weil der UA der HTTP-EQUIV-Angabe bei vorhandener Angabe im HTTP-Header keine Beachtung schenkt. [HTML401 §5.2.2]

    Also müsste es doch eigentlich überflüssig sein, da den MIME Typen anzugeben oder? Oder weswegen wird der da angeben?

    Damit die Angabe auch ohne HTTP-HEader vorhanden ist; wenn sie bspw. lokal gespeichert wird und dann die Kopie aufgerufen wird.

    1. Wenn man xhtml Dokumente als *.html abspeichert, werden diese ja normal als html geparst, dadurch gehen ja völlig die Vorteile von xml verloren,

    Nein, es verbleiben noch viele Vorteile von XML für den Webseitenautor. [</archiv/2007/2/t147284/#m961973> und dortige Links]

    See ya up the road,
    Gunnar

    --
    „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)