Az XML az Extensible Markup Language szavak betűiből alkotott rövidítés.
Az XML a mesterséges nyelvek között egy dokumentumleíró nyelv, amelyben hierarchikus struktúrában dolgozunk. Kiterjeszthető (extensible) mert a szerkezetet meghatározó jelölő elemek neveit magunk találhatjuk ki. Jelölő nyelv, mert a dokumentum szerkezetét határozzuk meg.
Természetes nyelvek | Mesterséges nyelvek |
---|---|
magyar | C |
angol | Pascal |
német | Java |
olasz | HTML |
francia | SGML |
orosz | XML |
japán | SVG |
stb. | stb. |
Az XML CSS-el egybekötött használatáról a következő helyen található egy példa: xml_példák
Az IBM-nél már a 70-es években létezett egy GML nevű nyelv, amely dokumentumok leírását szolgálta. Akkoriban minden cégnek saját dokumentumleíró nyelve volt. Szükséges volt egy szabványos leírónyelvre.
Az ISO 1986-tól jegyzi ISO 8879:1986 szabványt, amely az SGML dokumentumleíró nyelv leírását tartalmazza.
Az SGML szó a Standard Generalized Markup Language szavakból alkotott betűszó, amely magyar nyelvre valahogy így fordítható: Általános Szabványos Kijelölőnyelv
A SGML dokumentum szerkezeti elemeit tagek alkotják. Egy tag „kisebb mint” karakterrel kezdődik, és „nagyobb mint” karakterrel záródik:
<ide jön a tag neve>
Minden tagnek adunk egy nevet. A nevet a két jel között helyezzük el. Legyen például egy olyan tag, amely lakcímeket tartalmaz. Ekkor a tag így nézhet ki:
<lakcím>
A tageknek lehet lezáró részük:
<lakcím> </lakcím>
Az SGML nem írja elő milyen tag neveket használhatunk, csak annak szerkezeti felépítésére tesz javaslatot. A tagek neveit (címkéit) mi magunk találhatjuk ki. Ezért mondjuk, hogy az SGML csak általános leírónyelv.
Egy konkrét dokumentumleíró nyelvben használatos tageket neveit, DTD-ben írjuk le. Ebben adjuk meg az alkalmazni kívánt szintaxist. A DTD a Document Type Definition szavakból alkotott betűszó, amely magyar nyelvere valahogy így fordítható: Dokumentum Típus Definíció
<auto> <szin>piros</szin> <rendszam>FFG-828</rendszam> <gyartas>1985</gyartas> </auto>
<szamitogep> <szerver> <cpu>2GHz</cpu> <memoria>1GB</memoria> <merevlemez>160GB</merevlemez> </szerver> </szamitogep>
<szamitogep> <szerver cpu="2GHz" memoria="1GB" merevlemez="160GB"> </szamitogep>
Ha a tulajdonságok értékeként csak szám van megadva, akkor nem kötelező az idézőjel használata.
<szamitogep> <szerver cpu=2 memoria=1 merevlemez=160> </szamitogep>
A <szerver> tagnek nem kell legyen </szerver> lezáró tagje.
A londoni születésű Tim Berners-Lee (Sir Timothy John) felismerte az SGML nyelvben rejlő lehetőségeket, így ez alapján alkotta meg a HTML nyelvet. Létrehozta a World Wide Web Consortiumot (W3C), amely szabványokat, protokollokat, programokat állít elő. A W3C konzoricum nevéhez köthető többek között az URL, a HTTP, stb. szabvány.
Rövden WWW Consortium, vagy W3C. A Consortium magyarul konzorcium vagy szövetkezés.
1994 – Berners-Lee alapította Massachusetts Institute of Technology-n Röviden MIT, kiejtve:[em-áj-ti], (Massachusetts Műszaki Egyetem).
A W3C konzorcium nyílt szoftver szabványokat („ajánlásokat”) alkot a világhálóra.
A W3C weboldalai:
Néhány példa a W3C szabványaira:
Az XML a Extensible Markup Language szavakból alkotott betűszó, amely magyarra valahogy így fordítható: kiterjeszthető leíró nyelv.
Az XML – mint az SGML is – egy általános célú leírónyelv. Arra találták ki, hogy vele speciális célú leírónyelveket hozhassanak létre. Valójában az SGML egyszerűsített részhalmaza.
Tim Bray (Timothy William Bray) kezdte a fejlesztését. A fejlesztése 1996-ban kezdődött, 1998 februárja óta már hivatalos W3C ajánlás.
Az XML fejlesztői vették az SGML legjobb részeit, hozzávéve a HTML-lel kapcsolatos tapasztalataikat, és előállítottak valamit, ami nem hatékonyabb, mint az SGML, ám mégis jóval szabályosabb és egyszerűbben használható.
Az XML faszerkezetű hierarchikus struktúrája miatt alkalmas bármilyen adat tárolására. Segítségével létrehozhatjuk saját jelölő nyelvünket, amit DTD ismeretében bárki fel tud használni. Egyszerű szöveges állományokat készítünk, így platformfüggetlen, emberi szem számára könnyen olvasható.
A hátránya a megnövekedett tárolási igény. Hiszen minden egyes adatot XML elemek vesznek körül.
<?xml version="1.0" encoding="UTF-8"?> <auto szin=”piros” gyartas=”1985”> <tulaj ig=”1-19320732”> Török Péter </tulaj> <tulaj ig=”2-19850212”> Kis Katalin </tulaj> </auto>
<?xml version="1.0" encoding="UTF-8"?> <szamitogep> <szerver cpu=”2” memoria=”1” merevlemez=”160”/> </szamitogep>
Ha csak számok vannak, akkor is kötelező az idézőjel. A <szerver> tagnek kell legyen </szerver> lezáró tagje vagy <szerver …/>.
<?xml version="1.0" encoding="UTF-8"?> <dolgozok> <dolgozo>Nagy József</dolgozo> <dolgozo>Kis István</dolgozo> <dolgozo>Szép Lajos</dolgozo> </dolgozok>
<?xml version="1.0" encoding="UTF-8"?> <dolgozok> <dolgozo> <nev>Nagy József</nev> <kor>27></kor> <fizetes>870000</fizetes> </dolgozo> <dolgozo> <nev>Kis István</nev> <kor>35></kor> <fizetes>470000</fizetes> </dolgozo> <dolgozo> <nev>Szép Lajos</nev> <kor>27></kor> <fizetes>175000</fizetes> </dolgozo> </dolgozok>
Azt ellenőrizzük, hogy az xml állomány megfelel-e az adott DTD-nek.
XML ellenőrző
xmllint jarmu.xml -noout
Minden XML elemnek lennie kell lezáró részének is.
A HTML nyelvben néhány elem nem tartalmaz semmit. Mit is tartalmaznak a sortörés, vízszintes vonal vagy egy meta elem, amely az attribútumaiban írja le a tartalmát:
<br> <hr> <meta>
De vannak olyan HTML elemek, amelyeket nem szoktak lezárni ha a Transitional verzióban hozzuk létre a weblapjainkat.
<p> <li>
Az XML nyelvben ez illegális. Az elemet le kell zárni. Ha egy elem nem tartalmaz semmit, akkor a lezárás így történik:
<br /> <hr /> <meta />
Az XML tagek kis és nagybetű érzékenyek.
A <betű> és a <Betű> különböző tagek.
A nyitó és záró tageket ugyanazzal névvel adjuk meg:
<Uzenet>Ez helytelen</uzenet> <uzenet>Helyes</uezent>
Az XML elemek egymása ágyazhatók, de nem fedhetik egymást át.
Átfedésre példa a HTML Transitional verzióban:
<b><i>A szöveg félkövér és dőlt</b></i>
Az XML nyelven csak így használhatjuk:
<b><i>A szöveg félkövér és dőlt</i></b>
Ha „i” nyitottuk utoljára meg, akkor azt is kell előbb lezárni!
Az XML dokumentumban lenni kell egy gyökérelemnek. Ez fogja tartalmazni a többi gyermekelemet. Angolosan root elemnek hívjuk. A HTML nyelvben például html a root elem neve, de saját leírónyelvünkben lehet akár a root szó is.
<root> <child> <subchild>.....</subchild> </child> </root>
Az XML tulajdonságok értékét mindig idézőjelbe kell tenni.
Például helytelen ez:
<note date=2012/03/05> <to>Tove</to> <from>Jani</from> </note>
Helyes ez:
<note date="2012/04/25"> <to>Tove</to> <from>Jani</from> </note>
Az XML nyelvben néhány karakternek speciális jelentése van. Ilyen a „<” karakter.
Ezért hibás az alábbi minta:
<message>ha ár < 1000 akkor</message>
Ezeket ki kell cserélni a neki megfelelő entitásra:
<message>ha ár < 1000 akkor</message>
Az alábbi táblázatban 5 előre definiált entitást látunk:
Entitás | Karakter | Jelentés |
---|---|---|
< | < | kisebb mint |
> | > | nagyob mint |
& | & | ampersand |
' | ' | aposztróf |
" | „ | idézújel |
Az XML nyelvben a megjegyzéseket a következő módon készítjük:
<!-- Megjegyzés -->
Az XML a white-space karaktereket nem veszi figyelembe.
Az XML a sortöréseket LF-ként kezeli.
Ne feledjük, hogy a Windows CR+LF párost használja. A Unix alapú rendszerek LF-et.