XML modeli (WEB modeli) - vps.ns.ac.rs · Otpremnica –Relacioni model Otpremnica (Broj ,Datum...
Transcript of XML modeli (WEB modeli) - vps.ns.ac.rs · Otpremnica –Relacioni model Otpremnica (Broj ,Datum...
XML modeli(WEB modeli)
XML modeli
• XML – osnovna sintaksa za struktuirane dokumente koja ništa ne govori o njihovoj sadržini (značenju)
• DTD ili XML šema koja ograničava strukturu XML dokumenta i samim tim ga čini semantički bogatijim . DTD ili XML šeme za različite oblasti:– CML (Chemical Markup Language)
– MathML (Mathematical Markup Language)
– ebXML (XML za elektronsko poslovanje)
XML modeli
• RDF (Resource Desription Language) je model podataka koji predstavlja objekte ("resources") i
relacije meñu njima odnosno njihove osobine (properties). RDF se može da pretstavi u XML sintaksi.
• RDF Schema je rečnik koncepata za opisivanje osobina, klasifikaciju i generalizaciju resursa.
• OWL (Ontology Web Language) je semantički bogatiji rečnik pojmova za opis resursa i njihovih osobina ( definisanje specifičnih veza izmeñu klasa, bogatiji skup tipova osobina).
XML modeli
+ XMLschema
Pravila inteligentnog zaključivanja
XML (Extensible Markup Language)
• XML (Extensible Markup Language) je jezik za označavanje strukture dokumenta unutar njegovog sadržaja.– standardizacija strukture i sadržaja dokumenata radi
njihove efektivne razmene u različitim vrstama poslovnih i drugih elektronskih komunikacija
• Osnova: Standard Generalized Markup Language - SGML
• Standard održava: World Wide Web Consortium (W3C)
XML (Extensible Markup Language)
• XML je posebno značajan kao tzv„semistrukturni model“ podataka
• Sve češće se koristi i termin XML baze podataka– "XML baze" su reñe samostalni sistem
– češće pretstavljaju kombinaciju relacionih baza podataka i alata za skladištenje XML dokumenata i alata za "izvlačenje" XML dokumenata
– integracija heterogenih distribiranih baza podataka
Primer dokumenta
XML –osnovne oznake
<?xml version="1.0" encoding="UTF-8"?>
<Otpremnicaxmlns="http:// www.vps.ns.ac.yu /2003/XMLprimer">
.................................</Otpremnica>
Instrukcije obradeOznaka za početakelementa
Oznaka za kraj elementa
Prostor imena
Koreni elementakontejner dokum.
XML-Primer
Atrbut, dodatno opisuje element
Dobro oformljen i validan XML dokumenat
• Dobro oformljen XML dokumenat- u skladu sa osnovnom XML sintaksom – postoji XML deklaracija dokumenta
– postoji koreni elemenat u koga su svi ostali ugnježdeni
– svi elementi i atributi moraju biti dati sintaksno ispravno, odnosno moarju imati oznaku za početak i kraj i svaka vrednost atributa mora biti unutar znaka navoda.
• Validan XML dokumenat – poštuje strukturu definisanu u njegovom DTD opisu ili njegovoj XML šemi.
Struktura dokumenta
XML Document Type Description (DTD)
Konstruktori strukt.:Selekcija a | b | c0 ili više a*+ jedan ili više? nula ili jedan
XML Schema
Konstruktori složenog tipa:Sequencechoiceall –svaki el. je opicioni i pojavljije se najviše jednom
Za svaki elemenatdefinišu se atributi: name i type
XML Schema – nastavak 1
Uz svaki elemantse može dati donjai gornja granica kard.
XML Schema – nastavak 2
Uz elemenat semože definisatiatribut dajućinametypedefault
Ograničenja• Ograničenje na vrednost prostog elementa u
XML šemi:
Ograničenja
• Složena ograničenja vezuju više vrednosti različitih elementa u šemi.
– Mehanizam ID/IDREF, Key/Kref
– U okviru elementa <appInfo>
– Specifična sintaksa poznata kao Schematron
Otpremnica –Relacioni model
Otpremnica (Broj,Datum PoNar)
Dobavljac (SifraDobav,NazivDobav, AdresaDobav)
Narudzbenica (BrojNarDob, OdDobavlj)
Stavka (RedniBroj, Otprm, ZaProizv, OtpremljenaKolicina Vrednost Valuta)
Proizvod (SifraArtikla,NazivArtukla)
XML kao relacioni model
XML kao relacioni model -nastavak
XML kao relacioni model
Operacije
• Navigacione: XPath
• Specifikacione (upitni jezik) : XQuery
XPath• Xpath omogućava adresiranje čvorova,
navigaciju do delova XML dokumenta i manipulaciju stringovima, brojevima i logičkim podacima.
• Izraz putanje se sastoji od jednog ili više koraka razdojenih sa /
• Korak : naziv_ose :: test_cvora [predikat]– Osa je pravac posmatranog koraka putanje– test čvora (node test) – selektuju se čvorovi
odreñenog tipa ili datog naziva, od skupa čvorova na kraju koraka
– predikat - dodatno se selektuju čvorovi koji zadovoljavaju dati predikat
XPathose
self - daje sam konteksni čvorchild child child child - daje decu konteksnog čvora;descendant – daje sve “ potomke kontekstnog čvora,
decu, decu dece itd.;following - daje sve sledeće („desne“) blizance
konteksnog čvora i njihove potomake isključujući čvor-atribute i čvor-prostora imena.;
attribute - daje sve čvor-atribute konteksnog čvoranamespace- daje sve čvorove decu konteksnog čvora
koji su iz istog prostora imena kao i konteksni čvorparent – daje roditelja konteksnog čvora, ako on postoji;....................................
XPath - primeri
/child::Otpremnica/child::Stavka {dajesve čvorove dokumenta koji imaju naziv Stavka i kojisu deca glavnog elementa sa nazivom Otpremnica }
/descendant::node()/attribute::valuta{daje sve čvorove potomke korena dokumenta kojiimaju atribut sa nazivom valuta }
/child::Otpremnica/child::Stavka[position()=3 ]
{daje treće pojavnjivanje čvora sa nazivom Stavka u okviru Otpremnice}
XQuery - XML upitni jezik
• ForLetWhereReturn (FLWR) izraz
FOR $iteratorPromenljiva IN xpath_putanjaLET $promenljiva := xpath_putanjaWHERE kvalifikacioni_izrazRETURN xml_konstrukcija
• “$” označava promenljivu• LET dodeljuje promenljivoj vrednosti izraza putanje• FOR kaluzula definiše iterator promeljivu koja uzima
vrednosti iz skupačvorova definisanog preko putanje
XQuery - XML upitni jezik
FOR $x IN document("Otpremnica.xml")//Stavka
{ promenljiva x uzima kao svoju vrednost redomsvaku stavku dokumenta Otpremnica}
LET $x := dokument ("Otpremnica.xml)//Stavka
{promenljiva x uzima kao svoju vrednost ceo skupstavki dokumenta Otpremnica }
XQuery - XML upitni jezik
“Prikaži sve proizvode koji se nalaze na optremnici”
LET klauzulom definiše promenljiva koja kao vrednostuzima skup svih proizvoda.
Rrezultatće biti prikazan kao novi XML dokument.
LET $x := document ("Otpremnica.xml")//Proizvod
RETURN <sviProizvodi>
$x
</sviProizvodi>
XQuery - XML upitni jezik
Daj sa Otpremnice sve proizvodečiji naziv počenje saslovom “P”
FOR $a IN document(“Otpremnica.xml”)//Proizvod
WHERE substring($a/nazivProizvoda,1,1)=‘P’
RETURN <artikli>
$a/*
</artikli>
Pošto je neophodno proveriti svaku stavku definiše se iteratorska promenljiva sa klauzulom FOR.
Na dve URI adrese data dva XML dokumenta: dobavljaci.xml kojisadrži sve podatke o svim dobavljačima i otpremnice.xml koji sadrže podatke o svim otpremnicama.Upit «Prikaži sve podatke o dobavljačima i broj i datum optremnicakoje su dobavljači isoručili u 2003 godini»
Upit po više dokumenata
XQuery klijent
Oracleomotac
Oracle9i MS SQL Server
SQL Serveromotac
XQueryanalizator
XML Sintetizator
ProcesorXQuery
upita
Katalogpreslikavanja
XML<---> SQL
XQery XML rezultat
SQL uipt za XML SQL upit za XML
XML
XML
XML POSREDNIK INTEGRACIJAPODATAKA
XML baze - proizvodi