Zaawansowane aplikacje internetowe. Wykład 2. Komunikacja XML. wykład prowadzi: Maciej Zakrzewicz. Komunikacja XML

Wielkość: px
Rozpocząć pokaz od strony:

Download "Zaawansowane aplikacje internetowe. Wykład 2. Komunikacja XML. wykład prowadzi: Maciej Zakrzewicz. Komunikacja XML"

Transkrypt

1 Wykład 2 Komunikacja XML wykład prowadzi: Maciej Zakrzewicz Komunikacja XML 1

2 Plan wykładu Modelowanie dokumentów XML za pomocą drzew DOM Specyfikacja W3C DOM API Implementacja drzew DOM w języku Java Nawigacja wewnątrz drzew DOM w języku Java Język zapytań XPath 1.0 Parsery DOM Komunikacja XML (2) Celem wykładu jest omówienie podstawowych rozwiązań technologicznych umożliwiających implementację elektronicznej wymiany danych za pomocą dokumentów XML. Wykład obejmie: koncepcję drzew DOM i ich odniesienie do struktury dokumentów XML, specyfikację biblioteki programisty W3C DOM API, implementację drzew DOM w języku Java, nawigację wewnątrz drzew DOM w języku Java, wprowadzenie do języka zapytań XPath ułatwiającego przeszukiwanie drzew DOM oraz parsery DOM, służące do automatycznego generowania drzew DOM na podstawie dokumentów XML. 2

3 Document Object Model (DOM) Standard modelowania dokumentów XML przy użyciu struktury drzewa Forma reprezentacji dokumentów XML w pamięci komputera Parser DOM Biblioteka DOM API Język zapytań XPath Komunikacja XML (3) Język XML umożliwia realizację elektronicznej wymiany danych pomiędzy niezależnymi, heterogenicznymi systemami informatycznymi. O ile jednak generowanie dokumentów XML jest nieskomplikowanym zadaniem programistycznym, o tyle składniowy rozbiór takich dokumentów stanowi istotne wyzwanie dla twórców aplikacji. W celu ułatwienia implementacji aplikacji przetwarzających dokumenty XML zaproponowano, aby programiści posługiwali się alternatywnym modelem danych i udostępniono im specjalizowane biblioteki programistyczne umożliwiające dwukierunkową konwersję z- i do- formatu XML. Document Object Model (DOM) jest uniwersalnym standardem modelowania dokumentów XML przy użyciu struktury drzewa znaczniki XML i ich zawartość są modelowane przez węzły drzewa, a zagnieżdżanie znaczników służy za podstawę do konstruowania hierarchii. W praktyce Document Object Model jest wykorzystywany jako forma reprezentacji dokumentów XML w pamięci komputera. Transformacja dokumentu XML do postaci Document Object Model jest realizowana automatycznie przez specjalny moduł, nazywany parserem DOM. Implementacja, adresowanie i przeszukiwanie drzew Document Object Model mogą być realizowane przy użyciu biblioteki o nazwie DOM API. Ponadto, zaawansowane operacje przeszukiwania drzew DOM mogą być wyrażane w specjalizowanym języku zapytań XPath, implementowanym przez biblioteki DOM API. 3

4 Przykładowy dokument XML <katalog> <ksiazka isbn=" "> <tytul>xml krok po kroku</tytul> <cena>43</cena> <autorzy> <autor>michael J. Young</autor> <autor>katarzyna Tryc</autor> </autorzy> <wydawnictwo>read Me</wydawnictwo> <rok>2000</rok> </ksiazka>... </katalog> Komunikacja XML (4) W celu przedstawienia własności modelu DOM podczas całego wykładu będziemy posługiwać się tym samym przykładowym dokumentem XML przedstawionym na slajdzie. Dokument ten reprezentuje fragment katalogu książek sprzedawanych przez księgarnię internetową. Każda książka opisana jest za pomocą znaczników <ksiazka>, zawierających tytuł książki, otoczony znacznikami <tytul>, jej cenę, otoczoną znacznikami <cena>, listę autorów, otoczoną znacznikami <autorzy> i <autor>, nazwę wydawnictwa, otoczoną znacznikami <wydawnictwo> i rok wydania, otoczony znacznikami <rok>. Numer ISBN książki jest zapisany jako atrybut "isbn" znacznika <książka>. Cały katalog jest otoczony znacznikami <katalog>. 4

5 Przykład struktury drzewa DOM korzeń węzeł elementu węzeł tekstowy węzeł atrybutu <ksiazka> <katalog> isbn=" " <tytul> <cena> <autorzy> <wydawnictwo> <rok> XML krok po kroku 43 <autor> <autor> Michael J. Young Katarzyna Tryc Read Me 2000 Komunikacja XML (5) Strukturę drzewa DOM dla przedstawionego wcześniej dokumentu XML zamieszczono na slajdzie. Drzewo DOM składa się m.in. z węzłów czterech rodzajów: korzenia - stanowiącego początek drzewa, węzłów elementu - reprezentujących pary znaczników XML, węzłów tekstowych - reprezentujących tekst pomiędzy znacznikiem otwierającym a zamykającym, węzłów atrybutu - reprezentujących atrybuty znaczników. Węzły te są ze sobą połączone krawędziami wynikającymi z relacji zagnieżdżania znaczników w oryginalnym dokumencie. Takie odwzorowanie dokumentu XML w pamięci komputera istotnie upraszcza przetwarzanie jego treści. Programista może swobodnie nawigować w strukturze drzewa i w dowolnej kolejności odczytywać elementarne dane źródłowe. 5

6 Implementacja drzew DOM W3C DOM API Node NodeList Document Element Attr Text Komunikacja XML (6) W celu ułatwienia implementacji drzew DOM, organizacja W3C zaproponowała specyfikację biblioteki programisty zawierającej predefiniowane typy danych oraz funkcje nawigacyjne i dostępowe. Specyfikacja ta nazywa się W3C DOM API i jest obecnie podstawą, na której opierają się konkretne biblioteki programisty XML oferowane dla rozmaitych języków programowania (np. org.w3c.dom dla języka Java). Oto najważniejsze typy danych reprezentujące składniki drzew DOM: Node reprezentuje węzeł w drzewie DOM (węzeł elementu, węzeł tekstowy, itd.) NodeList reprezentuje listę obiektów typu Node Document modeluje całe drzewo DOM; wszystkie węzły drzewa są jego potomkami Element modeluje węzeł reprezentujący parę znaczników XML Attr reprezentuje atrybut znacznika XML w formie tzw. węzła atrybutu Text reprezentuje treść umieszczoną wewnątrz pary znaczników XML 6

7 W3C DOM API: Typ Node (1) Typ Node reprezentuje węzeł w drzewie DOM (węzeł elementu, węzeł tekstowy, itd.) Właściwości attributes childnodes firstchild lastchild nextsibling nodename nodetype nodevalue parentnode previoussibling lista atrybutów węzła lista węzłów potomnych pierwszy węzeł potomny ostatni węzeł potomny prawy węzeł sąsiedni nazwa węzła identyfikator typu węzła wartość węzła węzeł nadrzędny lewy węzeł sąsiedni Komunikacja XML (7) Na slajdzie przedstawiono nazwy wybranych właściwości opisujących każdy obiekt typu Node. Najważniejsze z nich to: nodevalue, opisująca wartość węzła, np. tytuł książki, nodename, opisująca nazwę węzła, np. "cena", childnodes, będąca listą węzłów potomnych w stosunku do bieżącego węzła, attributes, będąca listą węzłów atrybutowych związanych z bieżącym węzłem. 7

8 W3C DOM API: Typ Node (2) Typ Node reprezentuje węzeł w drzewie DOM (węzeł elementu, węzeł tekstowy, itd.) Operacje appendchild(n) clonenode(b) haschildnodes() insertbefore(n,n) removechild(n) replacechild(n,n) dołącza nowy węzeł jako ostatni węzeł potomny zwraca kopię węzła z/bez węzłami potomnymi zwraca prawdę, jeżeli węzeł zawiera węzły potomne dołącza nowy węzeł jako węzeł potomny przed wskazanym węzłem usuwa wskazany węzeł potomny zamienia istniejący węzeł potomny z podanym węzłem Komunikacja XML (8) Na slajdzie przedstawiono nazwy wybranych operacji oferowanych przez każdy obiekt typu Node. Najważniejsze z nich to: appendchild(), umożliwiająca dołączenie nowego węzła potomnego do bieżącego węzła, removechild(), umożliwiająca odłączenie wybranego węzła potomnego od bieżącego węzła, haschildnodes(), umożliwiająca sprawdzenie, czy bieżący węzeł posiada węzły potomne. 8

