SGML-entitás
Az SGML jelölőnyelvben és az SGML-t használó, vagy abból származó nyelvekben (pl. HTML, XML) entitásnak nevezzük a dokumentumhoz rendelt, névvel ellátott adatokat, vagy magát a név nélküli dokumentumot.
Egy entitás jellemzően egy vagy több karakter sorozatából áll. Az elnevezett entitásokra a dokumentumban tetszőleges számban lehet hivatkozni, hasonló módon, mint a több programozási nyelvben is használatos makrókra.
Entitás típusok
szerkesztés- Láthatóság szerint
- Az entitás általános, ha az entitásra a dokumentumban bárhol lehet hivatkozni.
- Az entitás paraméter típusú, ha csak a DTD-n belül lehet rá hivatkozni.
- Forrás alapján
- A belső entitások deklarációja magában a DTD-ben szerepel.
- A külső entitások adatait egy külső fájl tartalmazza.
- Értelmezhetőség alapján
- Az értelmezhető entitások olyan szöveges információkat tartalmaznak, melyek hivatkozáskor a dokumentum részévé válnak, és a feldolgozás során az értelmező elemzi őket. Egy paraméter típusú entitás csak értelmezhető lehet.
- A nem értelmezhető entitások bármilyen nyers adatot tartalmazhatnak. A használó alkalmazás csupán az entitás meglétét ellenőrzi, de a tartalmát nem elemzi, még akkor sem, ha az szöveges típusú.
Szintaxis
szerkesztésAz entitásokat a dokumentumhoz tartozó dokumentumtípus-definícióban deklarálhatjuk. Példák:
<!ENTITY valami "Valami">
Belső általános entitás, aminek a neve "valami", és a "Valami" szöveget tartalmazza.
<!ENTITY Eacute CDATA "É">
Belső általános entitás, aminek a neve "Eacute", és az "É" betűt tartalmazza.
<!ENTITY % adat "file:///adat.txt">
Külső paraméter entitás, aminek a neve "adat", és az értékét az "adat.txt" állomány tartalmazza.
A paraméter entitásokra a DTD-n belül "%" és ";" jelek között hivatkozhatunk, míg az általánosakra az egész dokumentumban "&" és ";" jelek között:
<!ENTITY ValamiAdat "&valami; adat: %adat;">
Karakter entitások
szerkesztésEgy általános SGML dokumentum kódolása csak a 7 bites ASCII kódkészletet használhatja. Konkrét alkalmazások ezt definiálhatják másképp (pl. a HTML alapértelmezett kódolásként a nyugat-európai 8 bites ISO-8859-1 kódolást használja), de egy általános SGML dokumentumnak is biztosítania kell a nemzetközi karakterek kezelését.
Entitások használata nélkül egy tetszőleges Unicode karakterre annak UCS kódjával hivatkozhatunk. A hivatkozás lehetséges decimális számmal "&#" és ";" jelek között vagy hexadecimálisan "&#x" és ";" jelek között.
Az SGML számos nemzetközi betűhöz, nyomdai jelhez és egyéb karakterhez definiál entitásneveket.[1][2] Köztük szerepel az összes magyar ékezetes betű is, illetve számos olyan nyomdai jel is, ami még a Unicode-ban sem szerepel (mint pl. az ligatúra).
A magyar ékezetes betűk SGML entitásai
szerkesztésBetű | Entitás | UCS kód (decimális) | UCS kód (hexa) | Csoport | Unicode név |
---|---|---|---|---|---|
á | aacute | 225 | 00E1 | ISOlat1 | LATIN SMALL LETTER A WITH ACUTE |
Á | Aacute | 193 | 00C1 | ISOlat1 | LATIN CAPITAL LETTER A WITH ACUTE |
é | eacute | 233 | 00E9 | ISOlat1 | LATIN SMALL LETTER E WITH ACUTE |
É | Eacute | 201 | 00C9 | ISOlat1 | LATIN CAPITAL LETTER E WITH ACUTE |
í | iacute | 237 | 00ED | ISOlat1 | LATIN SMALL LETTER I WITH ACUTE |
Í | Iacute | 205 | 00CD | ISOlat1 | LATIN CAPITAL LETTER I WITH ACUTE |
ó | oacute | 243 | 00F3 | ISOlat1 | LATIN SMALL LETTER O WITH ACUTE |
Ó | Oacute | 211 | 00D3 | ISOlat1 | LATIN CAPITAL LETTER O WITH ACUTE |
ö | ouml | 246 | 00F6 | ISOlat1 | LATIN SMALL LETTER O WITH DIAERESIS |
Ö | Ouml | 214 | 00D6 | ISOlat1 | LATIN CAPITAL LETTER O WITH DIAERESIS |
ő | odblac | 337 | 0151 | ISOlat2 | LATIN SMALL LETTER O WITH DOUBLE ACUTE |
Ő | Odblac | 336 | 0150 | ISOlat2 | LATIN CAPITAL LETTER O WITH DOUBLE ACUTE |
ú | uacute | 250 | 00FA | ISOlat1 | LATIN SMALL LETTER U WITH ACUTE |
Ú | Uacute | 218 | 00DA | ISOlat1 | LATIN CAPITAL LETTER U WITH ACUTE |
ü | uuml | 252 | 00FC | ISOlat1 | LATIN SMALL LETTER U WITH DIAERESIS |
Ü | Uuml | 220 | 00DC | ISOlat1 | LATIN CAPITAL LETTER U WITH DIAERESIS |
ű | udblac | 369 | 0171 | ISOlat2 | LATIN SMALL LETTER U WITH DOUBLE ACUTE |
Ű | Udblac | 368 | 0170 | ISOlat2 | LATIN CAPITAL LETTER U WITH DOUBLE ACUTE |
Megjegyzés: Az SGML alkalmazásoknak nem kötelező használniuk az SGML karakter entitásokat. Hogy mit használnak, azt dokumentumonként a DTD határozza meg. Így pl. a HTML a 4.01-es verzióban nem támogatja a közép-európai csoportba (ISOlat2) tartozó betűket entitásnevek formájában,[3] azonban ez áthidalható a numerikus hivatkozással vagy a HTML fejlécében beállítható alapértelmezett karakterkódolással.
Kapcsolódó szócikkek
szerkesztésJegyzetek
szerkesztés- ↑ SGML karakter entitások. [2008. október 18-i dátummal az eredetiből archiválva]. (Hozzáférés: 2008. október 20.)
- ↑ SGML-Unicode kódtáblázat. [2015. december 14-i dátummal az eredetiből archiválva]. (Hozzáférés: 2008. október 20.)
- ↑ Character entity references in HTML 4