Standard Generalized Markup Language

A Wikipédiából, a szabad enciklopédiából
Standard Generalized Markup Language
Fájlkiterjesztés.xml
MIME-típusapplication/sgml
text/sgml
FejlesztőCharles Goldfarb
Kiadás dátuma1986
Kiterjesztése ennekGML
Kiterjesztése ezHTML, XML
Uniformpublic.xml
StandardISO 8879
OED részlet 1985-ből, ami SGML jelölést használt

Az SGML (Standard Generalized Markup Language, szabványos általános jelölőnyelv) egy ISO szabványos jelölőnyelv dokumentumformátumok leírására. Az SGML elődjét, a GML-t (Generalized Markup Language) az 1960-as években fejlesztette ki az IBM-nél Charles Goldfarb, Edward Mosher és Raymond Lorie (családnevük kezdőbetűi alapján találta ki Goldfarb a GML nevet). Ennek leszármazottja az SGML, ami 1986-ban lett ISO ( International Organization for Standardization) szabvány.[1]

Az SGML egy absztrakt szintaxist biztosít, amit sokféle alkalmazásban használhatunk. A szabványos szintaktika lehetővé teszi, hogy az ilyen formátumú dokumentumokat egy általános célú értelmezővel (parser) könnyen beolvashassuk, írhassuk vagy formailag ellenőrizhessük. SGML-ben a jelölések (tag) jelentése nincs meghatározva, ez mindig az SGML-t használó alkalmazás feladata (például a HTML-ben, ami az egyik legismertebb SGML alkalmazás, a jelöléseknek már konkrét jelentésük van, és a jelölések értékkészlete véges).

Háttere[szerkesztés]

Az SGML-t eredetileg arra tervezték, hogy lehetővé tegyék a nagy kormányzati és ipari projektek dokumentumainak közzétételét számítógép által is beolvasható formában, azzal a megkötéssel, hogy a dokumentumoknak több évtizedig is olvashatóknak kell lenniük, ami az informatikában nagyon hosszú időnek számít. A formátumnak nagy hasznát vették továbbá a nyomdatechnikai iparágak, de a bonyolultsága megakadályozta, hogy széles körben elterjedjen kisebb méretű általános alkalmazásokban.

Elsősorban szöveges alapú adatbázisok kezeléséhez és közzétételéhez tervezték, és első nagyobb alkalmazásainak egyike az Oxford English Dictionary (OED) második kiadása volt, ami teljes egészében SGML jelölésrendszert használt. Ma leggyakrabban HTML dokumentum formájában találkozunk az SGML-lel, tekintve, hogy a W3C (World Wide Web Consortium) támogatásával a HTML az internetes dokumentumok egyik fő szabványává vált.

Szintaxisa[szerkesztés]

Az SGML lehetővé teszi, hogy a szintaxist az egyes alkalmazásokban testre szabjuk (kis- és nagybetű érzékenység, jelölők határainak megadása, stb.). Egy SGML dokumentum szintaxisát dokumentumtípus-definícióban (Document Type Definition) határozhatjuk meg.

Az alapértelmezett szintaxist használva egy SGML-dokumentumrészlet például így nézhet ki:

 <QUOTE TYPE="example">
   Valami blabla, benne egy <ITALICS>kiemelt</ITALICS> szakasz.
 </QUOTE>
 

Megjegyzendő, hogy SGML szinten az egyes jelölőknek nincs kitüntetett jelentésük. Azt, hogy például az <ITALICS>...</ITALICS> a fenti példában mit jelent, már a használt alkalmazás dönti el. Alapértelmezés szerint az SGML nem betűérzékeny, így a <QUOTE>, <quote> és <Quote> ugyanazt jelentik (ez felülbírálható a NAMECASE NAMING deklarációval).

Azt, hogy egy jelölőt párosával kell-e alkalmazni (mint a fenti példában a <QUOTE>...</QUOTE> párt), vagy lehet-e önmagában is (mint pl, a <HR> elemet HTML-ben), a dokumentumot leíró DTD-ben lehet megszabni.

