Alexander: Ist xhtml 1.0 xhtml oder html oder mal das und mal das?

Hallo,

ich habe diesen schlauen Satz in einem anderen Forum gefunden:

"Ich kenne nur einen wirklich guten Grund, gelegentlich XHTML einzusetzen: Im XML-Parser Mozillas und Operas sind kaum Fehlerroutinen enthalten; bei sehr, sehr umfangreichen Dokumenten merkt man den Geschwindigkeitsunterschied beim Rendering."

Ich bin gerade dabei die Unterschiede von html zu xhtml mir zu erlesen um unsere website von html 3.2 auf xhtml upzugraden oder gleich neu zu machen.

Bisher dachte ich immer alles was xhtml 1 (strict oder was auch immer) und 1.1 ist, sei xhtml bzw. darf sich xhtml nennen. Offensichtlich habe ich das aber nicht richtig verstanden. So scheint der Profi da Unterschiede zu machen und so kann xhtml 1 strict normales html aber auch xhtml sein, was der Profi an Hand des verwendeten codes lesen kann.

Könnte mir jemand bitte erklären was xhtml ist bzw. was ein echter Webdesigner darunter versteht?

Besten Dank.
Alex

  1. Hallo,

    xhtml ist eine Nachfolgeversion von html. xhtml arbeitet nach den Regeln von xml und ist daher ein wenig strenger, aber eben auch konsequenter. html folgte keiner solchen Metasprache konsequent und war immer ein wenig pfuschig.

    Die wichtigsten Unterschiede:
    1. alt im img-Element muss sein!
    2. Anführungszeichen bei Attributen müssen sein: alt="Text" statt alt=Text
    3. Elemente immer schließen: nach <li> immer </li>
    4. Nicht schließbare Elemente bekommen einen Schrägstrich vor die schließende Klammer, z. B. bei img oder input: <img src="..." alt="" />
    5. Alle Elemente und Attribute kleinschreiben! img oder onmouseover statt IMG oder onMouseOver.

    Das war's fast schon!

    Verwende http://validator.w3.org/ um zu testen, ob Du alles richtig gemacht hast.

    xhtml ist viel konsequenter bei der Trennung von Textauszeichnung (html) und Gestaltung (CSS) als frühere html-Versionen.

    Ich empfehle Dir unbedingt xhtml zu verwenden, idealerweise 1.0 transitional. strict ist zu strict und 1.1 ebenso.

    Heiner

    1. Hi,

      xhtml ist eine Nachfolgeversion von html. xhtml arbeitet nach den Regeln von xml und ist daher ein wenig strenger, aber eben auch konsequenter. html folgte keiner solchen Metasprache konsequent und war immer ein wenig pfuschig.

      1. alt im img-Element muss sein!

      Das ist kein Unterschied. Das war in HTML auch schon Pflicht.

      xhtml ist viel konsequenter bei der Trennung von Textauszeichnung (html) und Gestaltung (CSS) als frühere html-Versionen.

      Das hängt von der XHTML-Version ab. xhtml 1.0 ist inhaltlich (fast) identisch mit html 4.01, es unterscheidet sich nur in der Syntax (XML statt allgemeinem SGML)

      Ich empfehle Dir unbedingt xhtml zu verwenden, idealerweise 1.0 transitional.
      strict ist zu strict

      ???

      cu,
      Andreas

      --
      Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
      http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
        1. alt im img-Element muss sein!

        Das ist kein Unterschied. Das war in HTML auch schon Pflicht.

        Tatsächlich? Ich dachte es wäre eine Innovation.

        Ich empfehle Dir unbedingt xhtml zu verwenden, idealerweise 1.0 transitional.
        strict ist zu strict

        ???

        Natürlich kann man auch strict nehmen. Gerade am Anfang tut man sich mit transitional und 1.0 leicht. Meines Erachtens gehen 1.1 und strict etwas zu weit, etwa beim Verbot von target, wenn ich mich recht erinnere. Das geht ein wenig an der Realität, die soetwas oftmals wünscht vorbei.

        Heiner

        1. Hallo,

          »»Gerade am Anfang tut man sich mit transitional und 1.0 leicht. Meines Erachtens gehen 1.1 und strict etwas zu weit,

          Das Problem ist, dass XHTML 1.1 eben ziemlich wenig mit XHTML 1.0 zu tun hat. Aber die Leute wollen es unbeding haben ohne zu verstehen warum es eigentlich dabei geht.

          Grüße
          Thomas

          1. Hallo,

            Das Problem ist, dass XHTML 1.1 eben ziemlich wenig mit XHTML 1.0 zu tun hat.

            Kannst du das bitte näher erklären? XHTML 1.1 ist eine Neuformulierung von XHTML 1.0 Strict unter Verwendung von XHTML-Modulen, insofert hat das eine ganze Menge mit XHTML 1.0 zu tun.

            Gruß,

            MI

            --
            XFrames Working Draft (Deutsche Übersetzung) : http://jendryschik.de/TR/xframes/
            Die Wissensgesellschaft : http://jendryschik.de/michael/inf/wissensgesellschaft/
            Einführung in XHTML, CSS und Webdesign: http://jendryschik.de/wsdev/einfuehrung/
            Feste Positionierung, richtig angewandt : http://jendryschik.de/wsdev/css/fixed/
            sh:( fo:) rl:( br:& br:] ' n4:& | n4:? ' ie:| va:) de:] zu:) fl:{ ss:| ls:& js:|
            1. Hallo,

              Kannst du das bitte näher erklären? XHTML 1.1 ist eine Neuformulierung von XHTML 1.0 Strict unter Verwendung von XHTML-Modulen, insofert hat das eine ganze Menge mit XHTML 1.0 zu tun.

              Das ist absolut richtig.
              Jedoch gibt es einige Unterschiede, vor allem was Sinn und Zweck angeht.
              ------------------
              What is the difference between XHTML 1.0, XHTML Basic and XHTML 1.1?
              The first step was to reformulate HTML 4 in XML, resulting in XHTML 1.0. By following the HTML Compatibility Guidelines set forth in Appendix C of the XHTML 1.0 specification, XHTML 1.0 documents could be compatible with existing HTML user agents.

              The next step is to modularize the elements and attributes into convenient collections for use in documents that combine XHTML with other tag sets. The modules are defined in Modularization of XHTML. XHTML Basic is an example of fairly minimal build of these modules and is targeted at mobile applications.

              XHTML 1.1 is an example of a larger build of the modules, avoiding many of the presentation features.
              While XHTML 1.1 looks very similar to XHTML 1.0 Strict, it is designed to serve as the basis for future extended XHTML Family document types, and its modular design makes it easier to add other modules as needed or integrate itself into other markup languages. XHTML 1.1 plus MathML 2.0 document type is an example of such XHTML Family document type.

              ----------------------

              Aber von diesen allgemeinen Aussagen abgesehen; die Modularisation von XHTML sieht nicht nur die Aufteilung von XHTML 1.0 auf Module, die man beliebig verwenden bzw. nicht verwenden bzw. mit eigenen Modulen ergänzen kann, aber macht definitiv keine Vorgaben mehr wie ein XHTML-Family Dokument im Browser aussehen soll, sprich die Trennung vom Layout und Struktur wird vollgezogen.
              ------
              The primary purpose of defining XHTML modules and a general modularization methodology is to ease the development of document types that are based upon XHTML. These document types may extend XHTML by integrating additional capabilities (e.g., [SMIL]), or they may define a subset of XHTML for use in a specialized device.
              --------
              Aber darüber steht auch genug Info unter:[linkhttp://www.w3.org/MarkUp/modularization]

              Sprich, XHTML 1.1 kann man selber ergänzen bzw. erweitern wenn es geforder ist (%Misc.extra; , %Inline.extra; , %Block.extra;)
              etc. und zusammen mit den abstrakt Modulen kann man eben neue Dokumenttypen designen z.b. "XHTML 1.1 plus MathML 2.0".

              All das hat mit bloßem HTML nach XML-Syntax (XHTML 1.0) nur die Ursprünge in HTML.

              Grüße
              Thomas

        2. hi,

          Meines Erachtens gehen 1.1 und strict etwas zu weit, etwa beim Verbot von target, wenn ich mich recht erinnere. Das geht ein wenig an der Realität, die soetwas oftmals wünscht vorbei.

          in _meiner_ realität wird ein neues browserfenster genau dann geöffnet, wenn _ich_ als benutzer dieses wünsche, nicht wenn der seitenersteller es für erforderlich hält, um mich auf seiner seite zu halten.

          gruss,
          wahsaga

          1. Hallo.

            in _meiner_ realität wird ein neues browserfenster genau dann geöffnet, wenn _ich_ als benutzer dieses wünsche, nicht wenn der seitenersteller es für erforderlich hält, um mich auf seiner seite zu halten.

            Obwohl ich das Fehlen von "target" aus genau diesem Grund begrüße, wird dies jedoch dazu führen, dass insbesondere kommerzielle Anbieter entweder diese Technik nicht verwenden oder Verweise zu Original-Quellen zukünftig noch seltener anfügen.
            MfG, at

    2. Hallo,

      html folgte keiner solchen Metasprache konsequent und war immer ein wenig pfuschig.

      Warum ist HTML deiner Meinung nach kein konsequentes SGML?

      Die wichtigsten Unterschiede:

      1. alt im img-Element muss sein!

      Das war bereits in HTML so.

      Das war's fast schon!

      Fast. Weitere Unterschiede findest du unter http://www.edition-w3c.de/TR/2002/REC-xhtml1-20020801/#heading-4.

      xhtml ist viel konsequenter bei der Trennung von Textauszeichnung (html) und Gestaltung (CSS) als frühere html-Versionen.

      Inwiefern ist XHTML konsequenter als HTML?

      [XHTML] strict ist zu strict

      Ich dachte, du befürwortest die konsequente Trennung von Markup und Layout?

      Gruß,

      MI

      --
      XFrames Working Draft (Deutsche Übersetzung) : http://jendryschik.de/TR/xframes/
      Die Wissensgesellschaft : http://jendryschik.de/michael/inf/wissensgesellschaft/
      Einführung in XHTML, CSS und Webdesign: http://jendryschik.de/wsdev/einfuehrung/
      Feste Positionierung, richtig angewandt : http://jendryschik.de/wsdev/css/fixed/
      sh:( fo:) rl:( br:& br:] ' n4:& | n4:? ' ie:| va:) de:] zu:) fl:{ ss:| ls:& js:|
      1. Hallo,

        xhtml ist viel konsequenter bei der Trennung von Textauszeichnung (html) und Gestaltung (CSS) als frühere html-Versionen.

        Inwiefern ist XHTML konsequenter als HTML?

        Gib's auf. Heiner verbreitet den Unsinn auch nachdem man ihn mehrfach darauf hingewiesen hat.

        Mathias

        1. hi,

          Gib's auf. Heiner verbreitet den Unsinn auch nachdem man ihn mehrfach darauf hingewiesen hat.

          auch wenn du es ein wenig hart formulierst - recht hast du.
          wenn ich nur bedenke, wie oft er mit schöner regelmässigkeit in irgendwelche threads einwirft, dass der frager statt <br> doch lieber <br /> nehmen sollte, völlig unabhängig davon, ob überhaupt erwähnt wurde, ob html oder xhtml verwendet wird ...

          gruss,
          wahsaga

  2. Könnte mir jemand bitte erklären was xhtml ist bzw. was ein echter Webdesigner darunter versteht?

    XHTML ist für mich erst XHTML, wenn es als XML interpretiert wird. Das ist der Fall, wenn es mit dem richtigen MIME-Typ gesendet wird (application/xhtml+xml ist optimal, application/xml und text/xml sollten aber auch noch gehen). Der Browsersupport ist dabei noch nicht wirklich gut (Opera ab 7.2 und Mozilla, eventuell auch Safari und Konqueror), aber es lässt sich variabel auf text/html "downgraden".

    Bei Mozilla und Opera merkt man das dann auch, wenn das XHTML Fehler enthält. Sie zeigen die Seite nicht an, sondern melden einen "XML Parsing Error". So soll es IMHO sein.

    greg

    1. Hallo,

      Bei Mozilla und Opera merkt man das dann auch, wenn das XHTML Fehler enthält. Sie zeigen die Seite nicht an, sondern melden einen "XML Parsing Error". So soll es IMHO sein.

      Wobei man noch erwähnen sollte, dass Opera eine richtig ausgelieferte, syntaktisch korrekte XHTML-Datei noch immer als HTML darstellt, Mozilla / Firebirds aber als XML.
      Der IE 6 möchte die XHTML-Datei (als application/xhtml+xml ausgeliefert) abspeichern und wenn man sie doch öffnet stellt diese als HTML dar.

      Grüße
      Thomas

      1. Wobei man noch erwähnen sollte, dass Opera eine richtig ausgelieferte, syntaktisch korrekte XHTML-Datei noch immer als HTML darstellt, Mozilla / Firebirds aber als XML.

        »»

        Opera 7.2 nicht mehr. Geb' dem mal eine nicht korrekte XHTML-Datei als application/xhtml+xml.

        greg

        1. Hallo,

          Wobei man noch erwähnen sollte, dass Opera eine richtig ausgelieferte, syntaktisch korrekte XHTML-Datei noch immer als HTML darstellt, Mozilla / Firebirds aber als XML.
          »»

          Opera 7.2 nicht mehr. Geb' dem mal eine nicht korrekte XHTML-Datei als application/xhtml+xml.

          Freut mich,dass du mich zitierst, aber hast du auch gelesen was ich geschrieben habe?
          Bitte lese den Satzt nochmal gründlich durch und sage mir bitte, wo er in Widerspruch zu dem steht was du jetzt sagtest?

          Danke und Grüße
          Thomas

      2. Hallo Thomas,

        Bei Mozilla und Opera merkt man das dann auch, wenn das XHTML Fehler enthält. Sie zeigen die Seite nicht an, sondern melden einen "XML Parsing Error". So soll es IMHO sein.

        Wobei man noch erwähnen sollte, dass Opera eine richtig ausgelieferte, syntaktisch korrekte XHTML-Datei noch immer als HTML darstellt, Mozilla / Firebirds aber als XML.

        Was verstehst du unter »als XML darstellen« bzw. »als HTML darstellen«? Gecko verarbeitet ein als text/html ausgeliefertes XHTML-Dokument als HTML, nicht als XML. Wohlgeformtheitsfehler werden ignoriert usw. Das entspricht dem Verhalten Operas. Was meinst du genau?

        Mathias

        1. Hallo Mathias,

          Was verstehst du unter »als XML darstellen« bzw. »als HTML darstellen«? Gecko verarbeitet ein als text/html ausgeliefertes XHTML-Dokument als HTML, nicht als XML. Wohlgeformtheitsfehler werden ignoriert usw. Das entspricht dem Verhalten Operas. Was meinst du genau?

          Ich meinte eine "richtig ausgelieferte" ( = application/xhtml+xml xhtml xht), syntaktisch korrekte XHTML-Datei.

          Mozilla:
          <img src="http://www.meta-text.net/etc/mozilla14_xhtml.gif" border="0" alt="">
          Opera:
          <img src="http://www.meta-text.net/etc/opera711_xhtml.gif" border="0" alt="">

          Grüße
          Thomas

          PS: der Kode ist:
          <?xml version="1.0" encoding="iso-8859-1"?>
          <!DOCTYPE html
            PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
          <html xmlns:xhtml="http://www.w3.org/1999/xhtml">
             <head>
                <title>MySQL echt einfach</title>
             </head>
             <body>

          <table cellpadding="3">
                   <tr>
                      <th>Axel Bornträger</th>
                   </tr>
                   <tr>
                      <td>MySQL echt einfach<br /><em>Reihe:</em> echt einfach / Internet/Programierung
                      </td>
                   </tr>
                   <tr>
                      <td>Softcover + CD / EUR 14,95
                      </td>
                   </tr>
                </table>

          </body>
          </html>

          1. Hallo Thomas,

            Ich meinte eine "richtig ausgelieferte" ( = application/xhtml+xml xhtml xht), syntaktisch korrekte XHTML-Datei.

            Dein Beispielcode ist nicht syntaktisch korrekt.
            http://www.w3.org/TR/xhtml1/#strict

            PS: der Kode ist:
            <html xmlns:xhtml="http://www.w3.org/1999/xhtml">

            Was soll denn xmlns:xhtml bezwecken? Die Namespace-Angabe muss sich auf das html-Wurzelelement beziehen, nicht auf den Namensraum xhtml. Und die Angabe des Default-Namespace für die XHTML-Elemente ist xmlns="http://www.w3.org/1999/xhtml". Wenn dies beachtet wird, zeigt Gecko das XHTML-Dokument wie Opera als Hypertextdokument an. Ohne passenden Namespace behandelt Gecko das Dokument wie generisches XML.

            Mathias

            1. Hallo Mathias,

              Dein Beispielcode ist nicht syntaktisch korrekt.
              http://www.w3.org/TR/xhtml1/#strict

              PS: der Kode ist:
              <html xmlns:xhtml="http://www.w3.org/1999/xhtml">

              Stimmt, du hast recht.
              Die Datei ist eigentlich eine XML/XSLT Transformation vom Saxon. Ich habe bloß etwas in der XSL-Sheet vergessen. Zu dumm.

              Grüße
              Thomas

  3. Hallo,

    "Ich kenne nur einen wirklich guten Grund, gelegentlich XHTML einzusetzen: Im XML-Parser Mozillas und Operas sind kaum Fehlerroutinen enthalten; bei sehr, sehr umfangreichen Dokumenten merkt man den Geschwindigkeitsunterschied beim Rendering."

    Das liegt daran, dass sowohl Opera als auch Mozilla keinen validierenden Parser haben. Also es werden nur die Regel für well-formd überprüft.

    Zudem, wird auch bei denen ein XHTML-Dokument, der als HTML ausgeliefert wird, eben nur als HTML erkant und Fehler im Syntax toleriert.
    Versuchst man dagegen im Mozilla ein *.xhtml Datei zu öffnen, wird diese als XML dargestellt und auf Wohlgeformheit überprüft.

    Bisher dachte ich immer alles was xhtml 1 (strict oder was auch immer) und 1.1 ist, sei xhtml bzw. darf sich xhtml nennen.

    XHTML 1.0 ist nicht mit XHTML 1.1 zu vergleichen.

    »»Offensichtlich habe ich das aber nicht richtig verstanden. So scheint der Profi da Unterschiede zu machen und so kann xhtml 1 strict normales html aber auch xhtml sein, was der Profi an Hand des verwendeten codes lesen kann.

    Es kommt darauf an ob die Datei als XHTML oder HTML vom Server ausgeliefert wird (und was der Browser erkennt).
    Und so lange eine XHTML-Datei als HTML ausgelifert wird, erkennen es die Browser auch so und tolerieren gewisse Syntaxfehler.
    Trotzdem oder deshalb ist eine XHTML-Datei nichts anderes als eine HTML-Datei, nennen darf sie sich deshalb XHTML, weil ihre Syntax der Wohlgeformtheitsregel von XML entspricht (oder zumindest sollte) ob als DTD strict oder nicht genannt wird spielt in diesem Zusammenhang keine Rolle.

    Könnte mir jemand bitte erklären was xhtml ist bzw. was ein echter Webdesigner darunter versteht?

    Siehe oben.

    Grüße
    Thomas