Strokovne razpravi-
o raz š irl ji vem označevalnem jeziki XML in njegovi uporabi
Tomaž Mohorič. Marjan Krisper RiHultuta ia računalništvo in informatiko, Univerza v Ljubljani. Tržaška 25, 1000 Ljubljana {tomaz.mohoric, marjan.krisper)@fn,iini-lj.si
Izvleček
Razširljivi označevalni jezik XML nudi osnovo za kreiranje dokumentov in dokumentnih sistemov. Deluje predvsem v dveh smereh. Prva je skrb m sintakso pri označevanju dokumentov, druga pa skrb za deklariranje dokumentnih struktur. Nič manj pomembna ni uvedba imenskih prostorov, ki omogočajo obstoj različnih dokumentov, in njihovih interakcij v ustreznih imenskih prostorih. Morda je ena izmed najpomembnejših lastnosti prav sposobnost shranjevanja in izmen jave podatkov med uporabniki pod nadzorom definicij dokumentnih tipov in shem XML
Abstract
Extensible Markup Language (XML) provides a foundation for creating documents and document systems. It functions in two directions mainly. The first one is the provision of syntax for document markup, and the second one is the provision of syntax for declaring the structures of documents. Not less important is an introduction of namespaces, enabling the coexistence of different XML documents and their interactions in corresponding namespaces, Maybe one of its strongest points is the ability for storing and exchanging data among users under control of Document type Definitions and XML Schemas.
1. Uvod
Jezik XML (eXtensible Markup Language) je izpeljanka jeziki SGMI. (Standard Generalizcd Marku p Language), ki se uporablja /a kreiranje in označevanje tehnične (in tudi druge) dokumentacije. Iz jezika SGMI so, na primer, izvedeni tudi CML (Chemical Marku p I .anguage), VM! (Vector Markup I anguage), MathKiL (Mathematical Markup Language) in Se vrsta drugih sorodnih jezikov. XM1 je metajezik - jezik, s pomočjo katerega se definira konkreten označevalni jezik, neposredne) uporaben za označevanje določene vrste dokumentov. Dokumenti XMt. imajo vlogo vsebnikov, v katere se shranjujejo podalki. Po tej plati su podobni tabelam v relacijski podatkovni bazi in objektom v objektno usmerjeni podatkovni bazi. Metajezik obsega množico sintaktičnih pravil za kreiranje konkretnega označevalnega jezika. Po svoji obliki je XML sanioopisni jezik, ki z uporabo oznak pojasnjuje pomen podatkov v dokumentu. Oznake, s katerimi se dokument označi, se smejo izbrati poljubno, smiselno pa je, da hkrati odražajo (udi pomen podatka, tako da ga lahko razumeta hkrati človek in tudi računalnik, natančneje programska oprema.
2. Oznake
Vrednost podatka, ki ga želimo zapisati v dokument, se mora nahajati med dvema oznakama - začetno oznako in končno oznako (tag). Par oznak, med katerima se nahaja vrednost, imenujemo elementi
< Ime > Peter
< Priimek > Kovač
Tako predstavljata in začetno in končno oznako, Peter je pa vrednost elementa.
XML razlikuje med velikimi in malimi črkami, zato morata biti začetna in končna oznaka zapisani na enak način. Sintaktično pravilno zapisane oznake so tudi:
Peter Kovač
V dokumentu se razen elementov lahko shranjujejo tudi atributi. Če naj bo v dokumentu shranjen element (npr. knjiga), ki mu pripada eden ali več atributov (npr. ISBN, leto izdaje), je zapis naslednji:
< Knjiga ISBN - "961 -6046-02-0" leto="19957>
V zgornjem zapisu je Knjiga element, ¡SRN in leto sla pa atributa. Omenjeni razpored vrednosti in atributov v oznaki se imenuje tudi "prazna oznaka", ker ne obsega tudi vrednosti elementa. Alribut je sestavljen iz para ime-vrednost, med njima pa stoji enačaj.
Pri poimenovanju oznak veljajo naslednja pravila: ■ imena elementov se smejo pričeti s poljubno črko
ali p od Črta jem; m po prvem znaku lahko sledijo črke, š te Vilke, pike, poniišljaji, podčrtaj i ali dvopičja;
2001 šlevilka 2- leinik IX
tifmiubitdl NFOfi M AT! K A gg
Tomi Mohor ič. Marjan Krisper; O razäirljivem označevalnem jeztku XML m njegovi upora I) i
m imena elementov ne smejo vsebovati kontrolnih /mikov kot so npr. {wink1 space, cariage return, line feed, form feed); m imena elementov se ne smejo pričeti / imenom XML ali xml, ker jo to ključna beseda, ki se uporablja le v posebnih primerih, npr. pri deklaracijah dokumenta.
3. Deklariranje dokumenta XML
Dokument se prične / deklaracijo XML, ki obsega verzijo dokumenta XML, podatek, ali je dokument samostojen ali ne, ter način kodiranja:
Za nase kraje je primerno npr. kodiranje IS O-8859-2, ki je prava podmnožica kodiranja UTF-fi. Določili sfaiii-ilahne in encoding sta praviloma opcijski, vendar ju je v nekaterih primerih potrebno uporabiti. Določilo stniuiitlone = "}/Cs" ponieni, da je dokument povsem samostojen, določilo $tmtdttbne="no" pa pomeni, da je dokument vezan na kak drug dokument, npr. na pripadajoči DTD (Document Type Definition).
1/ predhodno opisanih fragmentov se Lahko sestavi samostojen dokument po imenu Revija. Revi-jti je hkrati tudi korenski element, ki zajema vse druge elemente v dokumentu.
< Revija >
< Avtor >
Peter Kovač Knjiga ISBN = "961-6046-02-0° leto-"19957>
< Avtor >
Miha Pe£ar
< knjiga ISBN - "0-201-42777-X" leto "1995*/>
4. Dobro oblikovani dokument
Dokument sodi med dobro oblikovane (well-iormedj dokumente, če v njem ni sintaktičnih napak. Nekaj poglavitnih napotkov, ki omogočajo kreiranje dobro oblikovanih dokumentov;
■ dokument se mora pričeti /. deklaracijo XML;
■ elementu, ki vsebuje podatke (vrednost), morala pripadati začetna in končna oznaka;
■ element, ki ne vsebuje podatkov (vrednosti) pač pa le atribute, se ves nahaja v posamični oznaki, ki se pričenja v, <.,. in končuje /., .,./>; v tem primeru
govorimo o prazni oznaki ali o elementu brez po da t kov;
■ dokument mora obsegati natanko en element, ki vsebuje vse ostale elemente - tak element se imenuje korenski element;
m element je lahko Vgnezden v drugem elementu;
■ vrednost atributa se mora nahajati v dvojnih narekovajih;
■ obstajajo naslednje znnfcpvne entitete, ki lahko po potrebi nadomestijo osnovne simbole:
Entiteta Simbol Pomen
> > večji
< < manjši
& & konjunkcija (ampersand)
Sapos; apostrof
" ** dvojni narekovaj
Ker imata začetna in končna oznaka < ... > svoj rezervirani pomen, ki se uporablja pri zapisovanju oznak, je potrebno v primeru uporabe simbolov "večji" in "manjši" znotraj oznake nadomestiti simbol "večji"z znakovno entiteto *>" in simbol "manjši" z znakovno entiteto "<". Podobna pravila veljajo tudi za enojni in dvojni narekovaj ter konju nkci jo.
5. Veljavni dokument
Podobno kot pri drugih podatkovnih modelih tudi pri dokumentih XMI, obstajajo omejitve, ki omejujejo dopustno vsebino dokumenta. V dokument se smejo zapisati le tisti podatki, ki so v sklatili s shemo dokumenta. XML pozna dve vrsti shem. Prva shema je že uveljavljena in v široki uporabi Imenuje se DTD (Document I vpe Définition). Druga shema, ki je popolnejša od DTD in obsega več opcij za uveljavitev intégrité t ni li omejitev, pa se imenuje XMI Schéma. Dokumenti, ki so zapisani v skladu s shemo, so veljavni (valiti) dokumenti.
6. Elementi
Element je grupa, sestavljena \/ enega ali več podele-mentov ali pod grup, obsega pa lahko tudi znakovne podatke ter ključni besedi EMPTY (prazen element) in AN V (katerikoli element). H MPT Y pomeni, da element ne vsebuje podelementov aii znakovnih podatkov, pač pa lahko vsebuje atribute. ANY pomeni, da lahko element vsebuje nič ali več podelementov kateregakoli tipa, vključno z znakovnimi podatki.
Grupa: Znakovni podatek: < ¡ELEMENT Ime (#PCE>ATA) > EMPTY: < ¡ELEMENT knjiga EMPTY> ANY:
.^viifa «hnformatikà
2001 Številka 2- letnik IX
Tomi Mohor ič. Marjan Krisper; O razäirljivem označevalnem jeztku XML m njegovi upora I) i
Grupi' so lahko zaporedja aH izbire podelementov (pod grup). Primer zaporedja je predstavljen že pri grupi, primer izbire pa je:
V grupo so lahko vgnezdene izbire in v Izbiro so lahko vgnezdeiiie grupe. Nad grupami, pod grupa m i in podelementi se lahko aplicirajo operatorji: ? (opcija), + (trden ali več), * (nič ali več).
Opcija: podel eme nt knjiga lahko obstaja ali pa tudi ne
Eden ali več: podelement knjiga se pojavlja najmanj enkrat <¡ELEMENT Avtor (Ime, Priimek, knjiga+)>
Nič ali več: podelement knjiga se ne pojavlja ali pa se pojavlja enkrat ali večkrat <1 ELEMENT Avtor (Ime. Priimek, knjiga*)>
7. Atributi
Elementi lahko vsebujejo atribute. Na seznamu atributov Al I I .1ST so lahko nahaja eden ali več atributov, ki pripadajo posameznemu elementa Naslednji zgled prikazuje atributni seznam, ki obsega dva atributa ISBN in leto. Atributi .so lahko po vrednosti opcijski, zahtevani ali fiksni. Opcijski atributi imajo lahko privzeto vrednost, fiksni atributi pa morajo imeti privzeto vrednost. Klasificirajo se v atribute brez privzete vrednosti, v atribute s privzeto vrednostjo ter obvezne in fiksne atribute.
Vsakemu atributu pripada tudi lip. I ip je lahko znakovni ali od uporabnika definirani naš te v ni lip, Posebne vrste atributa sla ID in IDREF - atributi te vrste kažejo z enega elementa na drugega. Vrednost atributa IDR T: F na kažoči element je enaka kot vrednost atributa ID na poka za ni element.
8. DTD za dokument Revija
S pomočjo znanja, pridobljenega v zgornjih vrsticah, je možno deiifrirati pomen DTDja sheme - ki določa dopustno vsebino dokumentov.
<[ELEMENT Avlor (trne, Priimek, knjiga)> <¡ELEMENT Ime (#PCDATA)>
<¡ELEMENT knjiga EMPTY> < IATTLIST knjiga
ISBN CDATA ¿REQUIRED leto CDATA ¿REQUIRED
>
Pomen posameznih vrstic je naslednji: '/. vrstica:
korenski element dokumenta je imenovan Revija, v dokumentu pa se lahko nahajajo podatki o enem ali več avtorjih;
2. vrstica:
avtor ima Ime, Priimek in (je napisal) knjigo;
3. ¿M 4. vrstim:
enostavni elementi vsebujejo lekst, ki je poimenovan PCDATA (parsed character data); sestavljeni elementi vsebujejo druge elemente, lahko tudi tekst in druge elemente; hnc je tipa PCDATA, Priimek je tipa PCDATA; tekst tipa PCDATA je v bistvu katerikoli tekst, ki ni označevalni (markup) tekst;
5. v rs liar.
prazen element knjiga;
6. vrstica:
lista atributov, ki pripadajo knjigi: JSBN in leto sta oba tipa CDATA (character dala), atributa pa sta obvezna.
Omejitve, ki izhajajo iz DTDja, pa so naslednje: ■ korenski element je Revija; m Revija obsega enega ali več avtorjev; m Avtor je sestavljen iz elementov Ime, Priimek, knjiga; m knjiga obsega dva atributa ISBN in leto; m elementa ¡me, Priimek sta tipa PCDATA; . elementa ISBN, leto sta tipa CDATA,
9, Vključenost DTDja v dokument
DTD je lahko vključen v dokument na dva načina. Lahko je vgnezden med deklaracijo XML () in podatkovnim delom dokumenta, lahko pa se DTD nahaja v posebni datoteki in je vključen v dokument s pomočjo reference. Naslednji primer prikazuje neposredno vključenost DTDja v doku men t:
clDOCTYPE Revija [
<¡ELEMENT Ime {#PCDATA)>
< ¡ELEMENT Priimek (#PCDATA)>
<¡ELEMENT knjiga EMPTY>
2001 štsvilka 2 ■ letnik IX
F i; i mihi J«l N FOfi M AT IKA
Tama/ Mohonč, Marfan Knsper O iviziirliivem omaiRvalncm jeziku XML in njegovi uporabi
i>
< Revija >
< Ime > Peter
< Prilmek> Kovač
< Avtor >
Miha Pečar •cIDOCTYPE Revija SYSTEM "Rcvijal.dtct" >
< Revija >
< Avtor >
< Irre > Peter < /Ime >
< Pri i mek > Kovač
-'.xsd;element ref="lme7>
TržaŠka 25 yubljana < PŠT> SI-1000 < /PŠT >
Ježih B
< Streznilo
PC02 300.2,76.14
Vsak izmed omenjenih dveh jezikov je drugačen. Pri obeli nastopa oznaka Naslov kol ime tipa elementa, pa vendar ji' pomen omenjenih oznak različen. Razlikovanje nastopa pri modelu, pomenu in interpretaciji tipa elementa v aplikaciji. Pa vendar se lahko omenjena dva dokumenta združita v enega, če se dokumente označi s pretiksi, kot kaže naslednji sestavljeni dokument: <0clde1ek>
FRI
Tržaška 25 Ljubljona < nsl: Država > Slovenija c nsl :PŠT > SI -1000
PC03 str:lme> 123.45.67.8 0ddelek>
Imenski prostor se v slednjem primeru identificira s pomočjo identifikatorja URI (Universal Resource Identifier). Vsak tip elementa ali ime atributa pa se v prostoru XML enolično identificira z dvodelnim imenom, s pomočjo URI in s pomočjo svojega lokalnega imena. Imenski prostori se potem deklarirajo z atributom n»ins (XM1, Namespace), ki poveže poljuben prefiks z določenim imenskim prostorom. Imenski
prostori namreč nimajo druge funkcije, kot zgolj poskrbeti za dvodelni sistem poimenovanja tipov elementov in atributov.
Pomen jezika XMI rte sega le na področje kreiranja strani v spletu, pač pa je uporaben tudi kot univerzalni format, ki aplikacijam različnih vrsi omogoča nemoteno izmenjavo podatkov. Meil drugim podpira tudi podatkovne transformacije, kot so XS1.T tensible Stylesheet Language Transformations) in CSS (Cascading Style Sheets). Odlike jezika XML so preprostost, razSirljivost, povezljivost (interoperability) in odprtost. XML se lahko uporablja na različnih platformah v povezavi s široko paleto orodij v različnih programskih okoljih, pogosto v povezavi z Javo. Podpira vrsto standardov za kodiranje znakov, kot je na primer UTF-8, Razširljivost se kaže v dveh smereh - omogoča kreiranje shem XML iri DTD, hkrati pa je jezik razširi ji v z dodatnimi funkcijami, kot so stilni listi, povezovanje in reference. Standard XML je tudi popolnoma odprt in dosegljiv v spletu.
Literatura
[1] Elliotte Rusty Harold (1999): XML Bible, IDG Books Worldwide, Inc.
[2] Erik T. Ray (2001): Learning XML, O'Reilly & Associates
[3] Kevin Williams, Michael Brundage, Patrick Dengler. Jeff Gabriel, Andy Hoskinson, Mictiael Kay, Thomas Maxwell, Marcelo Ochoa, Johnny Papa, Mohan Vanmane (2000): Professional XML Databases, Wrox Press Inc.
[4] Mark Birbeck, Michael Kay, Stephen F Mohr, Jonathan Pinnock. Brian l oesgen, Steven Livingstone, Didier Martin, Nikola Ozu, Mark Seabourne, Davirt Raiiles (2000): Professional XML. Wrox Press Inc.
[5] Eric van der Vlist (2000): Using W3C XML Schema, http:// www.xml.coin/pub/ii/2000/ll/29/schemas/partl.titntl
[6] Lars Marms Garshol (1999): Introduction to XML. http:// www.stud. tfi .uio. no/člmarius^do wn load/x m l/)unl_en g. html
[7] Michael J. Young (2000): Step by Step XML, Microsoft Press
[8] Ronald Bourret (2000): Declaring Elements and Alributes in an XML DTD, htlp://www.rpboufret.com/xm)/xmldtii.htm
[9] Ronald Bourret (2000): XML Namespaces FAQ, http:// w ww.rp bourret, co in/xm l/N a m e spaces FAQ, htm
[10] Simon St. Laurent (2001): XML: A Primer, M&T Books
[11] Steven Holzner (2000): Inside XML, New Riders Publishing
[12] Tim Bray 11999): XML Namespaces by Example, http:// www. x ii il. c o m/p ii b/a/199 9/01/n a in e Sp ac es. h t m I
113] Yasser Shohoud (2000): XMLs Grand Schema. XML Magazine, Vol 1, No3
♦
Dr. Tomaž Moho/ič je diplomiral leta 79/0, magistriral leta 1973 in doktorira! leta 19Sb na Fakulteti za elektrotehniko. Od lets 1987 je doccnt za področje računalništva in informatike. Področje njegovih raziskav se nanaia na podatkovne baze,
razvoj informacijskih sistemov in v zadnjem času na področje razširljivega označevalnega jezika (XML).
♦
Dr Marjan Krispet je predstojnik katedre za informatiko na Fakulteti za računalništvo in informatiko Univerze v Ljubljani in od ustanovitve leta 7992 predstojnik Laboratorija za informatiko. Bil je soustanovitelj prve slovenske računa/nitke revije BIT in Revije za razvoj RR. Je član več znanstvenih in strokovnih združenj, med druqim ustanovitveni član AIS (Association for Information Systems), Slovenskega društva INFORMATIKA, Društva za umefno inteligenco in INFOS-a. Vodi številne projekte razvoja informacijskih sistemov in uvajanja metodologij razvoja v največjih sistemih v gospodarstvu, državni upravi in javnem sektorju.
S001 - Številka 2- letnik IX
t if* wit/» nil N FOR M ATI KA