国内--四川频道--人民网
Standard Generalized Markup Language | |
![]() | |
Fájlkiterjesztés | .xml |
MIME-típus | application/sgml text/sgml |
Fejleszt? | Charles Goldfarb |
Kiadás dátuma | 1986 |
Kiterjesztése ennek | GML |
Kiterjesztése ez | HTML, XML |
Uniform | public.xml |
Standard | ISO 8879 |

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öveg, benne egy <ITALICS>kiemelt</ITALICS> ré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:
Σ Σ
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]- ↑ ISO 8879:1986 SGML. [2008. december 16-i dátummal az eredetib?l archiválva]. (Hozzáférés: 2008. október 19.)
- ↑ HTML Working Group Charter
További információk
[szerkesztés]- Overview of SGML Resources at W3C's website.
- SGML History by Charles Goldfarb Archiválva 2007. június 11-i dátummal a Wayback Machine-ben
- Introduction and Examples of Software Documentation in SGML
- A gentle introduction to SGML