9 W3C DOM API: Typ NodeList Typ NodeList reprezentuje listę obiektów typu Node Właściwości length liczba elementów na liście Operacje item(i) zwraca i-ty element listy Komunikacja XML (9) Na slajdzie przedstawiono wybrane właściwości i operacje oferowane przez obiekty typu NodeList. Właściwość "length" umożliwia odczyt liczby elementów na liście, a operacja "item(i)" daje dostęp do i-tego elementu listy. 9

10 W3C DOM API: Typ Document Typ Document modeluje całe drzewo DOM; wszystkie węzły drzewa są jego potomkami Właściwości documentelement doctype element najwyższego poziomu w dokumencie DTD lub XML Schema dla dokumentu Operacje createattribute(s) createcomment(s) createelement(s) createtextnode(s) getelementsbytagname(s) tworzy nowy węzeł atrybutu tworzy nowy węzeł komentarza tworzy nowy element tworzy nowy węzeł tekstowy zwraca listę węzłów o podanej nazwie Komunikacja XML (10) Na slajdzie przedstawiono wybrane właściwości i operacje oferowane przez obiekty typu Document. Właściwość "documentelement" reprezentuje węzeł elementu najwyższego poziomu (np. <katalog>). Operacja "createelement()" umożliwia utworzenie nowego węzła w drzewie DOM. Operacja "getelementsbytagname()" przeszukuje drzewo DOM i zwraca listę węzłów o podanej nazwie. 10

11 W3C DOM API: Typ Element Typ Element modeluje węzeł reprezentujący parę znaczników XML Właściwości tagname Operacje getattribute(s) getattributenode(s) getelementsbytagname(s) removeattribute(s) removeattributenode(n) setattribute(s,s) setattributenode(n) nazwa węzła zwraca wartość podanego atrybutu zwraca węzeł podanego atrybutu zwraca zbiór węzłów o podanej nazwie usuwa wartość podanego atrybutu usuwa podany węzeł atrybutu ustawia nową wartość atrybutu wstawia nowy węzeł atrybutu Komunikacja XML (11) Na slajdzie przedstawiono wybrane właściwości i operacje oferowane przez obiekty typu Element. Właściwość "tagname" opisuje nazwę węzła (znacznika), operacja "getattributenodes()" zwraca listę atrybutów powiązanych ze znacznikiem XML. 11

12 Implementacja W3C DOM: Java Typy DOM zaimplementowano jako interfejsy w pakiecie org.w3c.dom Klasy rzeczywiste W3C DOM API zaimplementowano w Java API for XML Processing (m.in. javax.xml, javax.xml.parsers, javax.xml.transform, javax.xml.xpath) Komunikacja XML (12) Specyfikacja W3C DOM API wyznacza ogólne wymogi dla implementacji bibliotek programistycznych służących do przetwarzania dokumentów XML. Biblioteki takie powstały i powstają dla wielu różnorodnych języków programowania. W języku Java dostępna jest biblioteka Java API for XML Processing (JAXP), która jest kompatybilna z W3C DOM API. Biblioteka JAXP zawiera m.in. następujące pakiety: javax.xml javax.xml.datatype javax.xml.namespace javax.xml.parsers javax.xml.transform javax.xml.transform.dom javax.xml.transform.sax javax.xml.transform.stream javax.xml.validation javax.xml.xpath org.w3c.dom org.w3c.dom.bootstrap org.w3c.dom.events org.w3c.dom.ls org.w3c.dom.ranges org.w3c.dom.traversal org.xml.sax org.xml.sax.ext org.xml.sax.helpers 12

13 Konstrukcja drzewa DOM w języku Java DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newdocumentbuilder(); Document xmldoc = db.newdocument(); <katalog> Node katalognode = xmldoc.createelement("katalog"); xmldoc.appendchild(katalognode); <ksiazka> Node ksiazkanode = xmldoc.createelement("ksiazka"); katalognode.appendchild(ksiazkanode); Node tytulnode = xmldoc.createelement("tytul"); <tytul> <cena> ksiazkanode.appendchild(tytulnode); Zaawansowany Node cenanode = xmldoc.createelement("cena"); XML 85 ksiazkanode.appendchild(cenanode); Node tytultext = xmldoc.createtextnode("zaawansowany XML"); tytulnode.appendchild(tytultext); Node cenatext = xmldoc.createtextnode("85"); cenanode.appendchild(cenatext); Komunikacja XML (13) Na slajdzie przedstawiono kod programu Java, który buduje w pamięci operacyjnej strukturę drzewa DOM zgodną z przedstawionym rysunkiem. Do utworzenia nowego drzewa DOM służy metoda newdocument() obiektu klasy DocumentBuilder, który z kolei jest tworzony za pomocą metody newdocumentbuilder() obiektu klasy DocumentBuilderFactory, który wreszcie jest tworzony za pomocą metody newinstance(). Drzewo DOM jest reprezentowane przez obiekt interfejsu Document, nazwany w przykładzie "xmldoc". W dalszej części programu tworzony jest węzeł elementu "katalog", reprezentowany przez obiekt interfejsu Node. Węzeł ten jest dołączany do korzenia drzewa DOM za pomocą metody appendchild(). Następnie tworzymy węzły elementów "książka", "tytuł" oraz "cena" i odpowiednio łączymy je w strukturze drzewa. W ostatniej części programu tworzone są dwa węzły tekstowe i są one dołączane do wcześniej utworzonych węzłów elementów "tytuł" i "cena". 13

14 DOM API: Funkcje nawigacyjne 1 ELEMENT_NODE 2 ATTRIBUTE_NODE 3 TEXT_NODE 9 DOCUMENT_NODE getnodetype() #document 9 getdocumentelement() katalog 1 getnodename() książka 1... getchildnodes() getattributes() getchildnodes() isbn 2 tytul 1 autorzy 1 rokwydania 1 wydawnictwo 1 cena #text 3 getchildnodes() autor 1 #text 3 #text 3 #text 3 C++ XML 2002 Mikom 36 getnodevalue() #text 3 Fabio Arc... Komunikacja XML (14) Nawigacja wewnątrz drzew DOM odbywa się przy użyciu metod zgodnych ze specyfikacją W3C DOM API. Na slajdzie przedstawiono szczegółowo przykładową strukturę drzewa DOM wraz z nazwami wybranych metod nawigacyjnych. Każdy węzeł drzewa posiada trzy właściwości: nazwę, wartość i typ. Na przedstawionym rysunku nazwa węzła znajduje się w lewym górnym rogu węzła, typ - w prawym górnym rogu, a wartość -w dolnej części węzła. Do odczytu nazwy węzła służy metoda getnodename(), do odczytu typu węzła - metoda getnodetype(), a do odczytu wartości węzła wykorzystujemy metodę getnodevalue(). Metoda getnodetype() zwraca numeryczny identyfikator typu węzła. Na slajdzie przedstawiono wykaz wybranych kodów typów węzłów, np. wartość 3 oznacza węzeł tekstowy. Zauważmy również, że nie każdy węzeł posiada wartość, a nazwy węzłów tekstowych i korzenia to zawsze "#text" i "#document". Do przechodzenia od węzła nadrzędnego do węzłów podrzędnych służy metoda getchildnodes(), lecz z pewnymi wyjątkami. Otóż przejście z korzenia drzewa do węzła elementu najwyższego poziomu odbywa się z użyciem metody getdocumentelement(), a do przechodzenia do węzłów atrybutowych służy metoda getattributes(). 14

15 Java: nawigacja w drzewie DOM getchildnodes() 1 Document xmldoc;... Node docnode = null, booknode = null, elementnode = null; NodeList docnodelist = null, booknodelist = null; docnode = xmldoc.getdocumentelement(); Access 2002/XP PL dla każdego docnodelist = docnode.getchildnodes(); 2 ASP.NET. Vademecum profesjonalisty for (int i=0; i<docnodelist.getlength(); i++) { C++ XML booknode = docnodelist.item(i); Dane w sieci WWW booknodelist = booknode.getchildnodes(); 4 for (int j=0; j<booknodelist.getlength(); j++) { Delphi. Almanach 5 elementnode = booknodelist.item(j);... if (elementnode.getnodename().equals("tytul")) 6 System.out.println(elementNode.getFirstChild().getNodeValue());}} 3 Access Projektowanie baz danych. Księga eksperta Delphi 6. Praktyka programowania - tom 1,2 Komunikacja XML (15) Na slajdzie przedstawiono przykład programu Java, który w oparciu o przedstawiony wcześniej dokument XML wyświetla tytuły wszystkich książek z katalogu. Oto najważniejsze fragmenty kodu źródłowego: 1. W zmiennej docnode zapisujemy węzeł elementu najwyższego poziomu (znacznik <katalog>). 2. W zmiennej docnodelist zapisujemy listę węzłów podrzędnych w stosunku do węzła docnode (znaczniki <ksiazka>). 3. Iterując po węzłach z listy docnodelist pobieramy kolejne jej elementy do zmiennej booknode. 4. W zmiennej booknodelist zapisujemy listę węzłów podrzędnych w stosunku do węzła booknode (znaczniki <tytul>, <autorzy>, <rok_wydania>, <wydawnictwo>, <cena>). 5. Iterując po węzłach z listy booknodelist pobieramy kolejne jej elementy do zmiennej elementnode. 6. Sprawdzamy, czy węzeł elementu reprezentuje znacznik <tytul>. Jeśli tak, to wyświetlamy na ekranie wartość pierwszego węzła podrzędnego w stosunku do węzła elementnode, który powinien być węzłem tekstowym zawierającym tytuł książki. 15

