fjh: Was ist «!ENTITY» ???

Beitrag lesen

Hi Joern

Beim Lesen der HTML 4.01 Spec stolpere ich wieder und wieder über
<!ENTITY> und kann in der Spec nichts finden, was es erklärt? Helft mir auf die Sprünge! Danke.

HTML ist eine Anwendung von SGML. In SGML (wie auch in XML) werden Entities innerhalb einer Dokumententypdefinition (DTD) deklariert. Vereinfacht gesagt sind Entites eine Art Abkürzung. Auf ein mit <!ENTITY> deklariertes Entity kann man mittels einer Entity-Referenz verweisen.

Bsp:
<!ENTITY langtext "superlangertextderabgekürztwerdensollte"> in der DTD
und
&langtext; in der XML-Datei (vgl. auch &aul; für ä in HTML)
Dann wird die Entity-Referenz "&langtext;" durch den in der Entity-Deklaration in Anführungszeichen stehenden Text ersetzt.

Daneben gibt es auch sogenannte Parameter-Entites, die innerhalb von DTDs (also auch der HTML-DTD) als Abkürzung benutzt werden (und nur dort).

Z.B.
<!ENTITY % heading "H1H2H3H4H5H6">
deklariert eine Parameter-Entity (Prozentzeichen!), die nun z.B. in einer Element-Deklaration mittels "%heading" verwiesen werden kann.
Das Prinzip wird klar, wenn du z.B. in der HTML-Spec auf eine Parameter-Entity-Referenz klickst. Du gelangst dann direkt zur entsprechenden Entity-Deklaration.

Gruss
Franz