Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

1 XML •Az Extensible Markup Language (XML, kiterjeszthető leíró nyelv) a W3C által ajánlott általános célú leíró nyelv speciális célú leíró nyelvek létrehozására.

Hasonló előadás


Az előadások a következő témára: "1 XML •Az Extensible Markup Language (XML, kiterjeszthető leíró nyelv) a W3C által ajánlott általános célú leíró nyelv speciális célú leíró nyelvek létrehozására."— Előadás másolata:

1 1 XML •Az Extensible Markup Language (XML, kiterjeszthető leíró nyelv) a W3C által ajánlott általános célú leíró nyelv speciális célú leíró nyelvek létrehozására. http://www.w3.org/XML/ http://www.w3.org/XML/ •Előzménye: –GML (1969) Generalized Markup Language –SGML (1986) Standard Generalized Markup Language –HTML (1989) HyperText Markup Language •Jelenleg két XML verzió létezik. •Az XML 1.0-t 1998-ban definiálták. •Jelenleg a 2004. február 4-én publikált harmadik kiadás az aktuális. •Ezzel egy időben adták ki az XML 1.1-et. •Magyar XML összefoglaló, és Oracle XML összefoglaló található az alábbi címen: http://ablinux.inf.elte.hu/indexxml.html

2 2 XML •Az XML jellegzetességei: –az XML dokumentum önleíró szöveges információ, –az XML dokumentumok könnyen reprezentálhatók címkézett, irányított gráfokkal, –lekérdező nyelvek a gráfokban keresnek meghatározott mintára illeszkedő útvonalakat (XPath), –a különböző funkciójú nyelvek (XQuery, XSLT, XLink, XPointer) közös része az XPath, –az adatbázis-kezelők (pl. Oracle) támogatják az XML típus kezelését, –szabványos adatcsere formátumként segít az adatintegráció megoldásában.

3 3 XML •Az adatintegráció promlémája: –különböző helyeken tárolt, különböző formátumú adatbázisokat szeretnénk egységes formátumú, egy adatbázisban látni, illetve kezelni. •A különbözőség többféle lehet: –eltérő adatmodell (relációs, objektumorientált), –különböző sémákban reprezentálhatják akár ugyanazt az információt is, –más elnevezéseket használnak (név, ügyfélnév, vevő), –más skálákat használnak (forint, euro, dollár). •Például képzeljük el különböző sörözők nyilvántartásait: –egyik helyen használnak adatbázis-kezelőt, a másik helyen meg szöveges fájlokban tárolják az információt, –egyik helyen sörös üvegeket számolnak, a másik helyen sörös ládákat, –az egyik helyen tárolják a szállító telefonszámát, a másik helyen nem, –az egyik helyen megkülönböztetik a világos és barna söröket, a másik helyen nem.

4 4 XML •Az adatintegráció kétféle megoldása: 1.Adattárház építése (warehousing): - egy közös sémájú adatbázisba napi, heti rendszerességgel betöltjük (szükség esetén transzformáljuk) a feldolgozáshoz szükséges adatokat. Adattárház (Warehouse) Burkoló (Wrapper) Adatforrás

5 5 XML 2.Közvetítő használata (mediation): - az adatforrásokból egy közös nézetet (virtuális adatbázist) definiálunk, - a virtuális adatbázishoz intézett lekérdezéseket át kell fordítani az eredeti adatforrások lekérdezéseivé, és a lekérdezések eredményeit vissza kell integrálni. Közvetítő Burkoló Adatforrás Kérdés Alkérdés Kérdés Alválasz Válasz Alválasz Válasz