16 Java: nawigacja w drzewie DOM getattributes() Document xmldoc;... Node docnode = null, booknode = null, isbnnode = null; NodeList docnodelist = null, booknodelist = null; docnode = xmldoc.getdocumentelement(); docnodelist = docnode.getchildnodes(); 2 for (int i=0; i<docnodelist.getlength(); i++) { booknode = docnodelist.item(i); isbnnode = booknode.getattributes().item(0); System.out.println(isbnNode.getNodeValue()); } X Komunikacja XML (16) Na slajdzie przedstawiono przykład programu Java, który w oparciu o przedstawiony wcześniej dokument XML wyświetla wartości pierwszego atrybutu każdego znacznika <ksiazka> (czyli numery ISBN książek z katalogu). Oto najważniejsze fragmenty kodu źródłowego: 1. W zmiennej docnode zapisujemy węzeł elementu najwyższego poziomu (znacznik <katalog>). 2. W zmiennej docnodelist zapisujemy listę węzłów podrzędnych w stosunku do węzła docnode (znaczniki <ksiazka>). 3. Iterując po węzłach z listy docnodelist pobieramy kolejne jej elementy do zmiennej booknode. 4. W zmiennej isbnnode zapisujemy pierwszy element z listy węzłów atrybutowych podrzędnych w stosunku do węzła booknode. Węzeł isbnnode reprezentuje atrybut "isbn" znacznika <ksiazka>. Jego wartość wyświetlamy na ekranie. 16

17 Java: nawigacja w drzewie DOM getelementsbytagname() 1 2 Document xmldoc;... Node titlenode = null; NodeList titlenodelist = null; Access Projektowanie baz danych. Access 2002/XP PL dla każdego ASP.NET. Vademecum profesjonalisty C++ XML Dane w sieci WWW Delphi 6. Praktyka programowania - tom 1,2 Delphi. Almanach... titlenodelist = xmldoc.getelementsbytagname("tytul"); for (int i=0; i<titlenodelist.getlength(); i++) { titlenode = titlenodelist.item(i); System.out.println(titleNode.getFirstChild().getNodeValue()); 3 } Komunikacja XML (17) Na slajdzie przedstawiono przykład programu Java, który w oparciu o przedstawiony wcześniej dokument XML wyświetla tytuły wszystkich książek opisanych w katalogu. W przeciwieństwie do wcześniejszego przykładu, ten program wykorzystuje przydatną metodę getelementsbytagname(). Oto najważniejsze fragmenty kodu źródłowego: 1. W zmiennej titlenodelist zapisujemy listę wszystkich węzłów o nazwie "tytul". Przeszukanie całego drzewa DOM jest realizowane przez metodę getelementsbytagname(). 2. Iterując po węzłach z listy titlenodelist pobieramy kolejne jej elementy do zmiennej titlenode. 3. Wyświetlamy na ekranie wartość pierwszego węzła podrzędnego w stosunku do węzła titlenode, który powinien być węzłem tekstowym zawierającym tytuł książki. 17

18 Java: konwersja drzewa DOM do pliku XML TransformerFactory tf = TransformerFactory.newInstance(); Transformer t = tf.newtransformer(); t.transform(new DOMSource(xmlDoc), new StreamResult(new FileOutputStream("C:\\katalog.xml"))); javax.xml.transform javax.xml.transform.dom javax.xml.transform.stream <?xml version = '1.0' encoding = 'WINDOWS-1250'?> <katalog> <ksiazka isbn=" "> <tytul>c++ XML</tytul> <autorzy> <autor>fabio Arciniegas</autor> </autorzy> <rokwydania>2002</rokwydania> <wydawnictwo>mikom</wydawnictwo> <cena>36</cena> </ksiazka>... <ksiazka isbn=" "> Komunikacja XML (18) Drzewo DOM utworzone w pamięci operacyjnej może zostać przekształcone do postaci odpowiadającego mu dokumentu XML. Biblioteka JAXP zawiera klasy TransformerFactory i Transformer, które generują wyjściowy strumień znakowy XML na podstawie źródłowego drzewa DOM. Na slajdzie przedstawiono przykładowy fragment programu Java, który na podstawie drzewa DOM reprezentowanego przez zmienną "xmldoc" zapisuje na dysku plik XML o nazwie katalog.xml. Klasy biblioteczne wykorzystane w przykładzie pochodzą z pakietów javax.xml.transform, javax.xml.transform.dom i javax.xml.transform.stream. 18

19 Język XPath 1.0 Specyfikacja języka do adresowania, odczytywania i przeszukiwania drzew DOM Odgrywa podobną rolę w stosunku do drzew DOM, jak język SQL w stosunku do relacyjnych baz danych Notacja przypominająca ścieżki dostępu w systemach plików Wynik zapytania: lista węzłów spełniających warunki selekcji Komunikacja XML (19) Przeszukiwanie złożonych drzew DOM wyłącznie za pomocą metod nawigacyjnych prowadzi do istotnego skomplikowania kodu aplikacji, przejawiającego się dużą liczbą zagnieżdżonych pętli oraz warunków logicznych. Interesującym rozwiązaniem pozwalającym na uproszczenie tego typu problemów jest technologia XPath. XPath to specyfikacja języka wyrażeń służącego do adresowania, odczytywania i przeszukiwania drzew DOM reprezentujących dokumenty XML. XPath odgrywa podobną rolę w stosunku do drzew DOM, jak język SQL w stosunku do relacyjnych baz danych, tzn. pozwala formułować deklaratywne zapytania, które są wykonywane przez oprogramowanie systemowe. XPath stosuje notację przypominającą ścieżki dostępu w systemach plików - zapytanie XPath jest łańcuchem znakowym zawierającym wiele ukośników. Wynikiem ewaluacji zapytania XPath jest lista węzłów spełniających warunki selekcji. 19

20 Wyrażenia ścieżkowe (1) Rozpoczynając od korzenia, wejdź do każdego węzła "katalog" i spośród jego węzłów podrzędnych wybierz wszystkie węzły "ksiazka" drzewo DOM: zapytanie: <katalog> <ksiazka> <ksiazka> <ksiazka> /katalog/ksiazka wynik: <ksiazka> <ksiazka> <ksiazka> Komunikacja XML (20) Podstawową formą zapytań XPath są wyrażenia ścieżkowe. Wyrażenie ścieżkowe wybiera węzły drzewa poprzez opisanie absolutnej lub względnej ścieżki do nich prowadzącej. Przykład wyrażenia ścieżkowego przedstawiono na slajdzie. Wyrażenie to jest łudząco podobne do ścieżki dostępu do pliku w systemie plików. Najistotniejszą różnicą jest jednak to, że o ile w systemie plików nazwy obiektów znajdujących się w jednym katalogu nie mogą się powtarzać, o tyle w drzewie DOM węzeł może posiadać dowolnie wiele węzłów podrzędnych nazwanych jednakowo. Stąd wyrażenie ścieżkowe XPath może wybierać wiele węzłów, a nie tylko jeden. Wynikiem przedstawionego na slajdzie zapytania będzie lista węzłów "ksiazka" podrzędnych w stosunku do węzłów/węzła "katalog", które z kolei są podrzędnymi w stosunku do korzenia drzewa DOM. 20

21 Wyrażenia ścieżkowe (2) Wybierz wszystkie węzły "tytul" znajdujące się w dowolnym miejscu drzewa drzewo DOM: <katalog> <ksiazka> <ksiazka> <ksiazka> <tytul> <tytul> <tytul> zapytanie: //tytul wynik: <tytul> <tytul> <tytul> Komunikacja XML (21) Podwójny ukośnik służy do skrótowego zapisu dowolnie długiej ścieżki w drzewie. Zapytanie XPath przedstawione na slajdzie zwróci listę wszystkich węzłów "tytul" znajdujących się w dowolnym miejscu w drzewie DOM. 21

22 Wyrażenia ścieżkowe (3) Wybierz wszystkie węzły podrzędne w stosunku do wszystkich węzłów "ksiazka" znajdujących się w dowolnym miejscu drzewa drzewo DOM: <katalog> <ksiazka> <ksiazka> <ksiazka> <tytul> <cena> <autorzy> zapytanie: //ksiazka/* wynik: <tytul> <cena> <autorzy> Komunikacja XML (22) Znak "*" służy do wybierania węzłów o dowolnej nazwie. Przedstawione na slajdzie przykładowe zapytanie XPath zwróci wszystkie węzły podrzędne w stosunku do węzłów "ksiazka" znajdujących się w dowolnym miejscu drzewa DOM. 22

