Az XML dokumentumok adatmodellje

Hasonló dokumentumok
Dokumentumformátumok Jelölő nyelvek XML XML. Sass Bálint Bevezetés a nyelvtechnológiába 2. gyakorlat szeptember 20.

XML sémanyelvek Jeszenszky, Péter

XML alapú adatbázis-kezelés. (Katona Endre diái alapján)

34. Elsődleges kulcs megadása XMLSchema-ban Idegen kulcs megadása XMLSchema-ban Típusok kategóriái és saját típus megadásának

XML és XSLT (a színfalak mögül)

DTD Dokumentumtípus definició

Adatkezelési mőveletek az XML nyelvben XQuery - XML dokumentumok lekérdezésére szolgáló lekérdezınyelv kifejezı ereje az OQL nyelvével egyenértékő.

XML adatkezelés. A DOM alapú adatkezelés. Dr. Kovács László Répási Tibor kiegészítéseivel

XML adatkezelés. 11. témakör. Az XQuery nyelv alapjai. XQuery. XQuery célja egy imperatív lekérdező nyelv biztosítása. XQuery.

XML adatkezelés I. Az SAX szabvány. Dr. Kovács László Miskolci Egyetem Általános Informatikai Tanszék. XML adatok kezelési lehetőségei

XPath 1.0. Jeszenszky Péter Debreceni Egyetem, Informatikai Kar Utolsó módosítás: szeptember 5.

5. téma XML DB. Az adatkezelés és XML kapcsolata. Miért fontos az XML használata az adatbázis kezelésben?

Az XML szabvány. Az XML rövid története. Az XML szabvány

Adatbázisok II. Jánosi-Rancz Katalin Tünde 327A

XML (DTD) (XSD) DOM SAX XSL. XML feldolgozás

3. SZÁMÚ MELLÉKLET. Elektronikus számla - XML definíciók. a) Számla. 1. ábra Számla

XPath. dr. Paller Gábor. XML technológiák

SQLServer. DB Recovery modes

Az XML alapjai BME VIK BSc. Intelligens Rendszerek ágazat, Kooperatív rendszerek labor

Webes űrlapok és az XForms ajánlás

XML technikák II Kovács, László

Az XML Bevezetés. Fabók Zsolt Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Utolsó módosítás:

XmlGessünk 13. rész - Az XML Schema II.

Orvos Bejelentő Program (OBP) rekordkép 2. verzió XML formátum

Az XML 1.0 szabvány. tanulmány. Készítette: Mészáros Tamás. Budapest, BME Méréstechnika és Információs Rendszerek Tanszék

XML adatkezelés. 5. témakör. Nincs explicit névtér kijelölve. <?xml version="1.0"?> <xs:schema xmlns:xs="

BASH script programozás II. Vezérlési szerkezetek

EGYSZERŰ, NEM IRÁNYÍTOTT (IRÁNYÍTATLAN) GRÁF

Grafikus keretrendszer komponensalapú webalkalmazások fejlesztéséhez

Adatbázismodellek. 1. ábra Hierarchikus modell

Az XML-DTD áttekintése

Az XML kidolgozásakor a fejlesztés szempontjait tíz pontban foglalták össze:

Zenetár a webszerverünkön,

Algoritmizálás és adatmodellezés tanítása 1. előadás

Adatbázisok* tulajdonságai

Tudásalapú információ-kereső rendszerek elemzése és kifejlesztése

Aspektus-orientált nyelvek XML reprezentációja. Kincses Róbert Debreceni Egyetem, Informatikai Intézet

XML. Document Type Definitions (DTD) XML séma

Az XML alapnyelv. dr. Paller Gábor. XML technológiák

A szoftver és hardverfüggetlen adatbázis

Magas szintű adatmodellek Egyed/kapcsolat modell I.

5. Gyakorlat. 5.1 Hálós adatbázis modell műveleti része. NDQL, hálós lekérdező nyelv:

