Upload
trinhnhi
View
227
Download
3
Embed Size (px)
Citation preview
RĪGAS TEHNISKĀ UNIVERSITĀTE
DATORZINĀTNES UN INFORMĀCIJASTEHNOLOĢIJAS FAKULTĀTE
Progresīvās datu bāzes (DB3)
3. laboratorijas darbsXML datu tipa izmantošana datu bāzēs
Izstrādāja: Liene Liepiņa (081RDC003, I RDGDB0)
2010./2011. mācību gads
SatursIevads........................................................................................................................................31. XML pielietojums PostgreSQL datu bāzēs.......................................................................4
1.1. XML funkcijas..........................................................................................................41.1.1. XMLCOMMENT..............................................................................................41.1.2. XMLCONCAT..................................................................................................51.1.3. XMLELEMENT...............................................................................................51.1.4. XMLFOREST...................................................................................................51.1.5. XMLPI..............................................................................................................51.1.6. XMLROOT.......................................................................................................51.1.7. XMLAGG.........................................................................................................51.1.8. IS DOCUMENT, IS NOT DOCUMENT.........................................................6
1.2. XML apstrāde............................................................................................................62. Piemēra realizācija............................................................................................................8
2.1. Datu ievade................................................................................................................82.2. Vaicājumu izpilde ar Xpath.......................................................................................9
3. Rīki ar XML un PostgreSQL atbalstu.............................................................................163.1. EMS Data import for PostgreSQL..........................................................................163.2. RazorSQL................................................................................................................19
Secinājumi...............................................................................................................................22Izmantotā literatūra.................................................................................................................23Pielikumi.................................................................................................................................24
2
IevadsDarba ietvaros autors ņēma vērā izvirzīto darba uzdevumu un mēģināja veikt izpēti, kā
to varētu realizēt datu bāzē PostgreSQL.
Kā rezultātā tika veiks izpētes darbs, kurā apgūta PostgreSQL pieejam XML datu
apstrādei, ievēroti trūkumi, kā arī iespējas, kas nav iekļautas XML datu apstrādē. Kā
redzēsim darba gaitā, PostgreSQL neatbalsta shēmu realizāciju un funkciju pielietojums vēl
ir izstrādes stadijā.
Tika aplūkoti arī rīki, kas saistās ar XML datu apstrādi un PostgreSQL datu bāzi. Rīki
tika pielietoti, veikti piemēru realizāciju un secināts par to pielietojumu.
3
1. XML pielietojums PostgreSQL datu bāzēsXML atbalsts datu bāzei var būt attiecināms ar dažādām nozīmēm:
XML datu tips un atbalsta funkcijas
XML eksporta formāts
XML dokumenta kartēšana SQL datubāzē
Aplūkosim kā šie jēdzieni ir realizēti PostgreSQL datubāzē.
Pēdējās PostgreSQL datu bāzēs tiek atbalstīts XML datu tips. Piemēram, tas izskatās
šādi:CREATE TABLE piemers (...,dati xml,...);
Kā jebkurš datu tips, arī šis ietver funkcijas, ar kuru palīdzību varam reāli pielietot
datus. XML tips atšķiras no citu datu ievads. Lai varētu pārveidot teksta rindas uz XML un
atpakaļ tiek lietotas sekojošas funkcijas:
XMLPARSE ( DOCUMENT|CONTENT vertiba ) --> xmlXMLSERIALIZE ( DOCUMENT|CONTENT xml_vertiba AS varchar ) --> varchar
1.1. XML funkcijasIr atbalstītas arī dažādas funkcijas, kuras var izmantot saistībā ar XML dokumentu tipu.
Aplūkosim XML satura realizācijas funkcijas. Tās var pielietot ērtākai darbībai, ievadei un
norādei uz XML tipa datiem. Bet jāmin, ka veiksmīgi var darboties ar pamata XML datiem,
neizmantojot funkcijas. Autors akcentē šīs funkcijas, norādot PostgreSQL iestrādātās
funkcijas.
Vispirms aplūkosim funkcijas, kas saistītas ar XML saturu. Tas ir, dotās funkcijas ļauj
realizēt XML dokumenta saturu. Piemērus atainosimt ar SELECT funkciju, lai redzētu uzreiz
rezultātus.
1.1.1. XMLCOMMENTAtaino komentārus XML dokumentos.
Komanda:SELECT xmlcomment('sveiki!');Rezultāts:<!--sveiki-->
4
1.1.2. XMLCONCATĻauj savienot dažādus elementus, lai veidotu vienotu saturu XML dokumentā.
Komanda:SELECT xmlconcat('<vards>Liene<vards/>', '<uzvards>Liepina</liepina>');Rezultāts:<vards>Liene<vards/><uzvards>Liepina</liepina>
1.1.3. XMLELEMENTFunkciju parasti lieto kopā ar funkciju XMLATTRIBUTES, kur elements ir XML
dokumenta elements, bet atribūts ir tā vērtība.
Komanda:SELECT xmlelement(name nosaukums, xmlattributes(current_date as datums), ‘saturs’);Rezultāts:<nosaukums datums="2011-04-01">saturs<nosaukums/>
1.1.4. XMLFORESTFunkcija ļauj atainot XML koka struktūru, norādot vērtības un elementus.
Komanda:SELECT xmlforest('abc' AS pirmais, ‘def’ AS otrais);Rezultāts:<pirmais>abc</pirmais><otrais>123</otrais>
1.1.5. XMLPIFunkcija ļauj izveidot XML apstrādes skriptus, piemēram , programmēšanas valodā
PHP.Komanda:SELECT xmlpi(name php, 'echo "hello world";');Rezultāts:<?php echo "hello world";?>
1.1.6. XMLROOTAtaino saknes elementa aprakstu un vērtību atribūtus. Lietot kopā ar funkcijām
XMLPARSE, XMLELEMENT utml.Komanda:SELECT xmlroot(xmlparse(document '<?xml version="1.1"?><content>abc</content>'),version '1.0', standalone yes);Rezultāts: <?xml version="1.0" standalone="yes"?> <content>abc</content>
1.1.7. XMLAGGAtaino apvienotus XML tipa datus no norādītas atrašanās vietas. Jāņem vērā norāde,
vērtību sakritība un secība.
5
Komanda:CREATE TABLE test (y int, x xml);INSERT INTO test VALUES (1, '<foo>abc</foo>');INSERT INTO test VALUES (2, '<bar/>');SELECT xmlagg(x) FROM test;Rezultāts: <foo>abc</foo><bar/>
1.1.8. IS DOCUMENT, IS NOT DOCUMENTFunkcijas vērtība atgriež apstiprinošu vai noraidošu atbildi (TRUE/FALSE). Attiecīgi
izanalizējot XML dokumenta atbilstošu saturu.
1.2. XML apstrādePamatā, lai apstrādātu datu tipu XML PostgreSQL lieto funkciju XPATH, kas realizē
XPath 1.0 izteiksmes.xpath(xpath, xml[, nsarray])
Funkcija xpath apskata xpath izteiksmi attiecībā pret XML vērtību. Tā atgriež XML
masīva vērtības, kas atbilst mezglpunktam, kas norādīts XPath izteiksmē.
Otrais arguments arī ir XML dokuments. Precīzāk, tas ir tikai viens saknes mezgla elements.
Trešais arguments funkcijā ir masīvs „namespace” samērošanai. Šis masīvs ir divdimensiju
masīvs. Pirmais elements katrā masīva ierakstu vārds (alias), otrais ir norāde URL. Un tas
nav noteikti, ka šeit norādītie masīva vārdi ir tie paši, kas XML dokumentā, var brīvi
izveidot sava vaicājuma atainojumu un vērtības.SELECT xpath('/my:a/text()', '<my:a xmlns:my="http://example.com">test</my:a>', ARRAY[ARRAY['my', 'http://example.com']]);Rezultāts:{test}(1 row)
Xpath realizācija un pielietojums būs atainots tālākajā darba nodaļā ar realizētu
piemēru. Jāmin, ka XML dati un to pielietojums PostgreSQL datu bāzēs attīstās. Ir izdoti ari
dažāda informācija par jaunu funkciju iestrādi. Jāmin gan, ka realizācija vēl ir tikai sākuma
stadijā, jo reti, kura no funkcijām arī reāli darbojās PostgreSQL pēdējās versijās, līdz ar to
varam secināt, ka funkcionalitāte vēl ir tikai ieceres līmenī.
Virkne funkciju, kuras ir paredzēts, ka darbosies ar nākamajām PostgreSQL versijām: table_to_xml query_to_xml cursor_to_xml table_to_xmlschema query_to_xmlschema cursor_to_xmlschema table_to_xml_and_xmlschema query_to_xml_and_xmlschema(query text, nulls boolean, tableforest
boolean, targetns text) schema_to_xml
6
schema_to_xmlschema schema_to_xml_and_xmlschema database_to_xml database_to_xmlschema database_to_xml_and_xmlschema
7
2. Piemēra realizācijaPiemērā tiek izmantot XML dati par dejošanas nometni. Ir definēti trīs XML datu tipu
definējumi:
Dejotāji – apraksta nometnē piedalošos dalībniekus
Skolotāji – apraksta dejotāju skolotājus
Notikumi – apraksta notikumus nometnes laikā
Pilnie XML dokumenti pieejami darba pielikumā. Tālākajā nodaļās aplūkosim datu
realizāciju un apstrādi PostgreSQL datu bāzē. Katru no datu veidiem ievadīsim savā tabulā,
lai ērti varam pārlūkot un veidot vēlāk arī vaicājumus.
2.1. Datu ievadeIzveidosim tabulu, kurā izvietosim datus par dejotājiem. Izmantosim divus ierakstu
tipus, vienā no tiem norādīsim ieraksta numuru un otrā izvietosim XML datu tipa datus.
att. 1 “Tabulas “dejotaji” izveide”
att. 2 “Datu ievade tabulā “dejotaji””
Identiski veidojam arī tabulas un ievietojam datus gan par skolotājiem, gan par notikumiem.
att. 3 “Tabulas “skolotaji”izveide”
8
att. 4 “Datu ievade tabulā “skolotaji””
att. 5 “Tabulas “notikumi” izveide”
att. 6 “Datu ievade tabulā “notikumi””
2.2. Vaicājumu izpilde ar XpathPēc datu ievades mēģināsim tos aplūkot un atlasīt, izmantojot Xpath definēšanas
iespējas.
1.vaicājums.
Uzdevums: Atlasīt no tabulas “dejotaji” datus par 2.dejotāju.
Šajā piemērā tiek atainoti visi dati XML pierakstā, bet pateicoties xpath funkcijai un
norādītajam ceļam, bija iespējams atlasīt tikai konkrēto ierakstu.
9
att. 7 “1.vaicājumu realizācija”
2.vaicājums.
Uzdevums: Atlasīt no tabulas “dejotaji” datus par dejotāju vārdiem un dejām, kuras
tas prot ar 1.līmeni.
Kā redzam SELECT daļā ir iespējams arī norādīt teksta izvades formu. Līdz ar to dati
ir apskatāmi tabulas veidā, vairs neatainojot XML struktūru, bet tikai vērtību datus. Rezultātā
ieguvām visus dejotājus un norādītas dejas, kuras tie prot 1.līmenī.
10
att. 8. “2.vaicājuma realizācija”
3.vaicājums.
Uzdevums: Atlasīt no tabulas “skolotaji” datus par skolotājiem un dejām, kurām
apguves līmenis ir augstāks par 2.klasi.
att. 9. “3.vaicājuma realizācija”
11
4.vaicājums.
Uzdevums: Atlasīt no tabulām “dejotaji”un „skolotaji” datus par dejotājiem un
skolotājiem, norādot atbilstošu skolotāju katram dejotājam, dejotāja apgūtās dejas, kā arī
skolotāja dejas, kuras atbilst par 2.klases augstāku līmeni..
att. 10. “4.vaicājuma realizācija”
5.vaicājums.
Uzdevums: Atlasīt no tabulas “dejotaji” un „skolotaji” datus par 2.skolotāja dejotājiem, kas
dzimuši pēc 1988.gada..
att. 11. “5.vaicājuma realizācija”
12
6.vaicājums
Uzdevums: Atlasīt visus pasākumus, kuru tematika ir “valsis”, norādot notikuma dienu un
laiku.
att. 12. “6.vaicājuma realizācija”
7.vaicājums
Uzdevums: Atlasīt notikumus un konkrētus dejotājus, kuros tiem jāpiedalās, jo tiem ir
iemaņas konkrētās dejas dejošanā. Noradīt dejotāju un notikumu, kurā tam jāierodas.
att. 13 “7.vaicājuma realizācija”
13
8.vaicājums
Uzdevums: Atlasīt dejotājus, kuri saistās ar konkrētu notikumu un norādīt skolotāju, kas to
vadīs. Notikumu vadīs skolotājs, ja tam ir atbilstoša kvalifikācija.
att. 14. “8.vaicājuma realizācija”
9.vaicājums
Uzdevums: Norādīt notikumus, uz kuriem jāierodas kādiem no dejotājiem, ja tas ir paredzēts
dalībniekiem, kuru dejas “tango” līmenis ir zems, tas ir, 1.
att. 15. “9.vaicājuma realizācija”
14
10.vaicājums
Vaicājumu apskates nobeigumā, autors vēlējās akcentēt vēl vienu funkcionalitāti.
Ir iespējams izmantot indeksus realizācijā, ko arī atbalsta XPath funkcionalitāte.
Tālākajā piemērā izveidosim indeksu tabulai „dejotaji” un tās XML datiem.
att. 16 “10.viacājuma realizācija”
15
3. Rīki ar XML un PostgreSQL atbalstu
3.1. EMS Data import for PostgreSQLRīks paredz dažādu datu tipu importēšanu datu bāzē.
Pārbaudīsim, kā tas darbojas ar XML datiem.
Sākotnēji tiek izveidots savienojums ar datu bāzi.
att. 17. “Savienojuma izveide EMS ar PostgreSQL”
Datus varam izvietot gan jau eksistējošā tabulā, gan arī izveidot jaunu.
att. 18. “Datu norāde un tabula izveide DB”
16
XML dati atbilstoši tiek nolasīti un izanalizēta koka shēma, kā redzams tālākajā attēlā.
att. 19. “XML dokumenta datu analīze EMS”
No pieejamās informācijas tiek automātiski izveidoti tabulas lauki un piedāvāta
strukturēta datu izvietošana.
att. 20. “Datu struktūra tabulā”
Tālākās darbības saistītas ar datu konfigurāciju un tabulas izveidi.
17
att. 21. “Datu konfigurācija EMS”
att. 22. “Tabulas lauku konfigurācija EMS”
att. 23. “Datu analīze un akceptēšana”
att. 24. “Ierobežojumu norādīšana”
18
Rezultātā tika iegūta tabula ar laukiem, kas tika norādīti importēšanas laikā.
att. 25. “Datu rezultāts DB”Secinājumi par rīku:
Kā redzējām, ar rīka palīdzību varam apstrādāt XML dokumentus. Rezultātā iegūstam
tabulu struktūru, kas atbilst XML dokumenta shēmas saturam. Tas ir elementi un atribūti
sakārtojas tabulās.
Rīks nav viegli pielietojams dažu atsevišķu posmu realizācijai. Datu atpazīšana
dažubrīd ir problemātiska un netiek identificēti nepieciešamie lauki. Rīks var tiks pielietots,
ja nepieciešama kāda XML dokumenta shēmas elementu realizācija datu bāzē. Šo
funkcionalitāti tas atbalsta un veic.
3.2. RazorSQL
att. 26. “Pieslēgties DB ar RazorSQL”
19
att. 27. “Rīka darba virsma”
Ar rīka palīdzību varam pieslēgties datu bāzei un veikt importēšanas un ekportēšanas
funkcijas. Pievērsīsim uzmanību, kādus datus mēs iegūsim, ja vēlēsimies eksportēt datus
XML formātā.
Ja mēs mēģināsim izveidot jau esošās tabulas „skolotaji” XML datu eksportu.
Rezultātā iegūsim sekojošu dokumentu:
att. 28. “Tabulas eksporta rezultāti”
Kā rezultātā varam secināt, ka gaidāmais rezultāts atspoguļo tabulu no tās izrietot XML
elementus, bet reāli neanalizējot jau esošos XML datus.
20
Mēģinot realizēt tabulu ar kolonnu struktūru un vienkāršiem ierakstiem, varam iegūt
vienkāršotu XML koku.
att. 29. “XML dokumenta iegūšana rīkā “RezorSQL”
Secinājumi par rīku:Rīkam ir ļoti plaša funkcionalitāte un pielietojums var būt ļoti plašs. Konkrētās izpētes
rezultātā, lai secinātu XML atbalsta iespējas. Jāmin, ka funkcionalitāte ir līdzīga kā jau
iepriekš apskatītajam rīkam. Reālo XML tipa analīzi, kas iekļauta datu bāzē nav iespējama.
Netiek atbalstītas ar XML shēmas un tamlīdzīgas iezīmes. Līdz ar to no jauna varam secināt,
ka PostgreSQL datu bāzes ietvaros XML dokumentu tipa apstrādes mehānismiem vēl
jāattīstās.
21
SecinājumiIzvirzītā darba uzdevuma ietvaros tika izpētītas iespējas datu bāžu sistēma PostgreSQL
un realizācijas iespējas tajā. Sākotnēji tika pētīta dokumentācijā un pamatparugi, lai izprastu
pielietojamības gaitu. Sākotnēji funkcijas un apraksti sniedz priekšstatu, ka tiks piedāvāts
plašs atbalsts un iespējas. Realizējot piemērus un paraugus, saskaramies ar virkni
ierobežojumi, kurus tā arī nevar realizēt.
Neskatoties uz to, jāsaka, ka PostgreSQL ir veicis zināmu soli uz priekšu, lai atbalstītu
progresīvo datu tipu XML. Tikai nedaudz versiju iepriekš kā atsevišķu datu tipu to nevarēja
sastapt. Šobrīd tam ir atsevišķa vieta un apstrādes iespējas ar XPath palīdzību.
Vaicājumu izstrāde ir sākotnēji jāizprot, sākot no sintakses un datu atainošanas
principiem, līdz komplicētāku piemēru realizēšanas iespējām. XPath ir pamata apstrādes
funkcija datu bāzē PostgreSQL. Līdz ar to funkcionalitāte ir atsevišķos uzdevumos
komplicēta.
PostgreSQL diemžēl pašreiz vēl neatbalsta XML shēmu pielietojumu. To realizācija
netiek atbalstīta. Tika izveidots arī shēmas paraugs (skat. 3. pielikums), bet realizāciju tā arī
netika iegūta. Kā redzam, no izstrādātu izteikumiem, šis jautājums ir viens no galvenajiem,
kas tiek solīts datu bāzes nākamajās versijās. Būs interesanti ar ambiciozajām idejām
iepazīties realitātē. Šobrīd ir pieejamas dažas publikācijas un idejas, kā tas varētu darboties,
bet šobrīd tas ir tikai vīzijas līmenī.
Bija interesanti aplūkot rīkus, kas sadarbojas ar datu bāzu sistēmu, datu integrācija un
apstrāde ir iespējama dažādos virzienos. Lai gan jāmin, ka rīki pārsvarā ir maksas produkti
un pieejamas tikai izmēģinājuma versijas, tad tie ļauj izvērtēt to funkcionalitāti. Atsevišķu
komplicētu darba uzdevumu ietvaros, rīki varētu būt noderīgi un pielietojami. Bet ne visi
realizēja gaidāmo rezultātu šī darba ietvaros.
Veicamais uzdevums bija interesants un padziļināti bija iespēja izprast XML struktūru
un pielietojumu tieši datu bāzēs kā datiem. Personīgi izvirzītais mērķis to pielietot
PostgreSQL datu bāzē paņēma daudz laika un papildus izpēti jaunās tehnoloģijas apgūšanai.
Lekciju materiāli atbilda Oracle realizācijai, līdz ar to šī realizācija bija jāveido bez
konkrētām pamatzināšanām.
Gala rezultātā tika padziļinātāki apgūta PostgreSQL datu bāze, tās darbība un
realizācijas iespējas. No kā autors var secināt, ka tā ir jauna, bet ērti pielietojama un
progresējoša sistēma.
22
Izmantotā literatūra1. Lekciju konspekti
2. Interneta resursi:
http://www.scribd.com/doc/2402063/SQLXML-For-Postgres-Developers http://gene.triplenexus.org/xml/postgresxml.xml http://wiki.postgresql.org/wiki/XML_Support http://www.slideshare.net/petereisentraut/postgresql-and-xml http://www.postgresql.org/docs/9.0/interactive/functions-xml.html http://www.razorsql.com . http://developer.postgresql.org/pgdocs/postgres/functions-xml.html
23
Pielikumi1.pielikums.
Dokuments“dejotaji.xml”<?xml version="1.0"?><dejotaji><dejotajs>
<pamatdati><dejotajs_id>1</dejotajs_id><vards>Marta Kukure</vards><dzimums>siev</dzimums><gads>1986</gads><skolotajs_id>2</skolotajs_id>
</pamatdati><dejas>
<deja limenis="3">valsis</deja><deja limenis="1">tango</deja>
</dejas></dejotajs><dejotajs>
<pamatdati><dejotajs_id>2</dejotajs_id><vards>Jancis mazais</vards><dzimums>vir</dzimums><gads>1990</gads><skolotajs_id>1</skolotajs_id>
</pamatdati><dejas>
<deja limenis="2">valsis</deja></dejas>
</dejotajs><dejotajs>
<pamatdati><dejotajs_id>3</dejotajs_id><vards>Laine Lillemo</vards><dzimums>siev</dzimums><gads>1990</gads><skolotajs_id>2</skolotajs_id>
</pamatdati><dejas>
<deja limenis="3">valsis</deja><deja limenis="1">tango</deja><deja limenis="1">samba</deja>
</dejas></dejotajs><dejotajs>
<pamatdati><dejotajs_id>4</dejotajs_id><vards>Santa Lielirbe</vards><dzimums>siev</dzimums>
24
<gads>1988</gads><skolotajs_id>3</skolotajs_id>
</pamatdati><dejas>
<deja limenis="2">valsis</deja><deja limenis="1">svings</deja>
</dejas></dejotajs><dejotajs>
<pamatdati><dejotajs_id>5</dejotajs_id><vards>Lauris Vilcis</vards><dzimums>vir</dzimums><gads>1986</gads><skolotajs_id>2</skolotajs_id>
</pamatdati><dejas>
<deja limenis="3">valsis</deja><deja limenis="1">tango</deja><deja limenis="2">tango</deja>
</dejas></dejotajs><dejotajs>
<pamatdati><dejotajs_id>6</dejotajs_id><vards>Imanuels Rikendo</vards><dzimums>vir</dzimums><gads>1991</gads><skolotajs_id>1</skolotajs_id>
</pamatdati><dejas>
<deja limenis="2">valsis</deja><deja limenis="1">svings</deja>
</dejas></dejotajs><dejotajs>
<pamatdati><dejotajs_id>7</dejotajs_id><vards>Elizabete Taivo</vards><dzimums>siev</dzimums><gads>1987</gads><skolotajs_id>2</skolotajs_id>
</pamatdati><dejas>
<deja limenis="2">tango</deja></dejas>
</dejotajs><dejotajs>
<pamatdati><dejotajs_id>8</dejotajs_id>
25
<vards>Laimdota Lilaste</vards><dzimums>siev</dzimums><gads>1990</gads><skolotajs_id>3</skolotajs_id>
</pamatdati><dejas>
<deja limenis="2">valsis</deja><deja limenis="3">samba</deja>
</dejas></dejotajs><dejotajs>
<pamatdati><dejotajs_id>9</dejotajs_id><vards>Dzintars Mazirbe</vards><dzimums>vir</dzimums><gads>1988</gads><skolotajs_id>3</skolotajs_id>
</pamatdati><dejas>
<deja limenis="3">valsis</deja><deja limenis="1">tango</deja><deja limenis="3">svings</deja>
</dejas></dejotajs><dejotajs>
<pamatdati><dejotajs_id>10</dejotajs_id><vards>Mareks Trevors</vards><dzimums>vir</dzimums><gads>1989</gads><skolotajs_id>1</skolotajs_id>
</pamatdati><dejas>
<deja limenis="1">valsis</deja></dejas>
</dejotajs></dejotaji>
26
2.pielikumsDokuments “skolotaji.xml”
<?xml version="1.0"?><saraksts><skolotajs>
<pamatdati><skolotajs_id>1</skolotajs_id><vards>Alla Kurme</vards><pieredze>10</pieredze><skola>Rembindo</skola>
</pamatdati><dejas>
<deja klase="5">valsis</deja><deja klase="3">svings</deja><deja klase="2">tango</deja><deja klase="5">samba</deja><deja klase="1">steps</deja>
</dejas></skolotajs><skolotajs>
<pamatdati><skolotajs_id>2</skolotajs_id><vards>Nikolajs Lilaste</vards><pieredze>7</pieredze><skola>Sarma</skola>
</pamatdati><dejas>
<deja klase="5">valsis</deja><deja klase="3">svings</deja><deja klase="5">tango</deja><deja klase="2">samba</deja><deja klase="3">steps</deja>
</dejas></skolotajs><skolotajs>
<pamatdati><skolotajs_id>3</skolotajs_id><vards>Santa Dzene</vards><pieredze>5</pieredze><skola>Dimanti</skola>
</pamatdati><dejas>
<deja klase="5">valsis</deja><deja klase="3">svings</deja><deja klase="2">tango</deja><deja klase="2">samba</deja><deja klase="1">steps</deja>
</dejas></skolotajs></saraksts>
<?xml version="1.0" encoding="ISO-8859-1" ?>
27
3.pielikumsDokuments “skolotaji.xsd”
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:complexType> <xs:sequence>
<xs:element name="pamatdati"><xs:complexType>
<xs:sequence><xs:element name="vards" type="xs:string"/><xs:element name="pieredze" type="xs:positiveInteger"/><xs:element name="skola" type="xs:string"/></xs:sequence>
</xs:complexType></xs:element><xs:element name="dejas">
<xs:complexType><xs:sequence><xs:element name="valsis" type="xs:string"/><xs:element name="svings" type="xs:string"/><xs:element name="tango" type="xs:string"/><xs:element name="samba steps" type="xs:string"/><xs:element name="tango" type="xs:string"/></xs:sequence>
</xs:complexType></xs:element>
</xs:sequence> </xs:complexType></xs:schema>
28