23 Wybór n-tego węzła Wybierz każdy pierwszy węzeł "autor" podrzędny w stosunku do każdego węzła "autorzy", znajdującego się w dowolnym miejscu drzewa drzewo DOM:... <autorzy> <autorzy> <autorzy> <autor> <autor> <autor> <autor> <autor> zapytanie: //autorzy/autor[1] wynik: <autor> <autor> <autor> Komunikacja XML (23) Znaki "[]" umożliwiają wyodrębnienie pojedynczego węzła spośród węzłów podrzędnych. Podana w nawiasach liczba jest numerem kolejnym węzła w jego poddrzewie. Zapytanie XPath przedstawione na slajdzie wybierze pierwsze węzły "autor" z każdego poddrzewa utworzonego przez węzły "autorzy", znajdujące się w dowolnym miejscu drzewa DOM. 23

24 Warunki selekcji (1)... drzewo DOM Wybierz wszystkie węzły "ksiazka" znajdujące się w dowolnym miejscu drzewa, posiadające węzeł podrzędny "cena", z którym związana jest wartość "10" zapytanie: <ksiazka> <ksiazka> <ksiazka> <cena> <cena> <cena> //ksiazka[cena=10] wynik: <ksiazka> <ksiazka> Komunikacja XML (24) Język XPath umożliwia selekcję węzłów w oparciu o warunki logiczne. Warunki selekcji zapisuje się w prostokątnych nawiasach przy nazwie węzłów, które podlegają selekcji. Przykładowe zapytanie XPath przedstawione na slajdzie wybiera wszystkie te węzły "ksiazka", które posiadają węzeł podrzędny "cena", który z kolei posiada podrzędny węzeł tekstowy o wartości "10". 24

25 Warunki selekcji (2)... drzewo DOM Wybierz wszystkie węzły isbn "ksiazka" znajdujące się w dowolnym zapytanie: miejscu drzewa, posiadające węzeł węzeł atrybutowy "isbn" o wartości " " wynik: <ksiazka> <ksiazka> <ksiazka> isbn //ksiazka[@isbn= ] <ksiazka> isbn Komunikacja XML (25) Na slajdzie przedstawiono przykład zapytania XPath dokonującego selekcji w oparciu o wartość węzła atrybutowego. Nazwę węzła atrybutowego poprzedzamy znakiem "@". Wynikiem zapytania będą wszystkie węzły "ksiazka" posiadające atrybut "isbn" o wartości " ". 25

