Hallo Andreas,
Man hat sie in HTML ja auch nicht (neu) definiert, man hat sie übernommen.
Doch, erst dort werden sie wirklich definiert,
Da haben wir wohl unterschiedliche Ansichten was das angeht.
Aber du solltest ja selber nachlesen können (Seite 114 ff.) ;-)
hier wird ja nur beschrieben, welche entity sets mit welchen entity names es geben könnte/sollte.
Wären hier bereits die Entities an sich definiert, müßten sie in jeder SGML-basierten Sprache automatisch zur Verfügung stehen.
Sie stehen ja zur Verfügung, wenn man diese Entitysets wie angegeben verwendet:
<!ENTITY % ISOlat1 PUBLIC "ISO 8879-1986//ENTITIES Added Latin 1//EN>
%ISOlat1;
Die dort (S. 114ff) gegebenen "Definitionen" unterscheiden sich ja auch deutlich von denen in der HTML-DTD (Datentyp CDATA <---> SDATA, numerische Zeichenreferenzen <---> Eckige Klammern mit Entity Name drin)
Das ist zwar ein Argument, aber nicht auf lange Sicht haltbar: es gibt verschiedene Adaptationen von diesen Entitysets, eben auch für XML, wie für DocBook XML z.B.
Darf ich in diesem Zusammenhang auf http://www.w3.org/2003/entities/ und weiter auf http://www.w3.org/2003/entities/iso8879doc/overview.html verweisen?
"ISO 8879 - These are the original entity names, as defined in the SGML standard."
Ein ä in einem XML ohne DTD müßte dann als ä erkannt werden - wird es aber nicht.
Natürlich wird es nicht. Ohne die Entity deklariert zu haben. (build-in Entities gibts nur wenige, wie du schon aufgezählt hast) Es ist ja auch nicht die aufgabe eines XML-Parsers ohne die entsprechende Deklaration jeden Entity zu verstehen. Warum sollte er das auch? Nur weil die Browser bei HTML einiges verstehen?
Vielleicht reden wir aneinander vorbei. Mir ging es ja nur darum, dass sehr viele der HTML/XHTML-Entities (Entitynamen) bereits in SGML definiert worden sind.
Grüße
Thomas