XML
![]() | |
---|---|
![]() | |
Jatorria | |
Egilea(k) | Michael Sperberg-McQueen (en) ![]() ![]() ![]() |
Sorrera-urtea | 1998 |
Argitaratze-data | 1999 |
Ezaugarriak | |
Media mota | application/xml eta text/xml |
Deskribapena | |
Oinarritua | SGML Unicode |
Ekoizpena | |
Garatzailea | World Wide Web Consortium |
Fikzioa | |
Erabiltzen du | XML namespace (en) ![]() |
w3.org… |
Markaketa lengoaia hedagarria (XML) xede orokorreko markaketa lengoaia da. Lengoaia hedagarri moduan sailkatuta dago, erabiltzaileek bere elementuak sortzeko aukera baitute. Egituratutako datuak informazio sistema ezberdinen artean partekatzea da bere helburu nagusia, batez ere Interneten bitartez. Bai dokumentuak kodetzeko bai datuak seriatzeko erabiltzen da. Azken kasu honetan, testuan oinarritzen diren beste seriatze lengoai batzuekin parekatu daiteke, hala nola JSON eta YAML.
Aplikazioak
Hedagarri denez gero XMLn oinarritutako ehunka formatu garatu dira helburu desberdinekin, adibidez RSS, Atom, SOAP, SVG, eta XHTML. XMLn oinarritutako formatuak ere bulegotikarako erabiltzen dira (Microsoft Officeko Office Open XML, OpenOffice eta LibreOfficeko OpenDocument), baita beste arlo batzuetan ere, komunikazio-protokoloak definitzeko esaterako (XMPP). Bezero/zerbitzari ereduan erabiltzen diren SOA(Service-oriented architecture) protokoloan makinek XML mezuak trukatzen dituzte.
Bestelako industrietan ere XMLn oinarritutako formatuak erabiltzen dira informazio-trukerako, osasungintzan, turismoan, itzulpengintzan..., eta modu berezian komunikabideetan eta editorialetan.
Historia
Aplikazio geruza | DNS, FTP, HTTP, HTTPS, IMAP, IRC, NFS, NNTP, NTP, POP3, SMB/CIFS, SMTP, SNMP, SSH, Telnet, SIP, gehiago |
Aurkezpen geruza | ASN.1, MIME, SSL/TLS, XML, gehiago |
Saio geruza | NetBIOS, gehiago |
Garraio geruza | SCTP, SPX, TCP, UDP, gehiago |
Sare geruza | AppleTalk, IP, IPX, NetBEUI, X.25, gehiago |
Lotura geruza | ATM, Ethernet, Frame Relay, HDLC, PPP, Token Ring, Wi-Fi, STP, gehiago |
Geruza fisikoa | Kable ardazkide, Zuntz optiko, Pare kordatu, Mikrouhin-sarea, Irrati bidezko sarea, RS-232, gehiago |
*OSI ereduaren arabera |
XML markaketa lengoaiak sortu baino askoz lehenago bazeuden beste markaketa sistema batzuk, testu egituratua kasu. Testu hutsa idatziz webgunerako dokumentuak sortu daitezke, HTML zer den jakiteko beharrik gabe. Testu arrunta idatzi, eta makinak HTML kodera bihurtzen du. Testu egituratua erabiltzen den kasu zehatza wikiena da. Honetan testuari "marka" edo "etiketa" ezberdinak gehitzen zaizkio burutu nahi den aldaketaren arabera, eta honen ondorioz hainbeste markaketa lengoaia sortu izan dira.
ANSI erakundeak, 1978. urtean, testu-prozesamenduan zebiltzan hainbat talde jarri zituen harremanetan, edozein motatako testuak kodetzeko, egituratzeko eta elkarren artean trukatzeko balioko zuketen lengoaia estandar eta orokorra definitzeko helburuarekin.
Lengoaia horren lehenengo txostenak 1980. urtean argitaratu baziren ere, 1985. urtean elkarlanaren emaitzaren azken bertsioa argitaratu zen, ISO erakundeak estandartzat onartu zuena: ISO 8879 edo SGML (Standard Generalized Markup Language) lengoaia. Testuak osagaien bidez (paragrafoak, zerrendak, izenak, atalak, lerroak, etab.) zatitu, eta zati horiek abiatu daitezkeela da SGML-ren oinarrizko hipotesia. SGML-k printzipio deskriptiboa bereganatu zuen hasieratik. Horrela, testua kodetze-lanetan dabilenak testu-objektua zer den markatuko dau. Honen ondorioz, testu bera hamaika kodekera desbardinen arabera markatu daiteke, aplikazio ezberdinen beharrei aurre eginez.
Hala ere, SGML lengoaia aberatsegia eta zabalegia suertatu zen konputagailuekin tratatu behar zenean, eta, horrela, aplikazio gutxik inplementatu zuten SGML-k eskaintzen zituen aukera guztiak. Beraz, SGML lengoaiatik azpilengoaia bat sortu zen, XML deitutakoa, nolabait SGML-k eskaintzen zituen aukera zabalak mugatu nahian guran. XML-ren 1.0 bertsioa 1998. urtean sortu zen W3C-aren aholku moduan. SGML eta XML lengoaiak helburu ezberdinak betetzeko jaio ziren: lehenak edozein dokumentu markatzeko euskarria eskaintzen zuen bitartean, bigarrenaren xedea Interneten informazioa kudeatzeko egokitu zen nagusiki. Horrela, bada, XML lengoaia web-eko estandarra zen -eta oraindik den- HTML-aren gabeziak gainditzeko asmoarekin jaio zen. HTML-ak bere definizioak izan arren, nabigatzaileen tolerantziak gaizki egituratutako dokumentuek funtzionatzea eragin du. Hori dela eta, XML eta HTML batzeko ahaleginaren ondorioz XHTML sortu zen, "Extensible HyperText Markup Language" delakoa. Hau HTML erreproduzitu, zehaztu eta hedatzen duen modulu eta dokumentu familia da. XML-en oinarritutako hizkuntza zorrotz berria da XHTML, eta nabigatzaileak askoz zorrotzagoak dira web-en kodeen sintaxia balioztatzeko orduan.
XML, SGML bezala, metalengoaia da, eta lengoaia ezberdinak definitzeko aukera ematen du.

