XML modeli (WEB modeli) - vps.ns.ac.rs · Otpremnica –Relacioni model Otpremnica (Broj ,Datum...

Preview:

Citation preview

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