Az SGML megenged néhány rövidítő konstrukciót is. Ha például egy jelölő elembe biztosan nem akarunk más elemet beágyazni, a hosszabb <ELEM>tartalom</ELEM> helyett írhatjuk azt is, hogy <ELEM/tartalom/ (NET vagy Null End Tag konstrukció). Ha az elemből a tartalom is hiányzik, azonban csak párosával (lezáró elemmel együtt) szerepelhet, az írható a következő módon is: <ELEM//, ahol az első "/" a NET nyitóelem zárását (NET-enabling start-tag close, NETSC), a második meg magát a NET-et zárja le (XML-ben is van NET konstrukció, de a NET lezárását ott ">" jelzi, ezért az előző példa XML-ben így írandó: <ELEM/>). Egy "</>" elemmel pedig a legutoljára megnyitott jelölő zárható le, például <ELEM>tartalom</>.

Karakterkódolás[szerkesztés]

Egy általános SGML dokumentum csak 7 bites ASCII kódolást használhat. A konkrét alkalmazások ettől eltérhetnek (pl. a HTML alapértelmezésben ISO-8859-1, vagyis nyugat-európai, az XML pedig Unicode kódolást használ), azonban minden esetben lehetővé kell tenni, hogy nemzetközi szövegeket is le lehessen írni SGML-ben. Az ASCII-ban nem szereplő-, illetve a védett karakterek (pl. a jelölő nyitását jelző "<" karakter) elhelyezésére a szövegben SGML entitások alkalmazásával van mód.

Az SGML entitásokat a dokumentumtípus-definícióban lehet definiálni, használatukhoz pedig az entitás nevét "&" és ";" jelek között kell elhelyezni a dokumentumban. Az előző példa magyar ékezetes betűkkel:

 <QUOTE TYPE="example">
   Valami sz&ouml;veg, benne egy <ITALICS>kiemelt</ITALICS> r&eacute;sz.
 </QUOTE>
 

Ahol "ouml" az "ö", "eacute" az "é" betűt jelöli.

Entitások használata nélkül is lehetséges bármilyen Unicode karakterre hivatkozni annak UCS kódjával. Ehhez a karakter kódját "&" és ";" jelek közé kell írni. Ez akkor lehet hasznos, ha a karakterhez nincs entitásnév rendelve. Az alábbi két példa a görög nagy szigma (Σ) jelet kódolja:

&#0931;
&#x3A3;

Az első esetben decimális, míg a második esetben hexadecimális módon szerepel a karakter kódja, ahol a hexadecimális megadást az "x" jelzi.

SGML alkalmazások[szerkesztés]

HTML[szerkesztés]

A HTML az SGML egyik legelterjedtebb alkalmazása, amit weboldalak készítéséhez fejlesztettek ki, és mára már internetes szabvánnyá vált a W3C (World Wide Web Consortium) támogatásával. Bár a HTML eredeti verzióját is az SGML jelölés ihlette, csak a 2.0-s verziótól vált hivatalosan is SGML alkalmazássá. Ennek ellenére a HTML szabványt sok böngésző és webes dokumentumkészítő alkalmazás önkényesen értelmezi és használja, ezért szigorúan véve az internetes oldalak alig néhány százaléka felel meg maradéktalanul az SGML szabványnak.[2]

DTD[szerkesztés]

A DTD (Document Type Definition, dokumentum típus definíció) Szintén SGML alkalmazás, dokumentumtípusok specifikációjára használatos. DTD-ben specifikálják például az egyes HTML dokumentumtípusokat is.

Származék nyelvek[szerkesztés]

XML[szerkesztés]

Az XML a SGML egy részhalmaza, szintén általános célú jelölőnyelv. Az XML-ben sokat egyszerűsítettek az SGML eredeti szintaxisán, így sokkal egyszerűbb hozzá értelmezőt írni. Ennek következtében az XML manapság széles körben elterjedtté vált. XML alapú alkalmazások például a következők: XHTML, SVG, RSS és SOAP.

Kapcsolódó szócikkek[szerkesztés]

Jegyzetek[szerkesztés]

  1. ISO 8879:1986 SGML. [2008. december 16-i dátummal az eredetiből archiválva]. (Hozzáférés: 2008. október 19.)
  2. HTML Working Group Charter

További információk[szerkesztés]