26 Ćwiczenie zapytań XPath XPath Visualizer Komunikacja XML (26) Swoje umiejętności definiowania zapytań w języku XPath łatwo jest rozwijać za pomocą prostego narzędzia XPath Visualizer ( umożliwiającego załadowanie wybranego dokumentu XML i wykonywanie na nim zapytań ad-hoc. Narzędzie XPath Visualizer pracuje na platformie przeglądarki Microsoft Internet Explorer. 26

27 Funkcje XPath w DOM API selectnodes() lista węzłów pobranych przez podane zapytanie XPath selectsinglenode() pierwszy znaleziony węzeł z wyniku zapytania XPath valueof() treść pierwszego znalezionego węzła z wyniku zapytania XPath Komunikacja XML (27) Na silną pozycję języka XPath wpływa to, że specyfikacja W3C DOM API przewiduje operacje realizacji zapytań XPath na drzewach DOM. Programista Java może w nieskomplikowany sposób korzystać z metod selectnodes(), selectsinglenode() i valueof(), które pobierają treść zapytania i generują jego wynik. Metoda selectnodes() zwraca listę węzłów będących wynikiem zapytania XPath. Metoda selectsinglenode() zwraca pierwszy (najczęściej jedyny) węzeł będący wynikiem zapytania XPath. Metoda valueof() zwraca treść pierwszego potomka pierwszego węzła będącego wynikiem zapytania XPath. Na kolejnym slajdzie przedstawimy przykład wykorzystania zapytań XPath. 27

28 Zapytania XPath: selectnodes() Document xmldoc;... Node titlenode = null; NodeList querynodelist = null; querynodelist = xmldoc.selectnodes("//ksiazka[rokwydania='2002']/tytul"); for (int i=0; i<querynodelist.getlength(); i++) { titlenode = querynodelist.item(i); System.out.println(titleNode.getFirstChild().getNodeValue()); } C++ XML Flash i XML. Techniki zaawansowane HTML and XML dla początkujących Programowanie Microsoft SQL Server 2000 z XML Vademecum XML XML Kompendium programisty Komunikacja XML (28) Przykładowy program Java przedstawiony na slajdzie przeszukuje drzewo DOM w celu znalezienia wszystkich węzłów "tytul" opisujących książki wydane w roku Stosowne zapytanie XPath stanowi argument wywołania metody selectnodes() obiektu xmldoc, reprezentującego drzewo DOM dokumentu XML. Wynikiem metody selectnodes() jest lista węzłów spełniających warunki zapytania. W dalszej części programu iterujemy po wszystkich węzłach z wygenerowanej listy i wyświetlamy na ekranie wartości ich pierwszych potomków, czyli węzłów tekstowych zawierających brzmienie tytułu książki. 28

29 Parser DOM Aplikacja DOM API Parser DOM Dokument XML Drzewo DOM Komunikacja XML (29) Istotą wykorzystywania modelu DOM do reprezentacji i przetwarzania dokumentów XML jest to, aby drzewa DOM mogły być budowane automatycznie w oparciu o treść plików XML. Programista powinien być jak najmniej zaangażowany w kwestie transformacji danych pomiędzy formatami XML i DOM. Jeżeli ten warunek zostanie spełniony, to będziemy mogli przyjąć, że plik XML jest po prostu formatem zapisu drzewa DOM na dysku, a logika przetwarzania danych w aplikacji będzie mogła być skupiona wokół drzewiastej reprezentacji informacji. Do automatycznej transformacji plików XML do struktur drzew DOM służą parsery DOM. Parsery DOM wchodzą w skład bibliotek programistycznych (np. JAXP) i mogą być wykorzystywane w różnorodnych językach programowania. Na slajdzie przedstawiono ogólny diagram przepływu danych w aplikacji przetwarzającej dane XML. Plik dokumentu XML trafia na wejście modułu parsera DOM, gdzie jest transformowany do struktury drzewa DOM, będącego wynikiem pracy parsera DOM. Sterowanie parserem DOM oraz dalsze przetwarzanie wygenerowanego drzewa DOM odbywają się poprzez W3C DOM API. 29

30 Generowanie drzewa DOM... Node titlenode = null; NodeList titlenodelist = null; C++ XML Flash i XML. Techniki zaawansowane HTML and XML dla początkujących Java i XML Nauka języka XML Po prostu XML... DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newdocumentbuilder(); Document xmldoc = db.parse(new File("katalog.xml")); titlenodelist = xmldoc.getelementsbytagname("tytul"); for (int i=0; i<titlenodelist.getlength(); i++) { titlenode = titlenodelist.item(i); System.out.println(titleNode.getFirstChild().getNodeValue()); } Komunikacja XML (30) Na slajdzie przedstawiono kod programu Java, który buduje w pamięci operacyjnej strukturę drzewa DOM w oparciu o dokument XML zapisany w pliku "katalog.xml". Następnie w drzewie DOM wyszukiwane są wszystkie węzły o nazwie "tytul", a opisywane przez nie tytuły książek są wyświetlane na ekranie. Do wywołania parsera DOM służy metoda parse() obiektu klasy DocumentBuilder, który z kolei jest tworzony za pomocą metody newdocumentbuilder() obiektu klasy DocumentBuilderFactory, który wreszcie jest tworzony za pomocą metody newinstance(). Wynikowe drzewo DOM jest reprezentowane przez obiekt interfejsu Document, nazwany w przykładzie "xmldoc". W dalszej części programu z drzewa DOM wybierane są wszystkie węzły o nazwie "tytul", a pętla wyświetla kolejno wartości ich pierwszych potomków, którymi są brzmienia tytułów kolejnych książek z katalogu. 30

31 Podsumowanie Przetwarzanie danych XML na poziomie drzew DOM Standardowa specyfikacja W3C DOM API Niezależność od języka programowania Realizacja złożonych zapytań w języku XPath Automatyczna transformacja XML->DOM za pomocą parserów DOM Komunikacja XML (31) Model DOM umożliwia programiście oderwanie się od myślenia o danych XML jako o plikach tekstowych wypełnionych dużą liczbą znaczników. Format XML może być traktowany np. wyłącznie jako sposób zapisu danych na dysku lub jako format przesyłania tych danych przez sieć komputerową, natomiast rzeczywista struktura tych danych, podlegająca przetwarzaniu, to łatwa w obsłudze struktura drzewiasta, zwykle implementowana obiektowo. Dzięki opracowaniu standardowej specyfikacji W3C DOM API, dokumenty XML mogą być przetwarzane w taki sam sposób za pomocą dowolnego języka programowania. Programista, który zmienia język programowania, nie musi od nowa poznawać biblioteki obsługi dokumentów XML. Pomimo iż wszystkie przykłady przedstawione podczas wykładu korzystały z języka Java, to jednak ich przeniesienie do innych języków programowania byłoby bardzo łatwe. W realizacji złożonych operacji przeszukiwania drzew DOM programista może korzystać z języka zapytań XPath, za którego obsługę jest odpowiedzialna biblioteka programistyczna zgodna z W3C DOM API. Z kolei do automatycznej transformacji dokumentów XML do postaci drzew DOM służą moduły parserów DOM. 31

32 Materiały dodatkowe "Document Object Model", "Java API for XML Processing", "XML Path Language", "XPath Tutorial", Komunikacja XML (32) "Document Object Model", "Java API for XML Processing", "XML Path Language", "XPath Tutorial", 32

Wielowarstwowe aplikacje internetowe. Przetwarzanie XML. Autor wykładu: Maciej Zakrzewicz. Przetwarzanie XML

Wielowarstwowe aplikacje internetowe. Przetwarzanie XML. Autor wykładu: Maciej Zakrzewicz. Przetwarzanie XML Przetwarzanie XML Autor wykładu: Maciej Zakrzewicz Przetwarzanie XML Plan wykładu Modelowanie dokumentów XML za pomocą drzew DOM Specyfikacja W3C DOM API Implementacja drzew DOM w języku Java Nawigacja

Bardziej szczegółowo

Drzewa DOM. Maciej Zakrzewicz. mzakrz@cs.put.poznan.pl http://www.cs.put.poznan.pl/~mzakrz/

Drzewa DOM. Maciej Zakrzewicz. mzakrz@cs.put.poznan.pl http://www.cs.put.poznan.pl/~mzakrz/ Drzewa DOM Maciej Zakrzewicz mzakrz@cs.put.poznan.pl http://www.cs.put.poznan.pl/~mzakrz/ Document Object Model (DOM) Document Object Model jest standardem modelowania dokumentów XML przy użyciu struktury

Bardziej szczegółowo

Wykorzystywanie parsera DOM w programach Java i PL/SQL

Wykorzystywanie parsera DOM w programach Java i PL/SQL Wykorzystywanie parsera DOM w programach Java i PL/SQL Maciej Zakrzewicz mzakrz@cs.put.poznan.pl http://www.cs.put.poznan.pl/~mzakrz/ Parser DOM Aplikacja DOM API Parser DOM Dokument XML Drzewo DOM Parser

Bardziej szczegółowo

1 XML w bazach danych

1 XML w bazach danych XML w bazach danych 1 Plan 2 Wprowadzenie do języka XML Standard SQL-XML Funkcje SQL-XML Format XML 3 Formalnie, XML stanowi podzbiór języka Standard Generalized Markup Language (SGML) (ISO 8879:1986)

Bardziej szczegółowo

Zaawansowane aplikacje WWW - laboratorium

Zaawansowane aplikacje WWW - laboratorium Zaawansowane aplikacje WWW - laboratorium Przetwarzanie XML (część 2) Celem ćwiczenia jest przygotowanie aplikacji, która umożliwi odczyt i przetwarzanie pliku z zawartością XML. Aplikacja, napisana w

Bardziej szczegółowo

Model semistrukturalny

Model semistrukturalny Model semistrukturalny standaryzacja danych z różnych źródeł realizacja złożonej struktury zależności, wielokrotne zagnieżdżania zobrazowane przez grafy skierowane model samoopisujący się wielkości i typy

Bardziej szczegółowo

Extensible Markup Language (XML) Wrocław, Java - technologie zaawansowane

Extensible Markup Language (XML) Wrocław, Java - technologie zaawansowane Extensible Markup Language (XML) Wrocław, 15.03.2019 - Java - technologie zaawansowane Wprowadzenie XML jest językiem znaczników (ang. markup language) używanym do definiowania zbioru zasad rozmieszczenia

Bardziej szczegółowo

Procesowanie dokumentów XML

Procesowanie dokumentów XML Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej Procesowanie dokumentów XML Programowanie w Javie 2 mgr inż. Michał Misiak Cechy XML Sformalizowany zapis informacji restrykcyjne

Bardziej szczegółowo

Perl a XML. Narzędzia informatyczne w językoznawstwie. Generowanie danych XML - Przykład. Generowanie danych XML. Perl - Przetwarzanie XML

Perl a XML. Narzędzia informatyczne w językoznawstwie. Generowanie danych XML - Przykład. Generowanie danych XML. Perl - Przetwarzanie XML Perl a XML Narzędzia informatyczne w językoznawstwie Perl - Przetwarzanie XML Marcin Junczys-Dowmunt junczys@amu.edu.pl Zakład Logiki Stosowanej http://www.logic.amu.edu.pl 31 modułów w CPAN zawiera w

Bardziej szczegółowo

Kurs języka Python Wykład 8. Przetwarzanie tekstu Wyrażenia regularne Biblioteka urllib Parsowanie html'a XML

Kurs języka Python Wykład 8. Przetwarzanie tekstu Wyrażenia regularne Biblioteka urllib Parsowanie html'a XML Kurs języka Python Wykład 8. Przetwarzanie tekstu Wyrażenia regularne Biblioteka urllib Parsowanie html'a XML Wyrażenia regularne c:\> dir *.exe $ rm *.tmp Wyrażenia regularne 'alamakota' '(hop!)*' { '',

Bardziej szczegółowo

Obiektowy model dokumentu. Katedra Mikroelektroniki i Technik Informatycznych

Obiektowy model dokumentu. Katedra Mikroelektroniki i Technik Informatycznych Katedra Mikroelektroniki i Technik Informatycznych Łódź, 14 października 2005 roku Wstęp DOM Document Object Model zapewnia: Zbiór obiektów reprezentujących dokumenty XML i HTML. Model łączenia obiektów.

Bardziej szczegółowo

Słowem wstępu. Część rodziny języków XSL. Standard: W3C XSLT razem XPath 1.0 XSLT Trwają prace nad XSLT 3.0

Słowem wstępu. Część rodziny języków XSL. Standard: W3C XSLT razem XPath 1.0 XSLT Trwają prace nad XSLT 3.0 Słowem wstępu Część rodziny języków XSL Standard: W3C XSLT 1.0-1999 razem XPath 1.0 XSLT 2.0-2007 Trwają prace nad XSLT 3.0 Problem Zakładane przez XML usunięcie danych dotyczących prezentacji pociąga

Bardziej szczegółowo

SAX i DOM wykorzystanie XML-a we własnych aplikacjach. Simple API for XML Parsing Document Object Model

SAX i DOM wykorzystanie XML-a we własnych aplikacjach. Simple API for XML Parsing Document Object Model SAX i DOM wykorzystanie XML-a we własnych aplikacjach Simple API for XML Parsing Document Object Model 1 SAX - wstęp Definicja: standardowy interfejs do parsowania plików XML oparty na modelu zdarzeniowym

Bardziej szczegółowo

Wprowadzenie do technologii XML

Wprowadzenie do technologii XML Katedra Mikroelektroniki i Technik Informatycznych Łódź, 6 października 2005 roku 1 Informacje organizacyjne Omówienie przedmiotu 2 vs HTML Struktura 3 Struktura Informacje o przedmiocie Informacje organizacyjne

Bardziej szczegółowo

Wprowadzenie do XML. Tomasz Traczyk. ttraczyk@ia.pw.edu.pl http://www.ia.pw.edu.pl/~ttraczyk/

Wprowadzenie do XML. Tomasz Traczyk. ttraczyk@ia.pw.edu.pl http://www.ia.pw.edu.pl/~ttraczyk/ Wprowadzenie do XML Tomasz Traczyk ttraczyk@ia.pw.edu.pl http://www.ia.pw.edu.pl/~ttraczyk/ Plan prezentacji Co to jest XML Dokument w XML DTD i encje Składniki XML: łączniki, przestrzenie nazw Poprawność

Bardziej szczegółowo

Język UML w modelowaniu systemów informatycznych

Język UML w modelowaniu systemów informatycznych Język UML w modelowaniu systemów informatycznych dr hab. Bożena Woźna-Szcześniak Akademia im. Jan Długosza bwozna@gmail.com Wykład 10 Diagramy wdrożenia I Diagramy wdrożenia - stosowane do modelowania

Bardziej szczegółowo

WYKŁAD 3 XML DOM XML DOCUMENT OBJECT MODEL CZĘŚĆ 1

WYKŁAD 3 XML DOM XML DOCUMENT OBJECT MODEL CZĘŚĆ 1 WYKŁAD 3 XML DOM XML DOCUMENT OBJECT MODEL CZĘŚĆ 1 XML DOM (ang. XML Document Object Model Obiektowy Model Dokumentu XML) Inaczej drzewo DOM to hierarchiczny, obiektowy model dokumentu XML. DOM to platforma

Bardziej szczegółowo

Przetwarzanie dokumentów XML i zaawansowane techniki WWW Wykład 05

Przetwarzanie dokumentów XML i zaawansowane techniki WWW Wykład 05 Plan Przetwarzanie dokumentów XML i zaawansowane techniki WWW Wykład 05 T. Romańczukiewicz Jagiellonian University 2009/2010 Plan Plan 1 DOM 2 DOM w innych językach 3 Podsumowanie Plan DOM DOM w innych

Bardziej szczegółowo

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA Java w 21 dni / Rogers Cadenhead. Gliwice, cop. 2016 Spis treści O autorze 11 Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA Dzień 1. Rozpoczynamy przygodę z Javą 21 Język Java 21 Programowanie obiektowe 24 Obiekty

Bardziej szczegółowo

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni Akademia Morska w Gdyni Gdynia 2004 1. Podstawowe definicje Baza danych to uporządkowany zbiór danych umożliwiający łatwe przeszukiwanie i aktualizację. System zarządzania bazą danych (DBMS) to oprogramowanie

Bardziej szczegółowo

Podstawy XML-a. Zaawansowane techniki programowania

Podstawy XML-a. Zaawansowane techniki programowania Podstawy XML-a Zaawansowane techniki programowania Dokumenty XML XML = ang. Extensible Markup Language rozszerzalny język znaczników

Bardziej szczegółowo

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor Koszalin, 15.06.2012 r. Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor Zespół projektowy: Daniel Czyczyn-Egird Wojciech Gołuchowski Michał Durkowski Kamil Gawroński Prowadzący: Dr inż.

Bardziej szczegółowo

METODY REPREZENTACJI INFORMACJI

METODY REPREZENTACJI INFORMACJI Politechnika Gdańska Wydział Elektroniki, Telekomunikacji i Informatyki Magisterskie Studia Uzupełniające METODY REPREZENTACJI INFORMACJI Ćwiczenie 1: Budowa i rozbiór gramatyczny dokumentów XML Instrukcja

Bardziej szczegółowo

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery Łukasz Bartczuk Moduł 6 JavaScript w przeglądarce Agenda Skrypty na stronie internetowej Model DOM AJAX Skrypty na stronie

Bardziej szczegółowo

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod

Bardziej szczegółowo

Zasady programowania Dokumentacja

Zasady programowania Dokumentacja Marcin Kędzierski gr. 14 Zasady programowania Dokumentacja Wstęp 1) Temat: Przeszukiwanie pliku za pomocą drzewa. 2) Założenia projektu: a) Program ma pobierać dane z pliku wskazanego przez użytkownika

