48
A szoftver és hardverfüggetlen adatbázis Vörös Péter http://people.inf.elte.hu/vopraai/korszeru_xml/

A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

A szoftver és hardverfüggetlen

adatbázis

Vörös Péter

http://people.inf.elte.hu/vopraai/korszeru_xml/

Page 2: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

Példa

<?xml version="1.0" encoding="UTF-8"?>

<note>

<to>Tove</to>

<from>Jani</from>

<heading>Reminder</heading>

<body lang="en">Don't forget me this weekend!</body>

</note>

2Vörös Péter

people.inf.elte.hu/vopraai

Page 3: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

Mi az XML?

Adat leíró nyelv

Hardver és Szoftver független

Semmi köze a megjelenítéshez

(Ellenben a HTML-lel, ahol

pont ez a cél)

3Vörös Péter

people.inf.elte.hu/vopraai

Page 4: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

Építőelemek

• Elemek (Elements)

• Attribútumok (Attributes)

• Entitások (Entities)

• Névterek (Namespaces)

• XML deklaráció (XML declaration)

• Feldolgozási instrukciók (Processing

Instruction)

• Megjegyzések (Comments)

• CDATA szekciók (CDATA sections)

4Vörös Péter

people.inf.elte.hu/vopraai

Page 5: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

Egy XML dokumentumban egy nyitó és

megfelelő záró jelölő (tag) közötti részt

elemnek hívjuk.

<?xml version="1.0" encoding="UTF-8"?><note>

<to>Tove</to><from>Jani</from><heading>Reminder</heading><body lang="en">Don't forget me this

weekend!</body></note>

5Vörös Péter

people.inf.elte.hu/vopraai

Page 6: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

XML-ben Attribútumokkal további információk

írhatóak le egy elemről.

Attribútum csak nyitó tag-ben szerepelhet, és

az értékét idézőjelbe kell tenni

<?xml version="1.0" encoding="UTF-8"?><note>

<to>Tove</to><from>Jani</from><heading>Reminder</heading><body lang="en">Don't forget me this

weekend!</body></note>

6Vörös Péter

people.inf.elte.hu/vopraai

Page 7: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

<messages><note day="10”month="01”year="2008“to="Tove„from="Jani„heading="Reminder"body="Don't forgetme this weekend!">

</note></messages>

Túl sok attribútum

7Vörös Péter

people.inf.elte.hu/vopraai

Page 8: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

Az attribútumok helyett, törekedjünk az elemek

használatára, ez sokkal áttekinthetőbb

<note><date><year>2008</year><month>01</month><day>10</day>

</date><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this

weekend!</body></note>

<messages><note day="10”month="01”year="2008“to="Tove„from="Jani„heading="Reminder"body="Don't forgetme this weekend!"></note>

</messages>

8Vörös Péter

people.inf.elte.hu/vopraai

Page 9: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

<messages><note id="501"><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body>

</note><note id="502"><to>Jani</to><from>Tove</from><heading>Re: Reminder</heading><body>I will not</body>

</note></messages>

Az attribútumokat ne vigyük túlzásba, lehetőség

szerint hagyjuk meg a metaadatoknak

9Vörös Péter

people.inf.elte.hu/vopraai

Page 10: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

Az entitás egy rövidítés, egy bonyolult vagy hosszú szöveges adat megnevezésére.

Entitások szabadon definiálhatók, a dokumentumban bárhol használhatóak.

Elemzéskor az entitás helyére behelyettesítődik az a szöveg, amit rövidít.

&lt; <

&gt; >

&amp; &

&apos; ‘

&quot; “

Entitás

10Vörös Péter

people.inf.elte.hu/vopraai

Page 11: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

Névütközés

1. Dokumentum

<table><tr><td>Apple</td><td>Pear</td>

</tr></table>

2. Dokumentum

<table><name>Coffee Table</name><width>80</width><length>120</length>

</table>

N

É

V

Ü

T

K

Ö

Z

É

S

11Vörös Péter

people.inf.elte.hu/vopraai

Page 12: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

A névterek jelölőnevek a tag-ekegyedivé tételére, ezáltal a névütközések elkerülhetőek

A névterekkel egyedivé tett jelölőneveket minősített nevekneknevezzük

Névterek és minősített nevek

12Vörös Péter

people.inf.elte.hu/vopraai

Page 13: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

Névütközés

1. Dokumentum

<table>…

</table>

2. Dokumentum

<table>

…</table>

<root>

<h:table xmlns:h="http://www.w3.org/TR/html4/"><h:tr><h:td>Apples</h:td><h:td>Bananas</h:td>

</h:tr></h:table>

<f:table xmlns:f="http://www.w3schools.com/furniture"><f:name>African Coffee

Table</f:name><f:width>80</f:width><f:length>120</f:length>

