90 likes | 254 Views
Generyczne Repozytorium Dokumentów w XML. Rafał Górecki Rafał Hryniów Tomasz Pieciukiewicz. Dlaczego taki temat. Brak ogólnie dostępnych repozytoriów dokumentów Technologia XML gwarantuje niezależność od baz danych Dedykowany język zapytań upraszczający wyszukiwanie. Założenia projektu.
E N D
Generyczne Repozytorium Dokumentów w XML Rafał Górecki Rafał Hryniów Tomasz Pieciukiewicz
Dlaczego taki temat • Brak ogólnie dostępnych repozytoriów dokumentów • Technologia XML gwarantuje niezależność od baz danych • Dedykowany język zapytań upraszczający wyszukiwanie
Założenia projektu • Język zapytań operujący na pojedynczym pliku XML • Wykorzystanie DTD do utrzymywania jednolitości XML • Udostępnianie zasobów poprzez WWW • Wprowadzenie danych poprzez wyspecjalizowany interfejs.
<Pracownicy> <Pracownik> <Imie>Jan</Imie> <Nazwisko>Ciemny</Nazwisko> <Zarobki>3500</Zarobki> </Pracownik> <Pracownik> <Imie>Jaś</Imie> <Nazwisko>Fasola</Nazwisko> <Funkcja>Projektant</Funkcja> </Pracownik> <Pracownik> <Imie>Kuba</Imie> <Nazwisko>Kowalski</Nazwisko> <Zarobki>2000</Zarobki> <Funkcja>Programista</Funkcja> </Pracownik> </Pracownicy> XML jako prosta baza danych Imie Nazwisko Funkcja Pracownik Zarobki
Założenia języka zapytań (1) • Dopuszczalne pytania: • o wartość tekstową elementu (text node) • o wartość atrybutu • o zawieranie się elementów (czy X zawiera Y) • o posiadanie atrybutu przez element • Elementy zwracane • tablice wartości atrybutów • tablice wartości elementu tekstowego (text node) • tablice boolowskie • tablice elementów + struktura elementu (np.. Jako XML)
Założenie języka zapytań (2) • Pozostałe elementy: • obsługa LIKE • obsługa złączeń • funkcje agregowalne (min, max) • distinct • wyrażenia ścieżkowe • wyrażenia logiczne + kwantyfikatory
Ograniczenia języka zapytań • Działanie tylko na jednym pliku XML na raz. • Brak instrukcji imperatywnych (Insert, Update, Delete), a także funkcji, metod, klas • Brak optymalizacji lub pewna optymalizacja dla złączeń
Założenia implementacyjne • Język programowania – Java • Interpreter oparty na podejściu stosowym • Brak kompilacji do byte-code • Wykorzystywany parser typu LR(n)
Interpreter oparty o podejście stosowe • Traktowanie XML jako prostej bazy danych pozwala stosunkowo łatwo wykorzystać podejście stosowe do przetwarzania XML. • Łatwa implementacja interpretera opartego o podejście stosowe