Bardziej szczegółowo

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Modelowanie hierarchicznych struktur w relacyjnych bazach danych Modelowanie hierarchicznych struktur w relacyjnych bazach danych Wiktor Warmus (wiktorwarmus@gmail.com) Kamil Witecki (kamil@witecki.net.pl) 5 maja 2010 Motywacje Teoria relacyjnych baz danych Do czego

Bardziej szczegółowo

Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT

Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT Marek Wojciechowski marek@cs.put.poznan.pl http://www.cs.put.poznan.pl/~marek/ Formatowanie dokumentów XML Język XML opisuje strukturę i

Bardziej szczegółowo

Wykład I. Wprowadzenie do baz danych

Wykład I. Wprowadzenie do baz danych Wykład I Wprowadzenie do baz danych Trochę historii Pierwsze znane użycie terminu baza danych miało miejsce w listopadzie w 1963 roku. W latach sześcdziesątych XX wieku został opracowany przez Charles

Bardziej szczegółowo

BAZY DANYCH. Co to jest baza danych. Przykłady baz danych. Z czego składa się baza danych. Rodzaje baz danych

BAZY DANYCH. Co to jest baza danych. Przykłady baz danych. Z czego składa się baza danych. Rodzaje baz danych BAZY DANYCH Co to jest baza danych Przykłady baz danych Z czego składa się baza danych Rodzaje baz danych CO TO JEST BAZA DANYCH Komputerowe bazy danych już od wielu lat ułatwiają człowiekowi pracę. Są

Bardziej szczegółowo

Zacznij Tu! Poznaj Microsoft 2012. Visual Basic. Michael Halvorson. Przekład: Joanna Zatorska

Zacznij Tu! Poznaj Microsoft 2012. Visual Basic. Michael Halvorson. Przekład: Joanna Zatorska Zacznij Tu! Poznaj Microsoft 2012 Visual Basic Michael Halvorson Przekład: Joanna Zatorska APN Promise, Warszawa 2013 Spis treści Wstęp...................................................................vii

Bardziej szczegółowo

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi 1 Rozdział 1 Wprowadzenie do PHP i MySQL Opis: W tym rozdziale kursanci poznają szczegółową charakterystykę

Bardziej szczegółowo

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko Podstawowe pojęcia dotyczące relacyjnych baz danych mgr inż. Krzysztof Szałajko Czym jest baza danych? Co rozumiemy przez dane? Czym jest system zarządzania bazą danych? 2 / 25 Baza danych Baza danych

Bardziej szczegółowo

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com Diagramy klas dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com O czym będzie? Notacja Ujęcie w różnych perspektywach Prezentacja atrybutów Operacje i metody Zależności Klasy aktywne,

Bardziej szczegółowo

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop. 2017 Spis treści O autorach 11 Podziękowania 12 Wprowadzenie 13 CZĘŚĆ I ZACZNIJ PROGRAMOWAĆ JUŻ DZIŚ Godzina 1. Praktyczne

Bardziej szczegółowo

XQuery. XQuery. Przykład. dokument XML. XQuery (XML Query Language) XQuery 1.0: An XML Query Language. W3C Recommendation http://www.w3.

XQuery. XQuery. Przykład. dokument XML. XQuery (XML Query Language) XQuery 1.0: An XML Query Language. W3C Recommendation http://www.w3. XQuery XQuery XQuery (XML Query Language) XQuery 1.0: An XML Query Language. W3C Recommendation http://www.w3.org/tr/xquery/ Język programowania funkcyjnego (podobnie jak Lisp) Język zapytań do danych

Bardziej szczegółowo

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga! Programowanie I O czym będziemy mówili Podstawy programowania w językach proceduralnym ANSI C obiektowym Java Uwaga! podobieństwa w podstawowej strukturze składniowej (zmienne, operatory, instrukcje sterujące...)

Bardziej szczegółowo

System plików warstwa logiczna

System plików warstwa logiczna Dariusz Wawrzyniak Pojęcie u Plik jest abstrakcyjnym obrazem informacji gromadzonej i udostępnianej przez system komputerowy. Plik jest podstawową jednostką logiczną magazynowania informacji w systemie

Bardziej szczegółowo

WYKŁAD 1 METAJĘZYK SGML CZĘŚĆ 1

WYKŁAD 1 METAJĘZYK SGML CZĘŚĆ 1 WYKŁAD 1 METAJĘZYK SGML CZĘŚĆ 1 SGML (Standard Generalized Markup Language) Standardowy uogólniony język znaczników służący do ujednolicania struktury i formatu różnego typu informacji (danych). Twórcy

Bardziej szczegółowo

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language) Zagadnienia (1/3) Rola modelu systemu w procesie analizy wymagań (inżynierii wymagań) Prezentacja różnego rodzaju informacji o systemie w zależności od rodzaju modelu. Budowanie pełnego obrazu systemu