A RAKTÁRI JEGYZÉKEK SZÁMÍTÓGÉPES FELDOLGOZÁSA: ADATMODELLEZÉS ÉS SZABVÁNYOK

Szerver oldali Java programozás /II. 1. óra. Elemkönyvtárak. Elemkönyvtárak használata Saját elemkönyvtár készítése.

Modellinformációk szabványos cseréje. Papp Ágnes, Debreceni Egyetem EFK

Szerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS

Operációs Rendszerek II. labor. 2. alkalom

Adatbáziskezelés. Indexek, normalizálás NZS 1

Struktúra nélküli adatszerkezetek

Adat és folyamat modellek

ADATBÁZIS-KEZELÉS. Relációs modell

Bevezetés: az SQL-be

URN használata hálózati dokumentumok azonosításában Országos Széchényi Könyvtár Könyvtár-informatikai M hely Budapest, június 12.

Készítette: Nagy Tibor István

Minősített DC metaadat szerkezet terv társadalomkutatási adatgyűjteményekre

INFORMÁCIÓÁTADÁSI SZABÁLYZAT

Programozás I. Metódusok C#-ban Egyszerű programozási tételek. Sergyán Szabolcs

Adatbázis rendszerek I

file./script.sh > Bourne-Again shell script text executable << tartalmat néz >>

ROS Remote Operations Service

Adatexport útmutató Könyvvizsgálói program számára átadott adatok XML formátumban

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

Web-fejlesztés NGM_IN002_1

Adatbázis rendszerek. dr. Siki Zoltán

8. Gyakorlat SQL. DDL (Data Definition Language) adatdefiníciós nyelv utasításai:

Tartalomjegyzék 2. RENDSZER FELÉPÍTÉSE... 3

Regionális forduló november 19.

Operációs rendszerek gyak.

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18

Egyirányban láncolt lista

AWK programozás, minták, vezérlési szerkezetek

Web-fejlesztés NGM_IN002_1

AWK programozás Bevezetés

7. BINÁRIS FÁK 7.1. A bináris fa absztrakt adattípus 7.2. A bináris fa absztrakt adatszerkezet

PARTNER EXTRA. Leírás. Magyar Posta Zrt. Verzió:

Elektronikus levelek. Az informatikai biztonság alapjai II.

XML / CSV specifikáció

XML EXtensible Markup Language

III. Gráfok. 1. Irányítatlan gráfok:

Az adatok a vállalat kulcsfontosságú erőforrásai. Az információs rendszer adatai kezelésének két alapvető változata:

Java II. I A Java programozási nyelv alapelemei

30 MB INFORMATIKAI PROJEKTELLENŐR

Intelligens elektronikus szótár és lexikai adatbázis

Temporális adatbázisok. Kunok Balázs szakdolgozata alapján

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv

TERMÉKTERVEZÉS PANDUR BÉLA TERMÉKTERVEZÉS

XML az Extensible Markup Language (Kiterjeszthet jelöl nyelv) szavak rövidítése. XML a World Wide Web Konzorcium (W3C) ajánlása, amely kompatíbilis

A programozás alapjai előadás. [<struktúra változó azonosítók>] ; Dinamikus adatszerkezetek:

Regionális forduló november 19.

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

S z á m í t ó g é p e s a l a p i s m e r e t e k

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

Multimédiás adatbázisok

Üzenet váltási formátumok EDI és XML

GS Pláza API dokumentáció

Átírás:

Az XML dokumentumok adatmodellje dr. Kovács László XML dokumentumok reprezentációs formái Az XML dokumentumok egyik érdekessége, hogy többarcúak, különböző megközelítésből más és más alakban jellennek meg. Alapesetben az XML dokumentum egy megfelő jelölő szavakat tartalmazó szöveges állomány. Ez alapvetően igaz is, de az XML dokumentumok feldolgozása során a különböző feldolgozó programok más és más részt tartanak fontosnak a dokumentumból. Nézzük sorra, milyen nézetei is vannak az XML dokumentumoknak. Vegyünk egy induló XML dokumentumot, melynek tartalma a következő: <?xml version="1.0"?> <!DOCTYPE SYSTEM "a.dtd"> <x:kerdes xmlns:x="a.h"> Hello &#11;! </x:kerdes> Az XML dokumentum azon arcát, amit a szövegszerkesztővel láthatunk, nevezzük el primér XML dokumentumnak. Az így látott kép azonban szükségszerűen különbözik a tényleges, felolgozandó tartalomtó, hiszen vannak benne olyan jelek, mint például a &#11; melyek egy másik jelnek,egy karakternek a pótlására, jelölésére szolgál. A dokumentum ezen nézetét szekundér XML dokumentumnak nevezhetjük. A minta primér dokumentumhoz a következő szekundér dokumentum lehet rendelni: <?xml version="1.0"?> <!DOCTYPE SYSTEM "a.dtd" > <x:kerdes xmlns:x="a.h"> 1

Hello a! </x:kerdes> A dokumentum értelmezés következő szintje a tartalom értelmezési módjához kapcsolódik. A dokumentum fizikai oldala azt adja meg, hogy a dokumentum mely állományokból, forrásokból épül fel. A példánkban az DTD definícióhoz és a &#11; jel értelmezéséhez kell külön egységhez fordulni. A dokumentumot felépítő tárolási egységeket nevezik egyednek (entity). <?xml version="1.0"?> <!DOCTYPE kerdes [ <!ELEMENT kerdes (#PCDATA) > ]> <x:kerdes xmlns:x="a.h"> Hello a! </x:kerdes> A fizikai vetület mellett a dokumentumhoz logikai vetület is rendelhető. A logikai vetület a dokumetumot alkotó jelölő elemeket és azok viszonyát mutatja. Az elemek egymásba ágyazottak lehetnek és rendelkezhetnek elemjellemzőkkel. A elemekre épülő logikai modellben nem szerepelnek olyan fontos részletek, mint például a névterek használata. A dokumentum teljas tartalmának lefedésére egy kibővített logikai modell szükséges, mely szintén a megismert hierarchia struktúrára épül. Az elkészített XML feldolgozók alapvetően, néhány kivételtől eltekintve fát építenek fel a dokumentumból. A faszerkezethez egy illeszkedő művelethalmaz és tulajdonsághalmaz társul, amely meghatározza a dokumentum kezelésének jellegét. A faszerkezet szerepének fontosságát jól mutatja az a tény, hogy a W3C konzorcium szabványosította az XML-t belsőleg leíró fa struktúráját, ahol a szabvány a fa elemeinek ábrázolását öleli fel. Az egyik kapcsolódó szabvány az XML információs készlet modellje (XML Information Set, 2004) és a XDM adatmodell (Xquery and XPath Data Model, XDM, 2007). Ebben a fejezetben ezen modelleket tekintjük át. Az Infoset leírás elsődleges célja, hogy megadja az XML feldolgozó programok számára az XML dokumentumokban tárolt információk 2