</f:table></root>

13Vörös Péter

people.inf.elte.hu/vopraai

Page 14: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

XML Deklaráció

1.0 verzió esetén opcionális, 1.1 esetén

kötelező

Ha nincs megadva akkor az alapértelmezett

1.0-ként azonosítjuk

<?xml version="1.0" encoding="UTF-8"?>

14Vörös Péter

people.inf.elte.hu/vopraai

Page 15: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

Feldolgozási instrukciók

Megjelenítési információt társíthatunk a

dokumentumhoz.

<?xml-stylesheet type="text/css” href="cd_catalog.css"?>

15Vörös Péter

people.inf.elte.hu/vopraai

Page 16: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

<!– Ez csak egy komment -->

A megjelenítési információ nem

gyakran használt, a W3C által

nem is ajánlott, helyette XSLT-

t használjunk.

16Vörös Péter

people.inf.elte.hu/vopraai

Page 17: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

CData

A CData szekcióba írt területet az elemző

figyelmen kívül hagyja

<script><![CDATA[function matchwo(a,b){if (a < b && a < 0) thenreturn 1;

elsereturn 0;

}]]>

</script>

17Vörös Péter

people.inf.elte.hu/vopraai

Page 18: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

Jól formált XML

1. Minden tag-nek kell hogy legyen záró párja.

(Szöveg nélküli tag rövidíthető)

<p>This is a paragraph.</p><br />

2. A tag-ek kis- és nagybetű érzékenyek

<Message>incorrect</message><message>correct</message>

3. Helyes egymásba ágyazás

<b><i>This is incorrect</b></i>

<b><i>This is correct</i></b>

18Vörös Péter

people.inf.elte.hu/vopraai

Page 19: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

Jól formált XML folytatás…

4. Minden dokumentumnak kell hogy

legyen pontosan egy gyökér eleme,

ami tartalmazza az összes többi elemet

<root><child><subchild>.....</subchild>

</child></root>

5. Az attribútum értékeket idézőjelben

adjuk meg

<title lang=Inglis>HP</title>

<title lang="en">HP</title>

19Vörös Péter

people.inf.elte.hu/vopraai

Page 20: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

XML fa<bookstore><book category="COOKING"><title lang="en">Everyday Italian</title><author>Giada De Laurentiis</author><year>2005</year><price>30.00</price>

</book>a<book category="CHILDREN"><title lang="en">Harry Potter</title><author>J K. Rowling</author><year>2005</year><price>29.99</price>

</book>

</bookstore>

20Vörös Péter

people.inf.elte.hu/vopraai

Page 21: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

DTD (Document Type Description)

• A DTD sémaleíró meghatározza az XML dokumentumok szerkezetét.

• DTD használatával specifikáljuk, hogy mikor érvényes egy XML dokumentum.

• A DTD azt mondja meg, hogy mikor legális egy elem, illetve milyen beágyazások megengedettek.

• A DTD kifejező ereje nem elég típusok definiálására.

21Vörös Péter

people.inf.elte.hu/vopraai

Page 22: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

Miért jó a DTD?

• Speciális nyelvet alkothatunk

vele

(http://www.w3.org/TR/html401

/sgml/dtd.html)

• Az alkalmazásunk könnyen

ellenőrizni tudja hogy a kapott

adat valid-e.

22Vörös Péter

people.inf.elte.hu/vopraai

Page 23: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

Hogyan?

<?xml version="1.0"?><!DOCTYPE note SYSTEM "note.dtd"><note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body>

</note>