Bardziej szczegółowo

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Wykład: 9 Łańcuchy znaków 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Rodzaje plików Dane przechowywane w pliku mogą mieć reprezentację binarną (taką samą, jak

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Metody Kompilacji Wykład 3

Metody Kompilacji Wykład 3 Metody Kompilacji Wykład 3 odbywa się poprzez dołączenie zasad(reguł) lub fragmentów kodu do produkcji w gramatyce. Włodzimierz Bielecki WI ZUT 2 Na przykład, dla produkcji expr -> expr 1 + term możemy

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 03 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas abstrakcyjnych i interfejsów. Wprowadzenie

Bardziej szczegółowo

Diagramu Związków Encji - CELE. Diagram Związków Encji - CHARAKTERYSTYKA. Diagram Związków Encji - Podstawowe bloki składowe i reguły konstrukcji

Diagramu Związków Encji - CELE. Diagram Związków Encji - CHARAKTERYSTYKA. Diagram Związków Encji - Podstawowe bloki składowe i reguły konstrukcji Diagramy związków encji (ERD) 1 Projektowanie bazy danych za pomocą narzędzi CASE Materiał pochodzi ze strony : http://jjakiela.prz.edu.pl/labs.htm Diagramu Związków Encji - CELE Zrozumienie struktury

Bardziej szczegółowo

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only. System Szablonów

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only. System Szablonów System Szablonów System szablonów System szablonów to biblioteka, która pozwala oddzielić warstwę prezentacji od warstwy logicznej. Aplikacja WWW najpierw pobiera wszystkie dane, przetwarza je i umieszcza

Bardziej szczegółowo

Modelowanie diagramów klas w języku UML. Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014

Modelowanie diagramów klas w języku UML. Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014 Modelowanie diagramów klas w języku UML Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014 Czym jest UML - Unified Modeling Language - Rodzina języków modelowania graficznego - Powstanie na przełomie lat 80

Bardziej szczegółowo

Program wykładów. Aplikacje internetowe i rozproszone. Podstawy usługi WWW. Architektury aplikacji intrai internetowych

Program wykładów. Aplikacje internetowe i rozproszone. Podstawy usługi WWW. Architektury aplikacji intrai internetowych Program wykładów Aplikacje internetowe i rozproszone dr inż. Maciej Zakrzewicz mzakrz@cs.put.poznan.pl http://www.cs.put.poznan.pl/~mzakrz/ Architektury aplikacji intra- i internetowych (WWW, HTTP, HTTPS,

Bardziej szczegółowo

4 Web Forms i ASP.NET...149 Web Forms...150 Programowanie Web Forms...150 Możliwości Web Forms...151 Przetwarzanie Web Forms...152

4 Web Forms i ASP.NET...149 Web Forms...150 Programowanie Web Forms...150 Możliwości Web Forms...151 Przetwarzanie Web Forms...152 Wstęp...xv 1 Rozpoczynamy...1 Co to jest ASP.NET?...3 W jaki sposób ASP.NET pasuje do.net Framework...4 Co to jest.net Framework?...4 Czym są Active Server Pages (ASP)?...5 Ustawienia dla ASP.NET...7 Systemy

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 1. Wprowadzenie do aplikacji internetowych

Bardziej szczegółowo

Przykładowy dokument XML

Przykładowy dokument XML Język XML XML (extensible Markup Language, czyli rozszerzalny język znaczników) to specyfikacja dotycząca przechowywania informacji. Jest to również specyfikacja opisujaca strukturę tych informacji. XML

Bardziej szczegółowo

Programowanie Obiektowe GUI

Programowanie Obiektowe GUI Programowanie Obiektowe GUI Swing Celem ćwiczenia jest ilustracja wizualnego tworzenia graficznego interfejsu użytkownika opartego o bibliotekę Swing w środowisku NetBeans. Ponadto, ćwiczenie ma na celu

Bardziej szczegółowo

Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas

Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas Analiza i projektowanie obiektowe 2016/2017 Wykład 10: Tworzenie projektowego diagramu klas Jacek Marciniak Wydział Matematyki i Informatyki Uniwersytet im. Adama Mickiewicza 1 Plan wykładu 1. Projektowy

Bardziej szczegółowo

1 Wprowadzenie do J2EE

1 Wprowadzenie do J2EE Wprowadzenie do J2EE 1 Plan prezentacji 2 Wprowadzenie do Java 2 Enterprise Edition Aplikacje J2EE Serwer aplikacji J2EE Główne cele V Szkoły PLOUG - nowe podejścia do konstrukcji aplikacji J2EE Java 2

Bardziej szczegółowo

problem w określonym kontekście siły istotę jego rozwiązania

problem w określonym kontekście siły istotę jego rozwiązania Wzorzec projektowy Christopher Alexander: Wzorzec to sprawdzona koncepcja, która opisuje problem powtarzający się wielokrotnie w określonym kontekście, działające na niego siły, oraz podaje istotę jego

Bardziej szczegółowo

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia ZP/ITS/11/2012 Załącznik nr 1a do SIWZ ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia Przedmiotem zamówienia jest: Przygotowanie zajęć dydaktycznych w postaci kursów e-learningowych przeznaczonych

Bardziej szczegółowo

Relacyjne bazy danych a XML

Relacyjne bazy danych a XML Relacyjne bazy danych a XML Anna Pankowska aniap@amu.edu.pl Internet, SQLiXMLwbiznesie Internet nieoceniony sposób komunikacji z klientami, pracownikami i partnerami handlowymi przyspiesza transakcje finansowe

Bardziej szczegółowo

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop. 2017 Spis treści Przedmowa 11 1. Jak w programie 21 Czym jest program? 21 Uruchamianie interpretera języka Python 22 Pierwszy

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

LABORATORIUM 5 WSTĘP DO SIECI TELEINFORMATYCZNYCH WPROWADZENIE DO XML I XSLT

LABORATORIUM 5 WSTĘP DO SIECI TELEINFORMATYCZNYCH WPROWADZENIE DO XML I XSLT LABORATORIUM 5 WSTĘP DO SIECI TELEINFORMATYCZNYCH WPROWADZENIE DO XML I XSLT 1. Wstęp XML (Extensible Markup Language Rozszerzalny Język Znaczników) to język formalny przeznaczony do reprezentowania danych

Bardziej szczegółowo

Drzewo binarne BST. LABORKA Piotr Ciskowski

Drzewo binarne BST. LABORKA Piotr Ciskowski Drzewo binarne BST LABORKA Piotr Ciskowski zadanie 1. drzewo binarne - 1 Zaimplementuj drzewo binarne w postaci: klasy Osoba przechowującej prywatne zmienne: liczbę całkowitą to będzie klucz, wg którego

Bardziej szczegółowo

Programowanie w języku C++ Grażyna Koba

Programowanie w języku C++ Grażyna Koba Programowanie w języku C++ Grażyna Koba Kilka definicji: Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i zasad

Bardziej szczegółowo

Podstawy programowania. Wprowadzenie

Podstawy programowania. Wprowadzenie Podstawy programowania Wprowadzenie Proces tworzenia programu Sformułowanie problemu funkcje programu zakres i postać danych postać i dokładność wyników Wybór / opracowanie metody rozwiązania znaleźć matematyczne

Bardziej szczegółowo

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Studia podyplomowe dla nauczycieli INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Przedmiot JĘZYKI PROGRAMOWANIA DEFINICJE I PODSTAWOWE POJĘCIA Autor mgr Sławomir Ciernicki 1/7 Aby

Bardziej szczegółowo

Cw.12 JAVAScript w dokumentach HTML

Cw.12 JAVAScript w dokumentach HTML Cw.12 JAVAScript w dokumentach HTML Wstawienie skryptu do dokumentu HTML JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.skrypty Java- Script mogą być zagnieżdżane

Bardziej szczegółowo

XML extensible Markup Language. część 5

XML extensible Markup Language. część 5 XML extensible Markup Language część 5 JavaScript Co to jest JavaScript? JavaScript był zaprojektowany w celu dodania interaktywności do stron HTML JavaScript jest językiem skryptowym JavaScript jest zwykle

Bardziej szczegółowo

Język programowania. Andrzej Bobyk http://www.alfabeta.lublin.pl. www.alfabeta.lublin.pl/jp/

Język programowania. Andrzej Bobyk http://www.alfabeta.lublin.pl. www.alfabeta.lublin.pl/jp/ Język programowania Andrzej Bobyk http://www.alfabeta.lublin.pl www.alfabeta.lublin.pl/jp/ Literatura K. Reisdorph: Delphi 6 dla każdego. Helion, Gliwice 2001 A. Grażyński, Z. Zarzycki: Delphi 7 dla każdego.

Bardziej szczegółowo

Podstawy języka XML. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

Podstawy języka XML. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz Podstawy języka XML Cel zajęć Po zrealizowaniu materiału student będzie w stanie Prawidłowo zidentyfikować składowe dokumentu XML Utworzyć dokument XML Dokonać sprawdzenia poprawności składniowej (syntaktycznej)

Bardziej szczegółowo

Autor: dr inż. Katarzyna Rudnik

Autor: dr inż. Katarzyna Rudnik Bazy danych Wykład 2 MS Access Obiekty programu, Reprezentacja danych w tabeli, Indeksy, Relacje i ich sprzężenia Autor: dr inż. Katarzyna Rudnik Obiekty programu MS ACCESS Obiekty typu Tabela są podstawowe

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy

Bardziej szczegółowo

Podstawy programowania skrót z wykładów:

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

Bardziej szczegółowo

Ustalanie dostępu do plików - Windows XP Home/Professional

Ustalanie dostępu do plików - Windows XP Home/Professional Ustalanie dostępu do plików - Windows XP Home/Professional Aby edytować atrybuty dostępu do plikow/ katalogow w systemie plików NTFS wpierw sprawdź czy jest Wyłączone proste udostępnianie czyli przejdź

Bardziej szczegółowo

Spis treści. Przedmowa

Spis treści. Przedmowa Spis treści Przedmowa V 1 SQL - podstawowe konstrukcje 1 Streszczenie 1 1.1 Bazy danych 1 1.2 Relacyjny model danych 2 1.3 Historia języka SQL 5 1.4 Definiowanie danych 7 1.5 Wprowadzanie zmian w tabelach

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 13 Marcin Młotkowski 27 maja 2015 Plan wykładu Trwałość obiektów 1 Trwałość obiektów 2 Marcin Młotkowski Programowanie obiektowe 2 / 29 Trwałość (persistence) Definicja Cecha

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

Definicja pliku kratowego

Definicja pliku kratowego Pliki kratowe Definicja pliku kratowego Plik kratowy (ang grid file) jest strukturą wspierająca realizację zapytań wielowymiarowych Uporządkowanie rekordów, zawierających dane wielowymiarowe w pliku kratowym,

Bardziej szczegółowo

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017 Wykład 12 7 czerwca 2017 Czym jest UML? UML składa się z dwóch podstawowych elementów: notacja: elementy graficzne, składnia języka modelowania, metamodel: definicje pojęć języka i powiazania pomiędzy

Bardziej szczegółowo

Wprowadzenie do XML. Joanna Jędrzejowicz. Instytut Informatyki

Wprowadzenie do XML. Joanna Jędrzejowicz. Instytut Informatyki Instytut Informatyki Literatura http://www.w3c.org/tr/ - Technical Reports K. B. Stall - XML Family of Specifications, Addison-Wesley 2003 P. Kazienko, K. Gwiazda - XML na poważnie, Helion 2002 XML Rozszerzalny

Bardziej szczegółowo

DTD - encje ogólne i parametryczne, przestrzenie nazw

DTD - encje ogólne i parametryczne, przestrzenie nazw DTD - encje ogólne i parametryczne, przestrzenie nazw Instytut Informatyki Encje Encja (ang.entity) - uogólnienie pojęcia makrodefinicji Encje to dogodny sposób reprezentacji danych które występują wielokrotnie,

Bardziej szczegółowo

Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści

Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści Język programowania DELPHI / Andrzej Marciniak. Poznań, 2012 Spis treści Przedmowa 11 Przyjęta notacja 13 Rozdział 1. Wprowadzenie 15 1.1. Ogólne zasady programowania zorientowanego obiektowo 15 1.2. Historia

Bardziej szczegółowo

Podręcznik użytkownika produktu WebSphere Adapter for Oracle E-Business Suite Wersja 7, wydanie 0, pakiet składników Feature Pack 2

Podręcznik użytkownika produktu WebSphere Adapter for Oracle E-Business Suite Wersja 7, wydanie 0, pakiet składników Feature Pack 2 WebSphere Produkty Adapter Wersja 7 Wydanie 0 Feature Pack 2 Podręcznik użytkownika produktu WebSphere Adapter for Oracle E-Business Suite Wersja 7, wydanie 0, pakiet składników Feature Pack 2 WebSphere

Bardziej szczegółowo

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek TECHNOLOGIE OBIEKTOWE WYKŁAD 2 Anna Mroczek 2 Diagram czynności Czym jest diagram czynności? 3 Diagram czynności (tak jak to definiuje język UML), stanowi graficzną reprezentację przepływu kontroli. 4

Bardziej szczegółowo

XPath XML Path Language. XPath. XSLT część 1. XPath data model. Wyrażenia XPath. Location paths. Osie (axes)

XPath XML Path Language. XPath. XSLT część 1. XPath data model. Wyrażenia XPath. Location paths. Osie (axes) XPath XML Path Language XPath. XSLT część 1. Problem: jednoznaczne adresowanie fragmentów struktury dokumentu XML. Rozwiązanie: drzewiasty model struktury dokumentu, normalizacja zawartości dokumentu (ten

Bardziej szczegółowo

GML w praktyce geodezyjnej

GML w praktyce geodezyjnej GML w praktyce geodezyjnej Adam Iwaniak Kon-Dor s.c. Konferencja GML w praktyce, 12 kwietnia 2013, Warszawa SWING Rok 1995, standard de jure Wymiany danych pomiędzy bazami danych systemów informatycznych

Bardziej szczegółowo

Hurtownie danych - przegląd technologii

Hurtownie danych - przegląd technologii Hurtownie danych - przegląd technologii Problematyka zasilania hurtowni danych - Oracle Data Integrator Politechnika Poznańska Instytut Informatyki Robert.Wrembel@cs.put.poznan.pl www.cs.put.poznan.pl/rwrembel

Bardziej szczegółowo

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Dr inż. Zofia Kruczkiewicz Dwa sposoby tworzenia apletów Dwa sposoby

Bardziej szczegółowo

ActiveXperts SMS Messaging Server

ActiveXperts SMS Messaging Server ActiveXperts SMS Messaging Server ActiveXperts SMS Messaging Server to oprogramowanie typu framework dedykowane wysyłaniu, odbieraniu oraz przetwarzaniu wiadomości SMS i e-mail, a także tworzeniu własnych

Bardziej szczegółowo

Projektowanie i wdrażanie systemów informatycznych (materiały do wykładu cz. II)

Projektowanie i wdrażanie systemów informatycznych (materiały do wykładu cz. II) Projektowanie i wdrażanie systemów informatycznych (materiały do wykładu cz. II) Jacek Cichosz www.zssk.pwr.wroc.pl Katedra Systemów i Sieci Komputerowych Politechnika Wrocławska Narzędzia modelowania

Bardziej szczegółowo

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04 Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04 Cel zajęć. Celem zajęć jest zapoznanie się ze sposobem działania popularnych kolekcji. Wprowadzenie teoretyczne. Rozważana w ramach niniejszych

Bardziej szczegółowo

Alicja Marszałek Różne rodzaje baz danych

Alicja Marszałek Różne rodzaje baz danych Alicja Marszałek Różne rodzaje baz danych Rodzaje baz danych Bazy danych można podzielić wg struktur organizacji danych, których używają. Można podzielić je na: Bazy proste Bazy złożone Bazy proste Bazy

Bardziej szczegółowo

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD Dr inż. Jacek WARCHULSKI Dr inż. Marcin WARCHULSKI Mgr inż. Witold BUŻANTOWICZ Wojskowa Akademia Techniczna SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD Streszczenie: W referacie przedstawiono możliwości

Bardziej szczegółowo

Wprowadzenie do programowania

Wprowadzenie do programowania do programowania ITA-104 Wersja 1 Warszawa, Wrzesień 2009 ITA-104 do programowania Informacje o kursie Zakres tematyczny kursu Opis kursu Kurs przeznaczony jest do prowadzenia przedmiotu do programowania

Bardziej szczegółowo

Słowem wstępu. Standard: W3C XPath razem XSLT 1.0. XPath razem z XQuery 1.0 i XSLT 2.0. XPath trwają prace nad XPath 3.

Słowem wstępu. Standard: W3C XPath razem XSLT 1.0. XPath razem z XQuery 1.0 i XSLT 2.0. XPath trwają prace nad XPath 3. Słowem wstępu Standard: W3C XPath 1.0-1999 razem XSLT 1.0 XPath 2.0-2007 razem z XQuery 1.0 i XSLT 2.0 XPath 3.0-2014 trwają prace nad XPath 3.1 XPath Język deklaratywny służący wskazywaniu elementów,

Bardziej szczegółowo

Struktury danych: stos, kolejka, lista, drzewo

Struktury danych: stos, kolejka, lista, drzewo Struktury danych: stos, kolejka, lista, drzewo Wykład: dane w strukturze, funkcje i rodzaje struktur, LIFO, last in first out, kolejka FIFO, first in first out, push, pop, size, empty, głowa, ogon, implementacja

Bardziej szczegółowo

Programowanie współbieżne i rozproszone

Programowanie współbieżne i rozproszone Programowanie współbieżne i rozproszone WYKŁAD 11 dr inż. CORBA CORBA (Common Object Request Broker Architecture) standard programowania rozproszonego zaproponowany przez OMG (Object Management Group)

Bardziej szczegółowo

UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz Po zrealizowaniu materiału student będzie w stanie Prawidłowo zidentyfikować składowe dokumentu XML Utworzyć dokument XML Dokonać sprawdzenia poprawności składniowej (syntaktycznej) dokumentu 2 1 WWW Consortium,

Bardziej szczegółowo

Wprowadzenie do projektu QualitySpy

Wprowadzenie do projektu QualitySpy Wprowadzenie do projektu QualitySpy Na podstawie instrukcji implementacji prostej funkcjonalności. 1. Wstęp Celem tego poradnika jest wprowadzić programistę do projektu QualitySpy. Będziemy implementować

Bardziej szczegółowo