6 6 XML •Az információ integráció megoldásához új adatmodellt vezetünk be, a félig (vagy részben) strukturált adatmodellt. •Az XML a félig strukturált adatmodell szabványos leíró nyelve. •A félig strukturált adatok irányított, címkézett gráffal reprezentálhatók: •Csúcsok (elemek, gyökér): objektumok, •Élek (szülő-gyerek kapcsolatok): objektumok közti kapcsolatok, •Címkék az éleken vagy csúcsokon: attribútumok, kapcsolatnevek, •Levelek (text csúcsok): atomi értéket tartalmaznak. •Megjegyzés: Az élcímkézett és csúcscímkézett modellek megfeleltethetők egymásnak. •Az adatmodell általánosítása a DOM (Document Object Model, http://www.w3.org/DOM/ ).http://www.w3.org/DOM/

7 7 XML Szűz Soproni 1.1995 5. kerRing Ászok sör kocsma gyártó kapható név cím díj évhelyezés gyökér Kocsma objektum Sör objektum

8 8 XML •Helyesen formázott XML dokumentumok •Egy XML dokumentum szövegből áll. •Egy helyesen formázott XML dokumentumnak többek között a következő szabályoknak kell megfelelnie: •Egyetlen gyökér elem lehet egy dokumentumban. Az XML deklaráció, feldolgozó utasítások és megjegyzések megelőzhetik a gyökér elemet. Ezt a részt prológusnak, az utána következő részt dokumentumpéldánynak hívjuk. •Az elemeket mind nyitó, mind záró címkének, tag- eknek kell határolni. •A tag-ek egymásba ágyazhatók, de nem lehetnek átfedők. Mindegyik nem gyökér elemet másik elemnek kell magában foglalnia.

9 9 XML

10 10 XML

11 11 XML Tea Citromlé Forrald fel a vizet és tedd bele a teát! Tedd bele a citromlevet, majd keverd össze!

12 12 XML Tea 1 tasak Tea 1 kanál Citromlé Receptek Recept 5 perc Név Idő Összetevő Utasítások lépés Forrald fel a vizet és tedd bele a teát! Tedd bele a citromlevet, majd keverd össze! mennyi egység Élcímkézett reprezentálás

13 13 lépés XML Tea Citromlé Receptek Recept Név Idő Összetevő Utasítások lépés Forrald fel a vizet és tedd bele a teát! Tedd bele a citromlevet, majd keverd össze! mennyi egység Tea 5 perc 1tasak kanál 1 Gyökér Csúcscímkézett reprezentálás Csúcs: Attribútum: Attribútumérték: Szöveg:

14 14 XML •Érvényes XML dokumentumok •Egy helyesen formázott XML dokumentum érvényes, ha megfelel egy adott sémának. •Egy XML séma az XML dokumentum típusának, szerkezeti szabályainak leírása. •Kétféle séma használatos: •DTD (Document Type Definition) •XSD (XML Scheme Definition)

15 15 XML XMLSpy http://www.altova.com/products/xmlspy/xml_editor.htmlhttp://www.altova.com/products/xmlspy/xml_editor.html - (30 napos próbaverzió), - ellenőrzi a helyesen formázottságot, érvényességet, sémát generál.

16 16 XML <!DOCTYPE Receptek [ ]> Tea Citromlé Forrald fel a vizet és tedd bele a teát! Tedd bele a citromlevet, majd keverd össze!

17 17 XML •Egy XML dokumentumpéldányhoz visszafele is le lehet generálni a sémáját, de ez erre a példányra fog legjobban illeszkedni: –az aktuális értékeket tekinti az összes lehetséges értéknek, –az értékekből határozza meg a típust, és a számosságot, –így várhatóan nem lesz elég általános. <!ATTLIST összetevő egység (tasak | kanál) #REQUIRED mennyi CDATA #FIXED "1" > <!ATTLIST Recept idő CDATA #FIXED "5 perc" név CDATA #FIXED "tea" >

18 18 XML •A DTD sémát külön fájlban is lehet tárolni: Tea Citromlé Forrald fel a vizet és tedd bele a teát! Tedd bele a citromlevet, majd keverd össze!

19 19 XML •Az XML fájl böngészővel is megnyitható, és az alstruktúrák kinyithatók a – jelekre kattintva, illetve összecsukhatók még egy kattintással. •A konyha.xml fájlt Internet Explorerrel megnyitva: - Tea Citromlé - Forrald fel a vizet és tedd bele a teát! Tedd bele a citromlevet, majd keverd össze!

20 20 XML •Az XSD sokkal részletesebb, mint a DTD. •A generált Konyha.xsd 73 sor, a Konyha.dtd 15 sor. •A Konyha.xsd első pár sora: ?xml version="1.0" encoding="UTF-8"?> s.t.b.

21 21 XML •A sémát is gráffal lehet reprezentálni. •A konyha.png tartalma:

22 22 XML •Az XPath (http://www.w3.org/TR/xpath) lekérdezőnyelv reguláris kifejezésekre illeszkedő útvonalakat keres.http://www.w3.org/TR/xpath •Példák: http://www.zvon.org/xxl/XPathTutorial/General/examples.html http://www.zvon.org/xxl/XPathTutorial/General/examples.html •1999-ben készült az 1.0 verzió. •2007. januárban jelent meg a 2.0 verzió. •A reguláris kifejezésben használt fontosabb jelölések: /gyökér csúcs //az aktuális csúcs leszármazottjai.aktuális csúcs..az aktuális csúcs közvetlen szülője csúcsnévaz adott nevű csúcs @attribútum *tetszőleges csúcs |két lekérdezés eredményének egyesítése [ ]feltétel megadása

23 23 XML •/Receptek/Recept/@név eredménye: név attribútum, értéke: tea •//összetevő[@mennyi=1] eredménye: összetevő csúcs, értéke: Tea összetevő csúcs, értéke: Citromlé •/Receptek/Recept/Utasítások/* eredménye: lépés csúcs, értéke: Forrald fel a vizet... lépés csúcs, értéke: Tedd bele a citromlevet...

24 24 XML •//Utasítások | /Receptek/Recept eredménye: Recept csúcs Utasítások csúcs •//*[@mennyi] -- létezik a csúcsnak mennyi attribútuma -- eredménye: összetevő csúcs, értéke: Tea összetevő csúcs, értéke: Citromlé •//Utasítások/lépés[2] – a 2. lépés csúcs – eredménye: lépés csúcs, értéke: Tedd bele a citromlevet... •//Recept[@név="tea" and összetevő="Citromlé"]//lépés eredménye: lépés csúcs, értéke: Forrald fel a vizet... lépés csúcs, értéke: Tedd bele a citromlevet...

25 25 XML •/*/* eredménye: Recept csúcs •/*/*/* eredménye: összetevő csúcs, értéke: Tea összetevő csúcs, értéke: Citromlé Utasítások csúcs •/*/*/*/parent::* -- az aktuális csúcs szülője -- eredménye: Recept csúcs •Fontosabb tengelyek (axes): childgyerek parentszülő descendantösszes leszármazott ancestorösszes ős selfaktuális csúcs attributeösszes attribútum following- sibling következő testvér preceding- sibling előző testvér precedingnyitó tag előtti összes csúcs followingzáró tag utáni összes csúcs

26 26 XML •Az XPath lekérdezésekben függvények is használhatók: http://www.w3schools.com/xpath/xpath_functions.asp http://www.w3schools.com/xpath/xpath_functions.asp Fontosabb függvényosztályok: •Accessor Például: /Receptek/Recept/node-name(.) Eredménye: xs:QName, értéke: Recept •Numeric Például: /Receptek/Recept/összetevő[@egység="kanál"]/@mennyi+3.14/round(.) Eredménye: xs: Double, értéke:4 •String Például: /Receptek/Recept/összetevő[@egység="kanál"]/string-length(.) Eredménye: xs: Integer, értéke:8 Másik példa: /Receptek/Recept/összetevő[@egység="tasak"]/upper-case(.) Eredménye: xs: string, értéke: TEA

27 27 XML •AnyURI Például: /resolve-uri(".\Példa") Eredménye: xs: anyURI, értéke: C:\TMP\Példa •Boolean Például: //összetevő[@egység="tasak"]/@mennyi="1" and false() Eredménye: xs: boolean, értéke false •Duration/Date/Time Például: //lépés/current-date() Eredménye (-- időzónával együtt --): xs: date, értéke: 2007-04-24+02:00 •QName (qualified name) Például: //Recept/namespace-uri(.) Eredménye: xs: anyURI, értéke üres

28 28 XML •Node Például: Például: //Recept/namespace-uri(.) Eredménye: xs: string, értéke "összetevő" xs: string, értéke "Utasítások" További függvényosztályok: •Sequence •Context •Error and Trace •Elnevezéseket névterek segítségével lehet egyedivé tenni. A névterek után : jelet teszünk. Előre deklarált névterek: 1.xml = http://www.w3.org/XML/1998/namespace 2.xs = http://www.w3.org/2001/XMLSchema 3.xsi = http://www.w3.org/2001/XMLSchema-instance 4.fn = http://www.w3.org/2005/xpath-functions 5.local = http://www.w3.org/2005/xquery-local-functions

29 29 XML •Az XQuery lekérdező nyelv: –SQL-hez hasonló: •FLOWR kifejezések: •FOR, LET, WHERE, ORDER BY, RETURN. –XML-ben az adatelérést XPath kifejezéssel lehet megadni, –az XQuery 1.0 2007. január 23 óta W3C ajánlás –az adatbázis-kezelők (pl. Oracle) támogatják •Alkalmazási területek: –információ kinyerése XML fájlokból, –jelentések készítése, –XML adatok átalakítása XHTML formátumra, –weben publikált adatokon keresés –web service alkalmazások megvalósítása.

30 30 XML •Változók használata: –$változó •Például: •xquery version "1.0"; for $x in doc("konyha.xml")//összetevő order by $x/@egység return $x Eredménye XML dokumentum: Citromlé Tea

31 31 XML •HTML dokumentum is generálható a segítségével Például a konyha.xq fájl legyen a következő: xquery version "1.0"; Összetevők { for $x in doc("konyha.xml")//összetevő let $valami :="kanál" where $x/@egység=$valami return {$x/text()} }

32 32 XML •Az előbbi XQuery eredménye: Összetevők Citromlé Az eredményt elmentve Konyha.html fájlba és böngészővel megnyitva:

33 33 XML •Ha a lekérdezés eredménye több elemet tartalmaz, külön sorokba jeleníthetjük meg az elemeket, és rendezhetjük is: xquery version "1.0"; Összetevők { for $x in doc("konyha.xml")//összetevő order by $x/@egység return {$x/text()} }

34 34 XML •Az előbbi XQuery eredménye: Összetevők Citromlé Tea •Böngészővel megnyitva:

35 35 XML •Az XPath összes függvénye mellett más beépített függvények is használhatók, és új függvényeket is meg lehet adni. •Például a sum(doc("konyha.xml")//összetevő/@mennyi) eredménye 2. •A következő rekurzív függvény kiszámolja a megadott XML dokumentum gráfjának mélységét. xquery version "1.0"; declare function local:depth($e as node()) as xs:integer { (: Ha nincs gyereke egy csúcsnak, akkor a mélysége 1 :) (: Különben 1-gyel nagyobb a mélysége, mint a gyerekei mélységeinek maximuma :) if (fn:empty($e/*)) then 1 else fn:max(for $c in $e/* return local:depth($c)) + 1 }; local:depth(fn:doc("Konyha.xml")) •Eredménye: 5 •A local:depth(fn:doc("Konyha.xml")/Receptek/Recept/Utasítások/lépés[1]) Eredménye: 1

36 36 XML •Az Oracle adatbázis-kezelő különböző verziói egyre bővülő XML támogatást nyújtanak. •A legfontosabb fogalmak összefoglalva (a címke, vagy tag jelentik a gráf egy csúcsát):

37 37 XML

38 38 XML

39 39 XML

40 40 XML

41 41 XML

42 42 XML

43 43 XML

44 44 XML

45 45 XML

46 46 XML

47 47 XML

48 48 XML

49 49 XML

50 50 XML

51 51 XML

52 52 XML

53 53 XML

54 54 XML

55 55 XML

56 56 XML

57 57 XML FLOWR kifejezés

58 58 XML

59 59 XML

60 60 XML

61 61 XML

62 62 XML

63 63 XML


Letölteni ppt "1 XML •Az Extensible Markup Language (XML, kiterjeszthető leíró nyelv) a W3C által ajánlott általános célú leíró nyelv speciális célú leíró nyelvek létrehozására."

Hasonló előadás


Google Hirdetések