az XML fa szerkezetére illeszkedő struktúráját. Az Infoset egy absztrakt leírással adja meg az XML dokumentumok legfontosabbnak tartott információ elemeit. Azonban az Infoset modell sem terjed ki minden részletre, hiszen többek között nincs külön információs csomópont a DTD egyes elemire, az elemjellemzők sorrendjére. A modell az XML feldolgozók elemzési feladataira koncentrál, s figyelmen kívül hagyja, ami más feldolgozó, pl. a DTD feldolgozó feladata. A feldolgozás során a primér reprezentációs formából kiindulva halad a feldolgozás a belső dokumentum-fa reprezentáció felé. A feldolgozás eredményeként előálló XML dokumentumot viszont újra a felhasználó által megszokott és értelmezhető formába, a primér reprezentációba kell hozni. Emiatt szükség van a belső formátumok primér formátumra alakítására is. A belső formátumról a külső szöveges alakra történő konverziót végző egységet szerializáló(serialization) modulnak nevezzük. A XML dokumentum különböző reprezentációs formái közötti kapcsolatokat összesítve mutatja be az alábbi ábra. primér secunder (infoset) dokumentum-fa primér [megjelenítő] [elő-feldolgozó] [feldolgozó] [serializer] Infoset modell A belső XML fastruktúra leírásának induló és absztraktabb modellje az Infoset, XML Information Set modell. A modell definiálja a fa csomópont típusait, és a csomópontok legfontosabb jellemzőit. A modellben a dokumenmtumot reprezentáló teljes fát nevezik információs készletnek (information set, vagy rövidítve inofset), s a fát alkotó komponenseket, csomópontokat információs elemeknek (information item) nevezik. Az infoset fa modellje azonban nem tekinthető az egyedüli XML fa modellnek. A későbbi XML feldolgozó felületek, mint például a DOM vagy XPath szabványok által használt fa struktúrák bizonyos elemekben eltérő fa modellt használnak. Ahogy már azt korábban láthattuk, az XML fában különböző típusú csomópontok szerepelhetnek, melyek eltérő szerkezettel rendelkeznek. A Infoset modellben ennek megfelelően több information item típus létezik. A modell tizenegy information item típust definiál: dokumentum egység (az XML fa gyökere) 3

jelölőelem egység (element) elemjellemző (attribute) feldolgozási utasítás (processing instruction) egyedhivatkozás (entity reference) formátumjelölő (notation) karakter egység (character) megjegyzés (comment) DTD egység (dokumentum séma szerkezete) névtér egység (namespace) nem-elemzendő egyed (unparsed entity) Az egyes egységtípusok közötti legfontosabb különbség a egységet leíró jellemzőkben rejlik. A modell minden egségtípusra megadja az értelmezett tulajdonságok körét. A legtöbb leíró tulajdonsággal a dokumentum és a jelölőelem rendelkezik. A másik végen, a legegyszerűbb típusok közé tartozik többek között a megjegyzés és a névtér is. A dokumentum egység tulajdonságai: gyermek információs elemek listája (children), a lehetséges csomópont típusok listája: jelölőelem, feldolgozási utasítás, megjegyzés és DTDegység. dokumentum gyökér eleme (document element) formátum jelölés (notation) : a DTD-ben definiált NOTATION elemeket adja meg nem-elemzendő egyedek (unparsed entity): a beépített és a DTD-ben megadott ENTITY definíciókat tartalmazza dokumentum URI azonosítója (base URI) karakter kódolási szabvány (character encoding schema) XML verziója (version) önálló dokumentum-e (standalone) 4

A jelölőelem tulajdonságai: lokális neve (local name) névtér (namespace name) a név előtagja (prefix) gyermek információs elemek listája (children), a lehetséges típusok listája: elem, feldolgozási utasítás, egyedhivatkozás, karakter és megjegyzés. elemjellemzők listája (attributes) itt definiált névterek listája (namespace attributes) érvényes névterek listája (in-scope namespaces) szülő elem (parent) elem URI azonosítója (base URI) Az elemjellemző csomópont tulajdonságai: lokális neve (local name) névtér (namespace name) a név előtagja (prefix) értéke (normalized value) explicit szerepelt-e az érték (specified) jellemző típusa, pl. IDREF, ENTITY (attribute type) hivatkozott értékek listája (references) szülő elem (owner element) A feldolgozási utasítás jellemzői: feldolgozó (target) utasítás (content) URI érték (base URI) jelmagyarázat (notation) 5

szülő csomópont (parent) Egy nem kifejtett egyedhivatkozási csomópont: hivatkozott egyed neve (name) külső hivatkozás (system identifier) nyilvános hivatkozás (public identifier) elérés azonosító (base URI) szülő csomópont (parent) Karakter leíró csomópont karakter kódja (character code) szóköz jelző (element contetnt whitespace) szülő csomópont (parent) Megjegyzés leíró: tartalom (content) szülő csomóont (parent) DTD-t leíró csomópont: külső hivatkozás (system identifier) nyilvános hivatkozás (public identifier) tartalmazott csomópontok (children) csomópont (parent) Fel nem oldott egyed csomópontja: egyed neve (name) külső hivatkozás (system identifier) nyilvános hivatkozás (public identifier) elérés azonosító (base URI) 6

