C2H5OH: Doctype Declaration

Hi,

um valides XHTML1.1 zu behalten mußte ich die Doctype Declaration erweitern, es sieht nun so aus:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"[
<!ATTLIST span
    newattr1    CDATA   #IMPLIED
    newattr2    CDATA   #IMPLIED
    >
]>

der W3C-Validator erkennt dann zwar die Version nicht mehr und validiert gegen HTML4.01 transitional mit den entsprechenden Fehlermeldungen. Das Abschalten der automatischen Erkennung und zwangsweise Validierung nach XHTML1.1 nutz auch nichts, da er dann einen weiteren Doctype einfügt und mit den beiden Deklarationen in Konflikt kommt.
Die Validatoren von WDG und Validome haben dagegen keine Probleme und melden ein fehlerfreies XHTML.

Nur die Browser haben Probleme, da sie bei dem ersten schließenden '>' das tag beenden und ']>' als Text behandeln und darstellen.

Es ist zwar kein stilistisches Problem, da ich die Vordergrundfarbe des bodies auf seine Hintergrundfarbe gesetzt habe (auf kein problem, da im body direkt sowieso kein Text stehen darf).

Es stört mich aber dennoch. Also habt ihr eine Idee, wie man die Browser austricksen kann.
Btw.: Opera schein dies mal richtig zu machen.

Gruß C2H5OH

  1. Hi,

    um valides XHTML1.1 zu behalten mußte ich die Doctype Declaration erweitern, es sieht nun so aus:

    Wenn Du XHTML 1.1 um Deinen eigenen Kram erweiterst, ist es keinesfalls mehr XHTML 1.1

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"[
    <!ATTLIST span
        newattr1    CDATA   #IMPLIED
        newattr2    CDATA   #IMPLIED
        >
    ]>

    Ich bin mir nicht sicher, ob es zulässig ist, eine externe mit einer internen DTD zu verbinden.

    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.
    1. Wenn Du XHTML 1.1 um Deinen eigenen Kram erweiterst, ist es keinesfalls mehr XHTML 1.1

      Wie nan's nennt ist doch egal, haupsache die Browser kommen damit zurecht und es validiert.

      Ich bin mir nicht sicher, ob es zulässig ist, eine externe mit einer internen DTD zu verbinden.

      Ich war mir auch nicht sicher, aber die Antwort des Validators (WDG) sah so aus:

      * Character encoding: ISO-8859-1
          * Level of HTML: XHTML 1.1

      Congratulations, no errors!

      Gruß
      C2H5OH

      1. Hallo,

        Wenn Du XHTML 1.1 um Deinen eigenen Kram erweiterst, ist es keinesfalls mehr XHTML 1.1

        Wie nan's nennt ist doch egal, haupsache die Browser kommen damit zurecht und es validiert.

        Warum validierst Du dann und schreibst Dir Deine eigene DTD?
        Der Validator ist nur eine Maschine. Dem ist es egal, wie Dein Code aussieht, vorausgesetzt er paßt zu was auch immer.

        Stehe dazu, daß Du keinen validen XHTML-Code hast oder laß Deine ungültigen Attribute weg. Alles andere ist in meinen Augen Selbstverarschung.

        Viele Grüße
        Carsten

        1. Stehe dazu, daß Du keinen validen XHTML-Code hast oder laß Deine ungültigen Attribute weg.

          Auf dumme Ratschläge kann ich verzichten,  ich habe mir schon gut überlegt was ich mache. Die Attribute sind zwingend notwendig, weglassen geht also nicht.

          Gruß
          C2H5OH

          1. Auf dumme Ratschläge kann ich verzichten,

            Nu werd mal nich pampig!

            ich habe mir schon gut überlegt was ich mache.

            Anscheinend nicht. Aus deinem Originalposting:

            um valides XHTML1.1 zu behalten mußte ich die Doctype Declaration erweitern

            XHTML ist vom W3C standardisiert, da kannst du nicht daher kommen und die DTD erweitern.

            Du kannst dir deine eigene XML-Sprache nach Belieben ausdenken, das ist dann aber keinesfalls XHTML.

            Gunnar

            --
            Good results come from experience; and experience comes from bad results.
  2. Hallo,

    um valides XHTML1.1 zu behalten mußte ich die Doctype Declaration erweitern, es sieht nun so aus:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"[
    <!ATTLIST span
        newattr1    CDATA   #IMPLIED
        newattr2    CDATA   #IMPLIED
        >
    ]>

    der W3C-Validator erkennt dann zwar die Version nicht mehr und validiert gegen HTML4.01 transitional mit den entsprechenden Fehlermeldungen.

    Setze mal zwischen " und [ ein Leerzeichen oder Zeilenumbruch.

    MfG, Thomas

    --
    SVG - Learning By Coding
    http://svglbc.datenverdrahten.de/
    1. Setze mal zwischen " und [ ein Leerzeichen oder Zeilenumbruch.

      Das bringt nichts, hätte mich auch gewundert!

      Gruß
      C2H5OH

      1. Hallo,

        Setze mal zwischen " und [ ein Leerzeichen oder Zeilenumbruch.

        Das bringt nichts, hätte mich auch gewundert!

        In einer DTD muss in Deklarationen auch Whitespace zur Trennung zwischen Deklarationen und Inhaltsmodell verwendet werden, z. B. bei element1 (element2,element3) oder element4 (#PCDATA) usw. Insofern ist das beim Einschub von DTD-Fragmenten auch nicht verwunderlich. Ich habe es noch nicht anders gesehen und auch nur so verwendet.

        Hier mal ein kleiner Testcase zur Validierung mit " [ bzw. "[ und es liegt am Whitespace:

        1. mit:  http://validator.w3.org/check?uri=http://www.datenverdrahten.de/test/xhtml11_test_1.htm
        2. ohne: http://validator.w3.org/check?uri=http://www.datenverdrahten.de/test/xhtml11_test_2.htm

        Version 1) validert.

        Die Dokumente werden aber vom Server nicht als application/xhtml+xml ausgeliefert (nur im meta-Tag angegeben) und das bedingt vermutlich das Auftreten der Zeichenkette "]>" im Content ...

        Verwende doch XHTML 1.0.

        MfG, Thomas

        --
        SVG - Learning By Coding
        http://svglbc.datenverdrahten.de/