Tartalomjegyzék

< XML

Az XML nyelv

Bevezetés

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

SGML

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

Tag

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.

DTD

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ó

SGML példák

<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.

Tim Berners-Lee

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.

WORLD WIDE WEB Consortium

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:

XML

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 példák

<?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>

XML ellenőrzés

Azt ellenőrizzük, hogy az xml állomány megfelel-e az adott DTD-nek.

XML ellenőrző

xmllint jarmu.xml -noout

Szintaktikai szabályok

Lezárás

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 />

Kisbetű-nagybetű érzékenység

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>

Egymásba ágyazás

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!

Gyökérelem

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>

Tulajdonságok

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>

Entitások

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 &lt; 1000 akkor</message>

Az alábbi táblázatban 5 előre definiált entitást látunk:

Entitás Karakter Jelentés
&lt; < kisebb mint
&gt; > nagyob mint
&amp; & ampersand
&apos; ' aposztróf
&quot; idézújel

Megjegyzés

Az XML nyelvben a megjegyzéseket a következő módon készítjük:

<!-- Megjegyzés -->

White-space

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.