MudGuard: zum header Re w3c//dtd html 4.01 /0 standard

Beitrag lesen

Hi,

  1. <title> sollte als erstes stehen (a weil es XHTML so will, b weil es übersichtlicher ist)

aus der XHTML1-Strict DTD:
<!ENTITY % head.misc "(script|style|meta|link|object)*">

<!ELEMENT head (%head.misc;,
     ((title, %head.misc;, (base, %head.misc;)?) |
      (base, %head.misc;, (title, %head.misc;))))>

zuerst darf also head.misc stehen, d.h. null oder mehr Elemente namens script, style, meta, link, object
Also darf meta vor title stehen...
Ist sogar sinnvoll. Wenn der title nämlich Zeichen enthält, die nicht im 7-Bit-Ascii enthalten sind...

in XHTML1.1 sieht es ähnlich aus (nur daß die DTD noch schlechter lesbar ist wegen der zig Entities, die mehrfach geschachtelt sind...)

<!ENTITY % head.content
    "( %HeadOpts.mix;,
     ( ( %title.qname;, %HeadOpts.mix;, ( %base.qname;, %HeadOpts.mix; )? )
     | ( %base.qname;, %HeadOpts.mix;, ( %title.qname;, %HeadOpts.mix; ))))"

<!ENTITY % head.content
    "( %HeadOpts.mix;, %title.qname;, %HeadOpts.mix; )"

<!ENTITY % HeadOpts.mix
     "( %script.qname; | %style.qname; | %meta.qname;
      | %link.qname; | %object.qname; )*"

Warum es head.content hier mehrfach gibt, hab ich noch nicht durchschaut, ist wohl von bedingten Teilen der DTD abhängig (ob base erlaubt sein soll oder nicht?).
Aber in beiden Fällen darf vor Title ein HeadOpts.mix stehen...

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.