jelmagyarázat (notation) A formátum jelölő csomópont jellemzői: azonosító név (name) külső hivatkozás (system identifier) nyilvános hivatkozás (public identifier) elérés azonosító (base URI) Névtércsomópont jellemzői: előtag (prefix) érték (namespace name) Az infoset modell bemutatására vegyük az alábbi XML állományt: <?xml version="1.0"?> <!-- mintapélda --> <!DOCTYPE konyvek SYSTEM "x//pp//ktar" [ <!-- struktúra --> <!NOTATION cl SYSTEM "x//pp//claus"> <!ELEMENT konyvek (konyv*) > <!ELEMENT konyv (#PCDATA) > <!ATTLIST konyv isbn CDATA #REQUIRED> <!ENTITY me SYSTEM "x//pp/me" NDATA c1 > ]> <!-- adatresz --> <?me mod="rule"?> <m:konyvtar xmlns:m="a.a" > <konyv isbn="i1"> A & <![CDATA[x>y]]> </konyv> </m:konyvtar> 7

Az infoset modell legfontosabb eleme a dokumnetum egység, ami összefogja az XML dokumentumot. A gyermek csomópontok között nem szerepel az első xml verziót megadó feldolgozási utasítás. A dokumentumban az alábbi gyerekcsomópontok szerelnek: Egy megjegyzés csomópont (meg-1): <!-- mintapélda --> Egy DTD leíró comópont (dtd-1): <!DOCTYPE konyvek SYSTEM "x//pp//ktar" [ <!-- struktúra --> <!NOTATION cl SYSTEM "x//pp//claus"> <!ELEMENT konyvek (konyv*) > <!ELEMENT konyv (#PCDATA) > <!ATTLIST konyv isbn CDATA #REQUIRED> <!ENTITY me SYSTEM "x//pp/me" NDATA c1 > ]> Egy további megjegyzés csomópont (meg-2): <!-- adatresz --> Feldolgozási utasítás csomópont (pi-1): <?me mod="rule"?> Gyökér elem csomópont (ele-1): <m:konyvtar xmlns:m="a.a" > <konyv isbn="i1"> A & <![CDATA[x>y]]> </konyv> </m:konyvtar> A további tulajdonságokat az alábbi lista adja meg: csomópont típusa: dokumentum csomópont azonosító: dok-1 gyermek információs elemek listája: (meg-1, dtd-1, meg-2,pi-1, ele-1) dokumentum gyökér eleme: ele-1 formátum jelölések: not-1 8

nem-elemzendő egyedek: (ent-1, ent-quot, ent-apos, ent-amp, ent-gt, ent-lt) dokumentum URI azonosítója: file://a.a XML verziója: 1.0 önálló dokumentum-e : nem A megjegyzéseket leíró információs csomópontok igen egyszerű szerkezetűek: csomópont típusa: megjegyzés csomópont azonosító: meg-1 tartalom: mintapélda szülő: dok-1 csomópont típusa: megjegyzés csomópont azonosító: meg-2 tartalom: adatresz szülő: dok-1 A DTD-t leíró csomópont felépítése: csomópont típusa: DTD leíró csomópont azonosító: dtd-1 külső hivatkozás: x/p/ktar nyilvános hivatkozás: tartalmazott csomópontok: meg-3 szülő csomópont: dok-1 A DTD-ben foglalt részek közül csak a megjegyzés és felodolgozási utasítások részt emeli ki. A befoglalt megjegyzés csomópont tartalma: csomópont típusa: megjegyzés csomópont azonosító: meg-3 9

tartalom: struktura szülő: dtd-1 A feldoglozási utasítás leírása: csomópont típusa: feldolgozási utasítás csomópont azonosító: pi-1 feldolgozó: me utasítás: mod= rule URI érték: file://a.a jelmagyarázat: szülő csomópont: dok-1 A gyökérelemnél a tartalmát leíró részben karakter-egyed szintig kerül lobontásra a struktúra. A gyökérelem leírása: csomópont típusa: jelölőelem csomópont azonosító: ele-1 lokális neve: konyvtar névtér: a.a a név előtagja: m gyermek információs elemek listája: (kar-1, kar-2, ele-2, kar-3, kar-4) elemjellemzők listája: itt definiált névterek listája: jel-1 érvényes névterek listája: nms-1 szülő elem: dok-1 elem URI azonosítója: file://a.a A karakterek megadása: 10

csomópont azonosító: kar-1 kód: 10 szóköz-jelző: hamis szülő: ele-1 csomópont azonosító: kar-2 kód: 32 szóköz-jelző: igaz szülő: ele-1 A befoglalt konyv elem szerkezete: csomópont típusa: jelölőelem csomópont azonosító: ele-2 lokális neve: konyv névtér: a név előtagja: gyermek információs elemek listája: (kar-5, kar-6, kar-7, kar-8, kar-9, kar-10, kar-11, kar-12, kar-13, kar-14, kar-15, kar-16) elemjellemzők listája: jel-1 itt definiált névterek listája: érvényes névterek listája: nms-1 szülő elem: ele-1 elem URI azonosítója: file://a.a csomópont azonosító: kar-3 11

kód: 10 szóköz-jelző: hamis szülő: ele-1 csomópont azonosító: kar-4 kód: 32 szóköz-jelző: igaz szülő: ele-1 A névtér csomópont felépítése: csomópont típusa: névtér csomópont azonosító: nms-1 előtag: m érték: a.a csomópont típusa: elemjellemző csomópont azonosító: jel-1 lokális neve: m névtér: a név előtagja: értéke : i1 explicit szerepelt-e az érték: igaz jellemző típusa: CDATA hivatkozott értékek listája: szülő elem: ele-2 A konyv elem tartalmát leíró karakter egyedek adatai: 12

csomópont azonosító: kar-5 kód: 10 szóköz-jelző: hamis szülő: ele-2 csomópont azonosító: kar-6 kód: 32 szóköz-jelző: igaz szülő: ele-2 csomópont azonosító: kar-7 kód: A szóköz-jelző: hamis szülő: ele-2 csomópont azonosító: kar-8 kód: 32 szóköz-jelző: igaz szülő: ele-2 csomópont azonosító: kar-9 kód: & szóköz-jelző: hamis 13

szülő: ele-2 csomópont azonosító: kar-10 kód: 32 szóköz-jelző: igaz szülő: ele-2 csomópont azonosító: kar-11 kód: x szóköz-jelző: hamis szülő: ele-2 csomópont azonosító: kar-12 kód: szóköz-jelző: hamis szülő: ele-2 csomópont azonosító: kar-13 kód: y szóköz-jelző: hamis szülő: ele-2 csomópont azonosító: kar-14 kód: 10 14

szóköz-jelző: hamis szülő: ele-2 csomópont azonosító: kar-15 kód: 32 szóköz-jelző: igaz szülő: ele-2 Az Infoset modell tehát egy olyan absztrakt modell, melyben a megszokott jelölőelem szintaktika (a kacsacsőr zárójelek) nem szerepelnek, az egyedek tárolási formátuma, kerete szabadon módosítható. Az Infoset a dokumentum feldolgozás lelkét jelentő struktúráltságot írja le. Az Infoset szerepét jól szemlélteti Gudgin megállapítása: XML started as a markup language, but it has eveloped into a platform, the heart of which is not XML 1.0, but the XML Infoset.(Az XML jelölő nyelvként jött létre, de ma már külön platformként jelenik meg, melynek magjában nem az XML 1.0 szabvány, hanem az XML Inforset sabvány áll). Vagyis a XML technológia elméleti alapját a most bemutatott Infoset szabvány jelenti. XDM adatmodell Az Infoset modell 2004-ben készült el, s az azóta eltelt időben bekövekezett egy lényeges változás az XML alapmodellben. Az Infoset modellben a DTD szerepelt sémaintegritási eszközként. A DTD viszonylag szerényebb integritási lehetőségeit időközben felváltotta az XMLSchema gazdagabb eszköztára. Az XMLSchema lényeges változást jelent az alapmodellben, hiszen számos új modellelem megjelent, többek között a típusfigyelés, gazdagabb integritási szabályhalmaz. A megváltozott lehetőségek a alap absztrakciós modell továbbfejlesztését hozták magukkal. A legújabb eredmény ezen a területen a 2007-ben kiadott új W3C XML alapmodell, az XDM (Xquery and Xpath Data Model). Az XDM alapvetően az Infoset modellre épül, de kiegészíti azt az alábbi elemekkel: típuskezelés, az XMLSchema adattípusainak bevonása összetett szerkezeti struktúrák megjelenése szekvencia bevezetése 15

elemek rendezettségének figyelése a szekvencián belül Az XDM modellben az XML dokumentum egy szekveniának felel meg. A szekvencia tételek (item) rendezett litája, mindíg egyszintű, a lista egyetlen eleme sem lehet újra lista. A tétel fogalma magába foglalja a dokumentumháló egy tetszőleges csomópontját vagy atomi értékű levelét. Dokumentum alatt azt a hálót értjük,melynek gyökere a dokumentum elem. Ha a fa gyökere nem a dokumentum, akor a fát részfának (fragment) nevezzük. Mivel az XML dokumentumokat a lemezes tárolás során legtöbbször szöveges formátumban, helyesen formált XML dokumentumként tárolják, s ez a szöveges alak jelenik meg a közvetlen megtekintéskor (legyen az sima szövegszerkesztő vagy Internet böngésző), a felhasználókban óhatatlanul egy-egy pozíció is rendelődik az egyes elemekhez. Mivel a szöveges dokumentum egy linearizálása, sorosítása az XML dokumentumfának, ebben a sorosításban van értelme jobb és baloldali szomszédról, illetve elemek elhelyezkedési sorrendjéről beszélni. A forrás szöveges állomány alapján vett csomópont sorrendet nevezik dokumentum alapú sorrendnek. Szemléletes első megközelítésben azt mondhatjuk, hogy egy A elemet megelőz egy másik B elem, ha a B záró tagja előbb van a szöveges dokumentumban, mint az A nyitó tagja. Két elem pedig akkor szomszédos, ha záró és nyitó tagjaik között nem szerepel más elem nyitó vagy záró tagja. A szülő-gyerek viszony figyelembe vételével egy kicsit módosítani kell az előbbi egyszerűsített értelmezésen. A hivatalos dokumentum sorrendiség a fának egy fentről lefelé történő bejárásán alapszik. A sorrendiség értelmezésre vonatkozó legfontosabb szabályok: A dokumentum gyökere a legelső csomópont Minden csomópont előbb van, mint a gyermek és leszármazott csomópontjai A névtér csomópont előbb van mint az elemtulajdonság csomópont Az elemtulajdonság csomópontok előbb vannak mint az elemgyermekek A testvér elemgyermekek sorrendje balról jobbra való bejáráson alapul A leszármazottak előbb vannak, mint a testvérek Az XDM modellben a csomópontoknál hét különböző típust lehet megkülönböztetni a az Infosetben értelmezett tizenegytípus helyett. Az XDM az alábbi típusokat ismeri: dokumentum egység (az XML fa gyökere) jelölőelem egység (element) 16

elemjellemző (attribute) szöveg (text) névtér egység (namespace) feldolgozási utasítás (processing instruction) Az Inofset modellel összevetve hat típus közvetlenül átjött, egy típus módosulva került át, míg négy típus kimaradt. A módosulással átvett típus a karakteregység, melynél az XDM összevonja az egymásután következő karaktereket egy nagyobb, szövegegységbe. A kimaradt egységek alapvetően a DTD fogalomvilágához kötődnek, mint például a DTD-egység vagy a formátum jelölő. Ezek kimaradását a DTD elhagyása indokolja. Az XDM új eleme az adattípusok támogatása. A típusrendszer alapvetően az XMLSchema típusrendszerére épül, kiegészítve azt néhány további elemmel. A típusok egy hierarchiát alkotnak. A hierarchia tetején egy általános, minden típus szlőjeként kezel típus áll. A típusrendszer mind skalár mind összetett típusokat értelmez. A legfontosabb XDM adattípusok: anytype: minden típus őse anysimpletype: általános skalár és lista őstipus anyatomictype: általános skalár őstipus IDREFS, NMTOKENS, ENTITIES: lista típusok untyped: nem elemzett adat típusa user-defined compelx type: felhasználó által definiált összetett szerkezet integer: numerikus egész double: duplapontosságú numerikus long: hosszú numerikus egész short: rövid numerikus egész string: szöveg ID : azonosító IDREF: azonosító hivatkozás ENTITY: egyed 17

date: dátum time: időpont boolean: logikai A csomópontknál is viszonylag egyszerűbb a szerkezet, hiszen kevesebb tulajdonságot kell tárolni az egyes előfordlásoknál. A dokumetum csomópont szerkezete: csomópont típusa: dokumentum gyermek információs elemek listája (children), a lehetséges csomópont típusok listája: jelölőelem, feldolgozási utasítás, megjegyzés és szöveg. nem-elemzendő egyedek (unparsed entity): a beépített és a DTD-ben megadott ENTITY definíciókat tartalmazza, ha ez szerepel a dokumentumban dokumentum URI azonosítója (base URI) a befoglalt, leszármazott karakter elemekből összeállított szövegérték (string-value) a befoglalt elemekből összeállított értéklista (typed-value) A modell egyik alaptulajdonsága, hogy egyetlen csomópontnál sem lehet két szomszédos testvér mindegyike szöveg típusú, azaz szöveg típusú elemnek nem lehet szöveg típusú szomszéd testvére. A szövegcsompont a leghosszabb képezhető karakterláncot tartalmazza. A jelölőelem tulajdonságai: elem neve (node name) szülő elem (parent) típusának neve (az XMLschema alapján) elem URI azonosítója (base URI) gyermek csomópontok listája (children), a lehetséges típusok listája: elem, feldolgozási utasítás, megjegyzés és szöveg. itt definiált névterek listája (namespace attributes) 18

a befoglalt, leszármazott karakter elemekből összeállított szövegérték (string-value) a befoglalt elemekből összeállított értéklista (typed-value) ID szerepkörű-e az elem vagy sem (is ID) ID-REF szerepkörű-e az elem vagy sem (is IDREFS) Az elem neve tulajdonság értke magába foglalja mind a lokális nevet, a prefixet és a névtér értéket. Az elemjellemző csomópont tulajdonságai: elem jellemző neve (node name) szülő elem (parent) típusának neve (az XMLschema alapján) a befoglalt, leszármazott karakter elemekből összeállított szövegérték (string-value) a befoglalt elemekből összeállított értéklista (typed-value) ID szerepkörű-e az elem vagy sem (is ID) ID-REF szerepkörű-e az elem vagy sem (is IDREFS) Névtér csomópont tulajdonságai: előtag (prefix) szülő elem (parent) érték (URI) Feldolgozási utasítás csomópontja előtag (prefix) szülő elem (parent) érték (URI) Megjegyzés csomópont: 19

érték, szövege (content) szülő elem (parent) Szöveg-csomópont tulajdonságai: feldolgozó (target) utasítás (content) URI érték (base URI) szülő csomópont (parent) 20

References [1] N. Bradley: Az XML kézikönyv, SZAK Kiadó, 2000 21