HTML, aldiz, SGML bidez definitutako lengoaia soil bat da, esan bezala aplikazio konkretu bat. HTML hizkuntza bat da, eta Interneten argitaratzen diren dokumentuei itxura emateko erabiltzen da, informazioaren diseinu bisuala lantzeko sortu zen eta. Etiketetan oinarrituta dago, eta erabaki daiteke, esate baterako, zer letra tipo eramango duen testuak, edo hau letra lodiz idatzi behar den edo etzanez. XML-k osatu egiten du HTML Interneten, egitura eransten diolako datu horiei, eta semantika eman. Horri esker, sistema ezberdinek ulertuko dute zer esan nahi duen. HTML-k ez bezala, bestalde, XML-k etiketa kopuru mugagabea erabili dezake informazioa sailkatzeko.
Terminologia
Elementu guztiak definitzeko asmorik gabe ondoren elementu nagusiak deskribatzen dira.
- Karakterea (character)
- XML dokumentu bat karaktereen segida bat da. Edozein Unicode karaktere ager daiteke.
- Prozesatzailea (processor) eta aplikazioa (application)
- Prozesatzaileak markak analizatzen ditu eta dagokion informazioa pasatzen dio aplikazioari. Prozesatzailea XML parser edo XML analizatzaile esan ohi zaio.
- Marka (markup) eta edukia (content)
- Karaktereak bi multzotan banatzen dira markak eta edukia. Haien artean bereizteko erregela sintaktiko bat aplikatzen da, markak
<
karakterearekin hasten dira eta>
karakterearekin amaitu, edo&
karakterearekin hasi eta;
karakterearekin amaitu.
- Etiketa (tag)
- Etiketa marka bat da,
<
karaktereaz hasita eta>
karaktereaz amaituta. Hiru motakoak izan daitezke:- hasierako etiketa,
<section>
adib.; - amaierako etiketa,
</section>
adib.; - etiketa hutsa,
<line-break />
adib.
- hasierako etiketa,
- Elementua (element)
- Elementu bat osagai logiko bat da, hasierako etiketa batez hasia eta amaierako etiketa batez amaitua (edo etiketa huts bat besterik ez). Bi etiketen arteko edukian beste elementuak egon daitezke. Barruko elementuei elementu umea esaten zaie. Adibidez
<greeting>Kaixo, mundua!</goraintziak>
.
- Atributua (attribute)
- Atributu bat izen–balio bikotea duen hasierako marka bat da. Adibidez
<img src="madonna.jpg" alt="Madonna" />
, non atributuen izenak "src" eta "alt" diren, eta dagozkien balioak "madonna.jpg" eta "Madonna" hurrenez hurren.
- XML deklarazioa (XML declaration)
- XML dokumentuen hasieran XML deklarazio bat agertu behar da edukiaren deskribapenarekin. Adibidez
<?xml version="1.0" encoding="UTF-8"?>
.
Zuzentasun sintaktikoa eta erroreak
XML dokumentu bat XML espezifikazio batekin bat datorrenean ondo eratutako dokumentua dela esaten da, hau da, sintaktikoki zuzena dela formatuari dagokionean. XML espezifikazio batek dagozkion baliozko dokumentuak definitzen ditu. Edozein kasutan badaude dokumentu guztietarako bete beharreko arau batzuk hauek dira:
- Dokumentuan Unicode karaktere zuzenak baino ezin dira egon.
- Sintaxiaren oinarri diren karaktereak,
<
eta&
esaterako, marketarako baino ezin dira erabili. - Hasierako etiketa, amaierako eta elementu hutsak ondo habiatuak egon behar dira, gainjartzerik egon gabe.
- Etiketen izenetan letra larria eta xehea bereizten da eta berdin-berdin agertu behar dira hasierako etiketan eta amaierakoan.
- Etiketan ezin dira agertu ondoko karaktere hauek: !"#$%&'()*+,/;<=>?@[\]^`{|}~. Ezta zuriunea ere, eta lehen karakterea ezin da "-", ".", edo zifra bat izan.
Arau hauek betetzen ez duten dokumentuak ez dira XML dokumentutzat hartzen, eta prozesadoreak errorea emango du prozesatzen saiatuz gero.
Eskema eta baliozkotasuna
Ondo eratuta dagoen ala ez egiaztatzeaz gain XML dokumentu baten baliozkotasuna ere egiazta daiteke. Horretarako egitura deskribatzen duen fitxategia zehaztu behar da.
Egitura hori historikoki DTD (Document Type Definition) formalismoaren bidez deskribatu da. DTD batean dokumentuan agertzekoak diren elementuak eta atributuak zehazten ditu, baita haien arteko erlazioak ere. Eskema zehaztuz gero prozesatzaileak dokumentuaren baliozkotasuna egiaztatzen saiatuko da eta lortuko ez balu errorea adieraziko luke. DTDa eskema adierazteko modu bat da baina badaude beste aukera batzuk.
DTD: dokumentu motaren definizioa
DTD sistema SGMLtik mailegatu zen.
DTD sistemaren abantailak hauek dira:
- XML bertsio guztietan dabil, XML 1.0 barne.
- Definitzeko modu trinkoa eskaintzen du.
- SGMLko elementuak ere deskriba daitezke.
Bestalde hainbat muga ditu:
- Ez dizkie euskarri ematen XMLn sortutako berrikuntzei, batez ere izen-espazioei.
- Adierazgarritasun mugatua du, oinarrizko erlazioak baino ezin baitira adierazi.
- Irakurgarritasuna ez da egokia.
- Espresio erregularretan oinarritutako sintaxia eskaintzen du eta hau ez erabilgarria APIetan.
Edozein kasutan DTDak asko erabiltzen dira, askotan bertsio zaharretatik oinordetzan jaso direlako.
XML Schema (W3C)
XML dokumentuen eskema deskribatzeko lengoaia berriago da, W3C erakundeak bultzatua. Deskribapenak XSD (XML Schema Definition) izenarekin ezagutzen dira eta DTDak baino ahaltsuagoak dira dokumentuak deskribatzean. Datu moten sistema aberatsa du eta horrela dokumentuen murriztapenak askoz modu zehatzagoan defini daitezke. Gainera XSDak XML dokumentuak dira, beren baliozkotasuna egiaztatzeko aukera interesgarriarekin.
xs: eskema bat definitzen duen schema elementua:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"></xs:schema>
Kanpo estekak
- [1]
- [2]
- XML gida euskaraz
- (Ingelesez) W3C XML webgunea
- (Ingelesez) XML 1.0 espezifikazioa]
- (Ingelesez) XML 1.1 espezifikazioa]
- (Ingelesez) Oxygen XML Editor
- (Ingelesez) Liquid XML Editor
- (Ingelesez) XeML.net