Tim Tepaße: eigene Attribute, Kommentare, HTML 4.01 -> HTML 5

Beitrag lesen

In HTML 4 gibt es den Begriff „Wohlgeformtheit“ nicht, IIRC.

Jo. Aber der Begriff (Und die Unterscheidung zu Validität) ist so praktisch, dass ich ihn übertrage, wie molily schon sagt. Wie will man sonst zwischen Syntax und Inhalt dieser Syntax unterscheiden können?

Aber <a attribute="attribute"> könnte auch in XHTML-1-Dokumenten wohlgeformt also quasi zulässig sein.
Nö. Zulässig ist, was den Syntaxregeln entspricht, also valide ist.

… Syntax („Wohlgeformtheit“) im XML-Sinne ist die Übereinstimmung mit der XML-EBNF. Validität ist die zusätzliche Übereinstimmung mit der DTD. Das kann ein kontextfreier Parser nicht überprüfen; dazu braucht es einen validating Parser. Aber es gibt eben aus vielen Gründen auch non-validating Parser, weswegen, wie ich schon sagte, die Unterscheidung zwischen beiden Konzepten sehr sinnvoll ist. Auch, wenn man über (X)HTML5 nachdenkt. Die Syntaxdefinition der HTML5-Syntax ist zwar in Prosa gehalten, strukturell aber einer solchen kontextfreien Grammatik vergleichbar.

Was der Parser erfolgreich geparst hat, muss allerdings nicht valide sein, da HTML5 die Fehlerbehandlung (d.h. das Verhalten bei invalidem Code) gleich mit spezifiziert.

Ja. Aber ganz abgesehen vom Konzept der Validität gibt es ja das noch viel größere Konzept Conforming, das dafür sorgen will, ob Dokumente nicht nur maschinenlesbaren Regeln folgen, sondern auch dem Geist und Herz der Spec. Die Notiz bei der Definition für Conformance Checker ist da recht erläuternd.

Die Spec […] bietet alternative Mechanismen an, XML-Namensräume in XML-Syntax
Die Spec erlaubt nur wenige Attribute mit Namensräumen.

Wieso verlinkst Du auf eine HTML-Syntax-Definition, wenn ich über die XML-Syntax rede? ;)

Ich bezog mich übrigens auf 2.2.3 Extensibility:
  For markup-level features that can be limited to the XML serialization and need not be
  supported in the HTML serialization, vendors should use the namespace mechanism to
  define custom namespaces in which the non-standard elements and attributes are
  supported.

DOM != HTML.

Das ist ein anderes Thema, aber ich würde argumentieren, dass, nach vielen Problemen HTML nur in Rahmen dessen, was über das Netzwerkkabel geht, zu verhandeln, HTML5 den richtigen Schritt gemacht hat, HTML vorrangig in Termen des DOMs zu definieren und dann noch zusätzlich eine Syntax und dazu zusätzlich noch einen fehlerbehandelnden Parsingalgorithmus mitzuliefern. Insofern macht Deine Unterscheidung für mich eher weniger Sinn, weil man z.B. nicht über Elemente wie <canvas> nur im Rahmen von HTML-Syntax reden kann. Und dennoch ist <canvas> definitiv HTML.