2020. április 18., szombat

Készítsünk XML-t

XML és HTML

Elsõ ránézésre az XML nagy mértékben hasonlít a HTML-re, azonban rengeteg különbség adódik a két leírónyelv között - ami természetesen céluk különbözõségébõl is adódik.
A HTML ugyanis fix, "bedrótozott" tagekkel rendelkezik, amelyek a szöveg struktúrájának (és egy bizonyos szintig a kinézetének) leírására szolgál. Az XML-t hangsúlyosan struktúrált adatok leírásra találták ki, ebbõl következõen tagjeit bõvíteni lehet.
hirdetes
Az XML sokkal szigorúbb szabályok szerint mûködik; míg a HTML-ben például megtehetjük, hogy egy nyitótaghez nem tartozik zárótag, addig ez az XML-ben hibát okoz. Utóbbinál a tagek megadásakor az sem mindegy, hogy kis- vagy nagybetûvel írjuk-e õket.

Az XML elõnyei

    Könnyen olvasható, ember számára is értelmezhetõ
    Unicode támogatás
    Ábrázolható vele a legtöbb, informatikában használatos adatstruktúra
    A szigorú szabályok miatt egyszerû hozzá értelmezõt írni

Az XML hátrányai

    A redundáns adattárolásból adódó nagy méretek
    Nem támogatja az adattípusokat, így pl. a számokat is szövegként kell tárolni
    Bizonyos esetekben nehézkes adattárolás, pl. egymást átfedõ adatok ábrázolásánál
    Nincs egyszerû módja nagy méretû bináris fájlok (képek, hangok) ábrázolásának

XML dokumentumok helyessége

Az XML dokumentumok helyességének két fokmérõje van. Az elsõt (well-formed) akkor teljesítjük, ha megfelelünk az XML által támasztott szabályoknak.
Másik szint, ha a dokumentum valid. Ekkor a dokumentumot annak funkciói szerint ellenõrizzük, rendszerint egy másik XML Schema vagy DTD dokumentumok alapján.

Az XML azon tulajdonságai, amelyek alkalmassá teszik adattovábbításra:

    mind ember, mind gép számára olvasható formátum
    támogatja a Unicode-ot, ami lehetővé teszi bármely információ bármely emberi nyelven történő közlését
    képes a legtöbb általános számítástudományi adatstruktúra ábrázolására (rekord, lista, fa…)
    öndokumentáló formátum, amely struktúra- és mezőneveket ír le speciális értékekkel együtt
    szigorú szintaktikus és elemzési követelményeket támaszt, ami biztosítja, hogy a szükséges elemzési algoritmus egyszerű, hatékony és ellentmondásmentes maradjon

Az XML-t gyakran használják dokumentumtárolási és feldolgozási formátumként, mind online, mind offline módon, és több előnnyel is jár:

    internetes szabványokon alapuló erőteljes, logikailag ellenőrizhető formátum
    a hierarchikus struktúrája megfelel a legtöbb (de nem mindegyik) dokumentumtípusnak
    sima szövegformátumban (plain text) valósul meg, licencektől és korlátozásoktól mentesen
    platformfüggetlen, így viszonylag immunis a technológiai változásokkal szemben
    az XML-t és elődjét, az SGML-t már több, mint tíz éve használják, így széles tapasztalat és eszközkészlet áll rendelkezésre

Bizonyos alkalmazások szempontjából a következő hátrányokkal rendelkezik:

    A szintaxisa elég bőbeszédű és részben redundáns. Ez nehezítheti az emberi olvashatóságot és az alkalmazások hatékonyságát, valamint nagyobb tárolási költséggel jár. Nehézzé teszi az XML alkalmazását korlátozott sávszélesség esetén, bár bizonyos esetekben a tömörítés csökkentheti a problémát. Ez részben igaz a telefonokon és PDA-kon futó multimédiás alkalmazásokra, melyek XML-t szeretnének használni képek és videók leírására.
    A szintaxis számos homályos, felesleges tulajdonsággal bír, ami az SGML hagyatéka.
    Az alapvető elemzési követelmények nem támogatják az adattípusok túl széles körét, így néha a kívánt adat kinyerése a dokumentumból plusz munkával jár az elemző részéről.
    Nincs lehetőség a dokumentum egyes részeinek közvetlen elérésére és frissítésére.
    Egymást részben átfedő (nem hierarchikus) adatstruktúrák modellezése külön erőfeszítést igényel.
    Az XML relációs és objektumorientált paradigmához kötése néha fáradságos.

Jólformázott XML dokumentumok

jólformázottság (well formedness): az XML dokumentumok megfelelnek az XML specifikációban megadott alapvető szintaktikai szabályoknak

fontosabb szabályok:

    XML dokumentum jellemzőinek megadása (verziószám, kódolás, stb.) a dokumentum elején
    kis- és nagybetűk megkülönböztetése (de: HTML esetén nincs különbség!)
    elválasztó karakterek ("white space", pl. szóközök, tabulátorok vagy sorvége jelek) tetszőleges sorozatának helyettesítése egy szóközzel
    jelölő elemek vagy tagok megadása
        nyitótagok (pl. <P> )
            (az elembe ágyazott további elemek és/vagy adatok; az elem hatóköre a nyitó- és zárótag közötti rész, aminek a kezdetét a nyitótag, végét a zárótag jelöli)
        zárótagok (pl. </P> )
    minden megnyitott tag le van zárva; a nyitótag (pontosabban az elem hatókörének) lezárása
    kétféleképpen lehetséges:
        zárótaggal rendelkező elemek esetén magával a zárótaggal (pl. </P>)
        zárótaggal nem rendelkező ("üres") elemek esetén magában a nyitótagban (pl. <BR /> )
    a tagok megfelelően, hierarchikusan vannak egymásba ágyazva (az elemeket teljes egészében egymásba ágyazzuk; az elemek hatóköre nem fedheti át részlegesen egymást)
    attribútumok (jellemzők) megadása a nyitótagban attribútum = "érték" párok segítségével történik (pl. <IMG SRC="logo.gif" /> )
        az attribútum értékek megadása idézőjelek (vagy aposztrófok) között történik
        az attribútum = "érték" párok elválasztása szóközzel történik (pl. <TD ALIGN="center" VALIGN="middle"> )

Nézzünk egy mintát

<?xml version="1.0" encoding="windows-1250"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<!--
kepek
kep*
@fajl
nev
-->

<xsl:template match="/">
<HTML>
<HEAD><TITLE>Képek</TITLE></HEAD>
<BODY bgcolor="aqua">
<H1>Képek</H1>

<xsl:apply-templates select="kepek/kep" />

</BODY>
</HTML>
</xsl:template>

<xsl:template match="kep">

<DIV style="border:red solid 2px;margin:1cm;padding:8pt;">

<CENTER>
<IMG SRC="{@fajl}" />
<P>
<xsl:value-of select="nev" />
</P>
</CENTER>

</DIV>

</xsl:template>

</xsl:stylesheet>

http://bodaistvan.hu/xml/XML.html

Nincsenek megjegyzések:

Megjegyzés küldése