Tobel: XHTML Verwirrunf

Moin!

Ich bin verwirrt! Ich möchte gerne XHTML Dokumente erstellen, nur wie der Kopf von diesen Dokumenten aussieht, da verschiedene Quellen verschiedene Alternativen bieten (z.B. mit <?xml...> und ohne). Meine sieht im Moment so aus:

<?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="http://www.w3.org/1999/xhtml">

RIchtig oder nicht?

Beste Grüsse,

Tobel

  1. Hi,

    (z.B. mit <?xml...> und ohne)

    der Grund, auf die <?xml?>-Deklaration zu verzichten ist, dass der IE zu doof ist, bei Vorhandensein den DOCTYPE zu finden. Der Rest ist gut, sofern Du XHTML/1.0 Strict einsetzen möchtest.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. der Grund, auf die <?xml?>-Deklaration zu verzichten ist, dass der IE zu doof ist, bei Vorhandensein den DOCTYPE zu finden. Der Rest ist gut, sofern Du XHTML/1.0 Strict einsetzen möchtest.

      d.h. ich kanns weglassen und es funktioniert auch in allen anderen Browsern?

      1. Hi,

        d.h. ich kanns weglassen und es funktioniert auch in allen anderen Browsern?

        jau, die aktuellen Browser rechnen noch mit dem Fehlen der <?xml?>-Deklaration, die zudem bei XHTML/1.x noch nicht zwingend ist (wenn auch "im Prinzip" sehr empfohlen).

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Hallo,

          d.h. ich kanns weglassen und es funktioniert auch in allen anderen Browsern?

          jau, die aktuellen Browser rechnen noch mit dem Fehlen der <?xml?>-Deklaration

          Sie werden auch in Zukunft mit dem Fehlen rechnen, solange man ihnen sagt, das das Markup, was man ihnen vorsetzt, HTML ist.

          die zudem bei XHTML/1.x noch nicht zwingend ist (wenn auch "im Prinzip" sehr empfohlen).

          Sie ist zwingend, wenn die Kodierung nicht UTF-8 bzw. UTF-16 ist. Ansonsten ist das Dokument irgendetwas, aber nichts, was den Regeln von X(HT)ML entspricht. Wenns trotzdem als XML-Dokument funktioniert, verlässt man sich auf die Fehlertoleranz, die schon bei HTML berühmt-berüchtigt war. Da fährt man mit HTML allemal sicherer und konformer.

          Ich weiß, dass diese meine Anmerkungen nerven, aber man sollte sich zumindest bewusst sein, dass man mit sogenannten HTML-kompatiblen XHTML-Dokumenten, bei denen man grundlegende Regeln von XML beiseite wischt, für gewöhnlich keine wirklichen XML-Dokumente ins Netz stellt. Spätestens, wenn man die Vorteile von XHTML nutzen will, sieht man sich mit diesen Problemen konfrontiert.

          Mathias

          1. wahrscheinlich wurde das thema schon x-mal diskutiert, aber es natürlich klar, dass wenn man die <?xml...> deklaration wegläßt man auch kein xhtml mehr hat.

            danke für die infos

            1. wahrscheinlich wurde das thema schon x-mal diskutiert, aber es natürlich klar, dass wenn man die <?xml...> deklaration wegläßt man auch kein xhtml mehr hat.

              Tobel,
              Nein, ist es nicht. (Es ist nicht klar. Es ist XHTML.)

              XML verlangt keine XML-Deklaration.
              http://www.edition-w3c.de/TR/2000/REC-xml-20001006/#sec-prolog-dtd
              http://www.edition-w3c.de/TR/2002/REC-xhtml1-20020801/#heading-3.1.1

              Gunnar

              --
              "Nobody wins unless everybody wins." (Bruce Springsteen)
              1. Hi,

                XML verlangt keine XML-Deklaration.

                Jain. XML 1.0 verlangt keine XML-Deklaration.
                XML 1.1 verlangt eine XML-Deklaration (damit von Beginn an klar ist, daß es sich nicht um XML 1.0 handelt).

                http://www.edition-w3c.de/TR/2000/REC-xml-20001006/#sec-prolog-dtd

                Hier steht noch:
                [22] prolog ::= XMLDecl? Misc* (doctypedecl Misc*)?

                also ein ? nach XMLDecl, was die Deklaration optional macht.

                http://www.w3.org/TR/2004/REC-xml11-20040204/#NT-prolog
                Hier steht für den Prolog:

                [22] prolog ::= XMLDecl Misc* (doctypedecl Misc*)?

                Kein Fragezeichen nach XMLDecl ==> nicht optional.

                Aber XHTML 1.0 basiert natürlich auf XML 1.0 - insofern ist bei XHTML 1.0 die XML-Deklaration nicht Pflicht. (Auch XHTML 1.1 und XHTML 2.0 setzen auf XML 1.0 auf)

                cu,
                Andreas

                --
                MudGuard? Siehe http://www.Mud-Guard.de/
                Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
              2. Hallo,

                wahrscheinlich wurde das thema schon x-mal diskutiert, aber es natürlich klar, dass wenn man die <?xml...> deklaration wegläßt man auch kein xhtml mehr hat.

                Nein, ist es nicht. (Es ist nicht klar. Es ist XHTML.)

                Wenn man schon anfängt, die XML-Specs zur Klärung der Frage heranzuziehen, dann wird sowieso klar, dass dieses XHTML nach XML-Regeln nicht funktioniert, weshalb man durchaus daran zweifeln könnte, es als gültiges XHTML zu bezeichnen. Seine XML-Deklaration beinhaltete encoding="iso-8859-1". Jeder Parser, der sich an den XML-Standard hält, also jeder XML-Parser wird ihm erzählen, wieviel XML dieses XHTML wirklich ist. Ein Fatal Error ist ein Fatal Error:

                »Once a fatal error is detected, however, the processor MUST NOT continue normal processing (i.e., it MUST NOT continue to pass character data and information about the document's logical structure to the application in the normal way).«

                »In the absence of information provided by an external transport protocol (e.g. HTTP or MIME), it is a fatal error for an entity including an encoding declaration to be presented to the XML processor in an encoding other than that named in the declaration, or for an entity which begins with neither a Byte Order Mark nor an encoding declaration to use an encoding other than UTF-8.«

                Sendet er wohl charset=iso-8859-1 im Content-Type-Header?

                Mathias

  2. Tobel,
    Wie Cheatah schon sagte, der IE schaltet nur dann in den Standards-compliant-Mode, wenn er die DOCTYPE-Angabe in der 1. Zeile vorfindet. Damit er das also tut, also CSS-Angaben, die das Box-Model betreffen, richtig interpretiert, sollte die XML-Deklaration – entgegen der Empfehlung des W3C – weggelassen werden.

    Was du noch tun kannst (das W3C rät dazu), ist im html-Tag die Sprache des Dokuments angeben:
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="x-klingon" lang="x-klingon">

    Siehe auch mein Hinweis https://forum.selfhtml.org/?t=89652&m=536498
    Gunnar

    --
    "Nobody wins unless everybody wins." (Bruce Springsteen)