<!ELEMENT note (to,from,heading,body)><!ELEMENT to (#PCDATA)><!ELEMENT from (#PCDATA)><!ELEMENT heading (#PCDATA)><!ELEMENT body (#PCDATA)>

23Vörös Péter

people.inf.elte.hu/vopraai

Page 24: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

Hogyan?<!ELEMENT note (to,from,heading,body)><!ELEMENT to (#PCDATA)><!ELEMENT from (#PCDATA)><!ELEMENT heading (#PCDATA)><!ELEMENT body (#PCDATA)>

!DOCTYPE note megadja hogy a dokumentum gyökere a

note

!ELEMENT note rész megadja hogy a note

"to,from,heading,body" részekből áll

!ELEMENT to, from, heading, body megadják hogy azok

az elemek szöveges értékűek

24Vörös Péter

people.inf.elte.hu/vopraai

Page 25: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

a a elem

e1? 0 vagy 1 előfordulása az e1 kifejezésnek

e1* 0 vagy több előfordulása az e1-nek

e1+ 1 vagy több előfordulása az e1-nek

e1,e2 Az e2 az e1 után következik

e1|e2 e1 vagy e2

(e) Zárójelezés

#PCDATA Nem elemzendő szöveg

EMPTY Nincs tartalom

ANY Tetszőleges tartalom

(#PCDATA|a1|..|an)* Vegyes tartalom

25Vörös Péter

people.inf.elte.hu/vopraai

Page 26: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

Attribútumokra is megfogalmazható

megszorítás

#REQUIRED - Szükséges az adott attribútum

<!ATTLIST person number ID #REQUIRED><person number="5" />

<person />

#IMPLIED - Opcionális az adott attribútum

<!ATTLIST contact fax CDATA #IMPLIED><contact fax="555-667788" />

<contact />

#FIXED - Fix érték kel l hogy legyen

<!ATTLIST sender company IDREF #FIXED "Microsoft"><sender company="Microsoft" />

<sender company="W3Schools" />

26Vörös Péter

people.inf.elte.hu/vopraai

Page 27: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

Entitás létrehozás

<!ENTITY NEWSPAPER "Vervet Logic Times">

<!ENTITY PUBLISHER "Vervet Logic Press">

<body>&NEWSPAPER;&PUBLISHER;</body>

27Vörös Péter

people.inf.elte.hu/vopraai

Page 28: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

Érvényesség DTD szerint

Egy XML dokumentum érvényes egy

adott DTD szerint, ha

• a dokumentum illeszkedik a reguláris

kifejezésekre

• az attribútumok típusai megfelelőek

• az azonosítók és hivatkozások használata

szabályos.

28Vörös Péter

people.inf.elte.hu/vopraai

Page 29: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

Feladat

http://people.inf.elte.hu/vopraai/korszeru_xml/DTD_feladat.txt

Ellenőrzéshez:

http://www.xmlvalidation.com/

29Vörös Péter

people.inf.elte.hu/vopraai

Page 30: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

XSD - XML séma

Nagyon hasonlít a DTD-re

Vannak típusok– xs:string

– xs:decimal

– xs:integer

– xs:boolean

– xs:date

– xs:time

Vörös Péter

people.inf.elte.hu/vopraai

30

Page 31: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

XSD példa

<?xml version="1.0"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"><xs:element name="note"><xs:complexType><xs:sequence>

<xs:element name="date" type="xs:date"/><xs:element name="to„ minOccurs=„1" maxOccurs="unbounded” …/>

<xs:element name="from" type="xs:string"/><xs:element name="heading" type="xs:string"/><xs:element name="body" type="xs:string"/>

</xs:sequence>

<xs:attribute name=”ID" type="xs:integer" use="required"/></xs:complexType>

</xs:element></xs:schema>

Vörös Péter

people.inf.elte.hu/vopraai

31

Page 32: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

DTD Tuning

Feladat:

http://people.inf.elte.hu/vopraai/korszeru_xml/XSD_feladat.txt

Validálás:

http://www.utilities-online.info/xsdvalidation/

Vörös Péter

people.inf.elte.hu/vopraai

32

Page 33: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

XPath

XPath kifejezéseit az XML faalapján kell kiértékelni.

•Navigálás

•Kiválasztás

•Általános információ kinyerés

33Vörös Péter

people.inf.elte.hu/vopraai

Page 34: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

Csúcs

Az XML fa csúcsai a következő csúcstípusúak lehetnek:

– Dokumentum

– Elem

– Attribútum

– Szöveg

– Instrukció

– Megjegyzés

– Névtér

34Vörös Péter

people.inf.elte.hu/vopraai

Page 35: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

Csúcs

Egy csúcsnak lehet neve, vagy

értéke, vagy mindkettő

– egy Elem csúcsnak neve van,

de értéke nincs;

– egy Szöveg csúcsnak nincs

neve, de karaktersorozatú

értéke van;

– egy Attribútum csúcsnak

neve és értéke is van.

35Vörös Péter

people.inf.elte.hu/vopraai

Page 36: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

Csúcs sorrend

• A csúcsok közti rendezést adokumentum sorrend definiálja, mely a pre-order bejárásnak felel meg.

– Egy szülő csúcs megelőzi a gyerekeit és attribútumait.

– A testvér csúcsok közül az attribútumok jönnek előbb és csak utána a más típusúak.

– Az attribútumok sorrendje implementáció függő.

36Vörös Péter

people.inf.elte.hu/vopraai

Page 37: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

Példa Xpath lekérdezésre

<irodalom><könyv ár=’55’>

<kiadó>Addison-Wesley</kiadó><szerző>Serge Abiteboul</szerző><szerző><kernév>Rick</kernév>

<veznév>Hull</veznév></szerző><szerző>Victor Vianu</szerző><cím>Foundations of Databases</cím><év>1995</év>

</könyv><könyv> <kiadó>Freeman</kiadó><szerző>Jeffrey D. Ullman</szerző><cím>Principles of Database and Knowledge Base Systems</cím><év>1998</év>

</könyv>

</irodalom>

37Vörös Péter

people.inf.elte.hu/vopraai

Page 38: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

Az XML fa

irodalom

Gyökér

könyv könyv

kiadó kiadószerző szerzőszerző szerző

ár

cím címév év

veznévkernév

38Vörös Péter

people.inf.elte.hu/vopraai

Page 39: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

irodalom

Gyökér

könyv könyv

kiadó kiadószerző szerzőszerző szerző

ár

cím címév év

veznévkernév

/irodalom/könyv/év

Eredmény: <év>1995</év>

<év>1998</év>

/irodalom/cikk/év eredménye üres, mert nincs cikk.

/irodalom/könyv/év

39Vörös Péter

people.inf.elte.hu/vopraai

Page 40: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

irodalom

Gyökér

könyv könyv

kiadó kiadószerző szerzőszerző szerző

ár

cím címév év

veznévkernév //szerző

Eredmény: <szerző>Serge Abiteboul</szerző>

<szerző><kernév>Rick</kernév>

<veznév>Hull</veznév>

</szerző>

<szerző>Victor Vianu</szerző>

<szerző>Jeffrey D. Ullman</szerző>

//szerző

40Vörös Péter

people.inf.elte.hu/vopraai

Page 41: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

irodalom

Gyökér

könyv könyv

kiadó kiadószerző szerzőszerző szerző

ár

cím címév év

veznévkernév //szerző

Eredmény: <szerző>Serge Abiteboul</szerző>

<szerző><kernév>Rick</kernév>

<veznév>Hull</veznév>

</szerző>

<szerző>Victor Vianu</szerző>

<szerző>Jeffrey D. Ullman</szerző>

//szerző

41Vörös Péter

people.inf.elte.hu/vopraai

Page 42: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

/irodalom//kernév

irodalom

Gyökér

könyv könyv

kiadó kiadószerző szerzőszerző szerző

ár

cím címév év

veznévkernév

/irodalom//kernév

Eredmény: <kernév>Rick</kernév>

42Vörös Péter

people.inf.elte.hu/vopraai

Page 43: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

/irodaalom/könyv/szerző/text()

irodalom

Gyökér

könyv könyv

kiadó kiadószerző szerzőszerző szerző

ár

cím címév év

veznévkernév

/irodalom/könyv/szerző/text()

Eredmény: Serge Abiteboul

Victor Vianu

Jeffrey D. Ullmantext() = visszaadja a szövegcsúcs értékét

node() = visszaadja csúcsot

name() = visszadja a jelölő nevét43Vörös Péter

people.inf.elte.hu/vopraai

Page 44: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

/irodalom/könyv/@ár

irodalom

Gyökér

könyv könyv

kiadó kiadószerző szerzőszerző szerző

ár

cím címév év

veznévkernév

/irodalom/könyv/@ár

Eredmény: 55

44Vörös Péter

people.inf.elte.hu/vopraai

Page 45: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

irodalom

Gyökér

könyv könyv

kiadó kiadószerző szerzőszerző szerző

ár

cím címév év

veznévkernév /irodalom/könyv/szerző[kernév]

Eredmény: <szerző>

<kernév>Rick</kernév>

<veznév>Hull</veznév>

</szerző>

[kernév] igaz, ha a szerző elemnek van

kernév gyereke.

/irodalom/könyv/szerző[kernév]

45Vörös Péter

people.inf.elte.hu/vopraai

Page 46: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

További példák

/irodalom/könyv[@ár < 60]

az ára kisebb mint 60

/irodalom/könyv[szerző/kernév = "Rick"]

egyik szerzőjének kerneve Rick

/irodalom/könyv[szerző/text()]

van szöveggel megadott szerzője

/irodalom/könyv[2]

a 2. könyv

46Vörös Péter

people.inf.elte.hu/vopraai

Page 47: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

Halmazműveletek

• A következő

halmazműveleteket lehet

használni:

– Egyesítés: |, union

– Metszet: intersect

– Kivonás: except

• Ezek a műveletek eltávolítják a

többszörös előfordulásokat.

47Vörös Péter

people.inf.elte.hu/vopraai

Page 48: A szoftver és hardverfüggetlen adatbázisVörös Péter 5 people.inf.elte.hu/vopraai XML-ben Attribútumokkaltovábbi információk írhatóak le egy elemről. Attribútum csak nyitó

XPath Feladat

http://people.inf.elte.hu/vopraai/korszeru_xml/xpath_feladat.txt

http://people.inf.elte.hu/vopraai/korszeru_xml/kolcsonzesek.xml

Ellenőrzéshez:

http://www.xpathtester.com/xpath

48Vörös Péter

people.inf.elte.hu/vopraai