Wprowadzenie do XML. Tomasz Traczyk.

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

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

Transkrypt

1 Wprowadzenie do XML Tomasz Traczyk

2 Plan prezentacji Co to jest XML Dokument w XML DTD i encje Składniki XML: łączniki, przestrzenie nazw Poprawność dokumentu XML Zalety i wady XML Ważniejsze zastosowania XML Rola i pozycja XML

3 Co to jest XML? Extensible Markup Language Metajęzyk umożliwia definiowanie języków znakowania służy do zapisu różnorodnych dokumentów i struktur danych przeznaczony m.in. do użycia w WWW Geneza XML Podzbiór SGML (Standard Generalised Markup Language) Uproszczony przez usunięcie trudnych i niekoniecznych konstrukcji Dostosowany do przetwarzania w WWW

4 Po co XML? Co zapewnia XML? Możliwość definiowania struktury dokumentu znaczników (tags) Prostotę łatwość opanowania przez użytkowników względnie proste przetwarzanie Łatwość interpretacji dokumentu przez przeglądarki przez człowieka nawet bez definicji struktury dokumentu Możliwość tworzenia połączeń (links) między dokumentami przez sieć

5 Założenia XML Pierwotne Łatwa wymiana danych i dokumentów między różnymi systemami informatycznymi różnymi społecznościami użytkowników Tworzenie i prezentacja dokumentów reprezentujących różne dziedziny za pomocą ujednoliconego oprogramowania Późniejsze Możliwość definiowania nowych typów dokumentów w oparciu o definicje już istniejące Wymiana danych z możliwie silną kontrolą poprawności typów danych identyfikatorów i odwołań (referencji) Dystrybucja specjalistycznych dokumentów bezpośrednio w WWW Proste i ujednolicone przetwarzanie i wyszukiwanie informacji Łatwy podział dokumentów na części współdzielenie części (także odległych) przez różne dokumenty

6 Czym jest XML Czym jest XML? Sposobem reprezentowania informacji informacji semistrukturalnej część struktury dobrze określona część zmienna, źle zdefiniowana lub nieistotna np. dokumenty tekstowe danych o dobrze określonej strukturze Reprezentacja ta służyć ma do wymiany informacji niekiedy także do jej składowania Czym nie jest XML? Nowym modelem danych, mogącym wyprzeć np. model relacyjny czy obiektowy. odpowiada modelowi hierarchicznemu łatwemu do wyrażenia za pomocą znakowania wystarczającemu do reprezentowania wielu rodzajów dokumentów niedostatki rekompensuje się zastosowaniem identyfikatorów i referencji do nich Konkurencją dla modeli stosowanych współcześnie w bazach danych (choć może uzupełniać ich możliwości)

7 Plan prezentacji Co to jest XML Dokument w XML DTD i encje Składniki XML: łączniki, przestrzenie nazw Poprawność dokumentu XML Zalety i wady XML Ważniejsze zastosowania XML Rola i pozycja XML

8 Dokument w XML Dokument w XML Plik tekstowy Znaczniki początkowe ujęte w znaki < > końcowe ujęte w </ > Budowa dokumentu prolog element główny elementy podrzędne epilog Możliwe użycie łączników (links) Znakowanie znaczeniowe Nie ma predefiniowanych znaczników Znaczniki odzwierciedlają strukturę dokumentu/danych Znacznikom nie jest z góry przypisany sposób prezentacji Do formatowania wizualnego konieczne użycie arkusza stylistycznego (stylesheet)

9 Dokument w XML przykład <?xml version="1.0" encoding="iso "?> <!DOCTYPE eres_konspekty SYSTEM "konspekty.dtd"> <?xml-stylesheet type="text/xsl" href="konspekty.xsl"?> <eres_konspekty> <przedmiot id="kbd2" wersja="1"> <slowo_kluczowe>bazy danych</slowo_kluczowe> <slowo_kluczowe>oracle</slowo_kluczowe> <konspekt> <czesc_konspektu id="streszczenie"> <P> Monograficzny przedmiot poświęcony bazie danych i narzędziom Oracle. </P> </czesc_konspektu> <czesc_konspektu id="treść przedmiotu"> <P> Omawiane są podstawowe zagadnienia związane z wykorzystaniem RDBMS Oracle7 i <I>Oracle8</I> oraz administrowaniem nimi.</p> <P> Przedstawiane są także narzędzia do budowy aplikacji: </P> <UL> <LI> Oracle Forms, </LI> <LI> Oracle Reports. </LI> </UL> </czesc_konspektu> </konspekt> </przedmiot> </eres_konspekty>

10 Dokument w XML przykład <?xml version="1.0" encoding="iso "?> <!DOCTYPE eres_konspekty SYSTEM "konspekty.dtd"> <?xml-stylesheet type="text/xsl" href="konspekty.xsl"?> <eres_konspekty> <przedmiot id="kbd2" wersja="1"> Prolog <slowo_kluczowe>bazy danych</slowo_kluczowe> - Wersja XML (obowiązkowa) i strona kodowa (opcjonalna) <slowo_kluczowe>oracle</slowo_kluczowe> * <konspekt> - Odwołanie do DTD (opcjonalne) <czesc_konspektu id="streszczenie"> - Odwołanie do arkusza stylistycznego (opcjonalne) * <P> Monograficzny przedmiot poświęcony bazie danych i narzędziom Oracle. </P> * Instrukcje przetwarzania </czesc_konspektu> <czesc_konspektu id="treść przedmiotu"> <P> Omawiane są podstawowe zagadnienia związane z wykorzystaniem RDBMS Oracle7 i <I>Oracle8</I> oraz administrowaniem nimi.</p> <P> Przedstawiane są także narzędzia do budowy aplikacji: </P> <UL> <LI> Oracle Forms, </LI> <LI> Oracle Reports. </LI> </UL> </czesc_konspektu> </konspekt> </przedmiot> </eres_konspekty>

11 Dokument w XML przykład <?xml version="1.0" encoding="iso "?> <!DOCTYPE eres_konspekty SYSTEM "konspekty.dtd"> <?xml-stylesheet type="text/xsl" href="konspekty.xsl"?> <eres_konspekty> <przedmiot id="kbd2" wersja="1"> <slowo_kluczowe>bazy danych</slowo_kluczowe> <slowo_kluczowe>oracle</slowo_kluczowe> <konspekt> <czesc_konspektu id="streszczenie"> <P> Monograficzny przedmiot Elementypoświęcony bazie danych i narzędziom Oracle. </P> - Element główny dokładnie jeden </czesc_konspektu> - Elementy podrzędne <czesc_konspektu id="treść - Jawne przedmiotu"> zamykanie znaczników <P> Omawiane są podstawowe zagadnienia związane z wykorzystaniem RDBMS Oracle7 i <I>Oracle8</I> oraz administrowaniem nimi.</p> <P> Przedstawiane są także narzędzia do budowy aplikacji: </P> <UL> <LI> Oracle Forms, </LI> <LI> Oracle Reports. </LI> </UL> </czesc_konspektu> </konspekt> </przedmiot> </eres_konspekty>

12 Dokument w XML przykład <?xml version="1.0" encoding="iso "?> <!DOCTYPE eres_konspekty SYSTEM "konspekty.dtd"> <?xml-stylesheet type="text/xsl" href="konspekty.xsl"?> <eres_konspekty> <przedmiot id="kbd2" wersja="1"> <slowo_kluczowe>bazy danych</slowo_kluczowe> <slowo_kluczowe>oracle</slowo_kluczowe> <konspekt> <czesc_konspektu id="streszczenie"> <P> Monograficzny przedmiot poświęcony bazie danych i narzędziom Oracle. </P> </czesc_konspektu> Atrybuty <czesc_konspektu id="treść przedmiotu"> - Uzupełniają elementy <P> Omawiane są podstawowe zagadnienia związane z wykorzystaniem RDBMS Oracle7 i <I>Oracle8</I> - Wartości oraz ujęte administrowaniem w cudzysłów nimi.</p> <P> Przedstawiane są także narzędzia do budowy aplikacji: </P> <UL> <LI> Oracle Forms, </LI> <LI> Oracle Reports. </LI> </UL> </czesc_konspektu> </konspekt> </przedmiot> </eres_konspekty>

13 Plan prezentacji Co to jest XML Dokument w XML DTD i encje Składniki XML: łączniki, przestrzenie nazw Poprawność dokumentu XML Zalety i wady XML Ważniejsze zastosowania XML Rola i pozycja XML

14 Co może towarzyszyć dokumentowi XML? Definicja dokumentu Arkusze stylistyczne (style-sheets) Określa precyzyjnie składnię dokumentu deklaracje elementów określenie ich poprawnego zawierania i następstwa deklaracje atrybutów elementów definicje typów danych (tylko schematy) definicje encji (tylko DTD) Funkcja określenie sposobu prezentacji dla elementów i atrybutów transformacje (tylko XSL), np. XML HTML XML XML możliwe różne prezentacje tego samego dokumentu w zależności od środowiska Języki DTD (Document Type Definition) schematy (XML Schema) Języki XSL (extensible Style Language) CSS (Cascading Style Sheets)

15 DTD (Document Type Definition) Rola Definiowanie składni dokumentu XML W XML istnienie DTD jest nieobowiązkowe! Składnia Pochodzi wprost z SGML Nie jest w XML nie można użyć narzędzi XML-owych Zawartość Deklaracje elementów Określenie ich poprawnego zawierania i następstwa Deklaracje atrybutów elementów Deklaracje identyfikatorów i odwołań Definicje encji Deklaracje notacji sposób obsługi pewnych formatów danych Sekcje warunkowe Podobna koncepcyjnie do klasycznych notacji formalnych definicji składni, np. BNF (Backus-Naur Form) Łatwa do opanowania Dostosowana głównie do definiowania struktur dokumentów tekstowych Niedostosowana do definiowania struktur danych: brak definicji typów danych (wszystko jest tekstem) słabo zrealizowane identyfikatory i odwołania

16 Przykład DTD <!ELEMENT eres_konspekty (przedmiot)+ > <!ELEMENT przedmiot ((slowo_kluczowe)*, konspekt) > <!ELEMENT slowo_kluczowe (#PCDATA) > <!ELEMENT konspekt (czesc_konspektu)+ > <!ELEMENT czesc_konspektu (P UL)+ > <!ELEMENT P (#PCDATA I)* > <!ELEMENT I (#PCDATA) > <!ELEMENT UL (LI)+ > <!ELEMENT LI (#PCDATA) > <!ATTLIST przedmiot id ID #REQUIRED wersja CDATA #IMPLIED > <!ATTLIST czesc_konspektu id ID #REQUIRED >

17 Przykład DTD, c.d. <!ELEMENT eres_konspekty (przedmiot)+ > <!ELEMENT przedmiot ((slowo_kluczowe)*, konspekt) > <!ELEMENT slowo_kluczowe (#PCDATA) > <!ELEMENT konspekt (czesc_konspektu)+ > <!ELEMENT czesc_konspektu (P UL)+ > <!ELEMENT P (#PCDATA I)* > <!ELEMENT I (#PCDATA) > <!ELEMENT UL (LI)+ > <!ELEMENT LI Definicje elementów (#PCDATA) > - Definiują nazwy elementów <!ATTLIST czesc_konspektu - Określają zawieranie id i następstwo: ID #REQUIRED <!ATTLIST przedmiot? id ID #REQUIRED element opcjonalny > + * wersja CDATA powtórzenia #IMPLIED(obowiązkowe, > opcjonalne) alternatywa - Określają zawartość elementu: #PCDATA tekstowa (Parsed Character Data) EMPTY pusta (tylko znacznik i atrybuty) ANY dowolna

18 Przykład DTD, c.d. Definicje atrybutów - Definiują nazwy atrybutów - Określają typ atrybutu: <!ELEMENT eres_konspekty CDATA (przedmiot)+ tekstowy (Character Data) > ID identyfikator (unikalny w ramach dokumentu) <!ELEMENT przedmiot ((slowo_kluczowe)*, konspekt) > IDREF referencja <!ELEMENT slowo_kluczowe (#PCDATA) > <!ELEMENT konspekt - Określają obowiązkowość (czesc_konspektu)+ atrybutów: > #REQUIRED obowiązkowy <!ELEMENT czesc_konspektu #IMPLIED (P UL)+ opcjonalny bez wartości > domyślnej <!ELEMENT P #FIXED(#PCDATA I)* ustalony (niezmienny) > <!ELEMENT I - Podają (#PCDATA) > <!ELEMENT UL - wartości (LI)+ domyślne atrybutów opcjonalnych > <!ELEMENT LI - listy dopuszczalnych (#PCDATA) wartości (typy wyliczeniowe) > <!ATTLIST czesc_konspektu id ID #REQUIRED > <!ATTLIST przedmiot id ID #REQUIRED wersja CDATA #IMPLIED >

19 Encje Encje (jednostki, entities) Rodzaj makrodefinicji Encje ogólne Stosowane do włączania części dokumentu (np. powtarzalnych, z plików zewnętrznych) umieszczania znaków specjalnych w dokumencie Odwołanie do encji ogólnej: &nazwa; Encje predefiniowane: znaki specjalne XLM (tylko!): < > " &apos; & referencje znakowe, np. (Unicode) Encje zewnętrzne i wewnętrzne Encje wewnętrzne są definiowane w DTD Encje zewnętrzne odwołują się do plików (słowo SYSTEM) Encje parametryczne Wykorzystanie powtarzające się części DTD parametryzacja DTD Do użycia w DTD odwołanie: %nazwa; Definiowane w DTD <!ENTITY % nazwa "tekst"> lub <!ENTITY % nazwa SYSTEM "URL"> Encje definiowane w DTD: <!ENTITY nazwa "tekst"> lub <!ENTITY nazwa SYSTEM "URL">

20 DTD zewnętrzne i wewnętrzne DTD zewnętrzne Definicja typu umieszczona w osobnym dokumencie Odwołanie do niego w deklaracji DTD Przykład: <!DOCTYPE eres_konspekty SYSTEM "konspekty.dtd"> Nazwa DTD musi być taka sama, jak nazwa elementu głównego dokumentu! DTD wewnętrzne Treść DTD umieszczona w prologu dokumentu Przykład: <!DOCTYPE eres_konspekty [ <!ELEMENT eres_konspekty... > Rozwiązanie mieszane Część DTD w prologu, część w osobnym pliku Zastosowanie np.: do uzupełniania wspólnego DTD lokalnymi definicjami encji do parametryzowania DTD Encji parametrycznej zdefiniowanej w wewnętrznej części mieszanego DTD można użyć do parametryzowania zewnętrznej części DTD Przykład: <!DOCTYPE eres_konspekty SYSTEM "konspekty.dtd" [ <!ENTITY... > ]> <!ELEMENT przedmiot... >... ]>

21 Plan prezentacji Co to jest XML Dokument w XML DTD i encje Składniki XML: łączniki, przestrzenie nazw itd. Poprawność dokumentu XML Zalety i wady XML Ważniejsze zastosowania XML Rola i pozycja XML

22 Dokument inne składniki Instrukcje przetwarzania Służą do sterowania aplikacjami przetwarzającymi Składnia <?nazwa_aplikacji atrybuty?> Komentarze Składnia <!-- tekst komentarza --> Zawartość: cokolwiek oprócz -- Nazwy rozpoczynające się od xml zastrzeżone Sekcje CDATA W tekście wewnątrz sekcji CDATA nie są rozpoznawane znaki specjalne XML Stosowane do umieszczania fragmentów zawierających dużo znaków specjalnych Przetwarzanie białych znaków Atrybut predefiniowany xml:space wartość "preserve" powoduje zachowywanie nadmiarowych białych znaków przez programy przetwarzające Składnia <![CDATA[ tekst ]]>

23 Adresy zasobów Adresy bazowe dla URL Atrybut predefiniowany xml:base ustala URL odniesienia dla odwołań w elemencie, w którym jest określony w elementach podrzędnych pozwala na użycie adresów względnych URI (Unified Resource Identifier) Rozszerzony URL adres sieciowy zapytanie identyfikator fragmentu (XPointer) Lub URN URN (Unified Resource Name) Jednoznaczna nazwa zasobu, bez określania jego lokalizacji Np. urn:oracle-xsql

24 Motywacja Powstaje wiele słowników dziedzinowych Autorzy dokumentów powinni móc korzystać z wielu słowników i dodawać własne Powstaje ryzyko konfliktów nazw Rozwiązanie przestrzenie nazw (XML namespaces) Nazwy elementów lub atrybutów poprzedzane prefiksem przestrzeni nazw i dwukropkiem Przestrzenie nazw Przykład <eres_konspekty xmlns="http://www.elka.pw.edu.pl/eres" Definiowanie przestrzeni nazw Przez podanie specjalnego atrybutu xmlns:prefiks_przestrzeni Wartość tego atrybutu określa URI przestrzeni nazw URN słownika URL domeny zarządzającej słownikiem Nazwą przestrzeni jest jej URI, a nie prefiks! Przestrzeń zdefiniowana w elemencie nadrzędnym może być wykorzystywana w podrzędnych W jednym dokumencie można użyć wielu przestrzeni nazw xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.elka.pw.edu.pl/eres konspekty.xsd"> Przestrzeń domyślna bez prefiksu Przestrzeń pomocnicza z prefiksem xsi Użycie prefiksu: przed nazwą elementu lub atrybutu

25 Łączniki XLink łączniki między dokumentami Łączniki znaczniki dowolnie zdefiniowane przez użytkownika mające ustalone w specyfikacji atrybuty z przestrzeni nazw XLink Lokalizatory xlink:href adresy URI mogą zawierać identyfikator fragmentu (XPointer) Typy łączenia xlink:type proste (simple) jak A z HTML złożone (extended), np. z wieloma lokalizatorami Zachowania (behaviors) xlink:show (replace embed new) xlink:actuate (onload onrequest) XPointer adresowanie w dokumencie Adresowanie oparte na kontekście w drzewie elementów W dokumencie nie są konieczne żadne specjalne oznaczenia Używa rozszerzonych wyrażeń XPath do adresowania elementów Możliwe jest wskazanie punktu lub zakresu

26 Internacjonalizacja Przetwarzanie znaków narodowych Przetwarzanie XML na wejściu i wyjściu wybrane strony kodowe wewnętrzne przetwarzanie w Unicode konwersje wejściu i wyjściu Określenie strony kodowej dokumentu domyślnie UTF-8 każdą inną stronę kodową trzeba koniecznie podać w prologu dokumentu atrybut encoding napotkanie znaku spoza zadeklarowanej strony kodowej powoduje błąd typowe strony kodowe dla języka polskiego: ISO windows-1250 Określenie języka Atrybut predefiniowany xml:lang określa język zawartości elementu Wartości: dwuliterowe skróty ISO-639 (np. pl, en) Może być użyty przy przetwarzaniu, np. do prezentowania tylko informacji w wybranym języku do sterowania przenoszeniem wyrazów w czasie formatowania

27 Plan prezentacji Co to jest XML Dokument w XML DTD i encje Składniki XML: łączniki, przestrzenie nazw itd. Poprawność dokumentu XML Zalety i wady XML Ważniejsze zastosowania XML Rola i pozycja XML

28 Poprawność dokumentu w XML Dokument dobrze sformułowany (well-formed) Warunki niepusta zawartość wszystkie konstrukcje poprawne w sensie well-formed (w/g specyfikacji języka) wszystkie konstrukcje rozpoczęte muszą być jawnie zakończone każda konstrukcja zawarta w innej musi być w niej zawarta w całości tylko jedna konstrukcja (element główny) nie zawarta w żadnej innej brak odwołań do niezdefiniowanych encji Nie musi mieć DTD (dokument standalone) Mimo braku DTD może być wyświetlany przez przeglądarki Przeznaczenie: tylko wyświetlanie Dokument prawidłowy (valid) Warunki jest well-formed powiązany z istniejącym DTD lub schematem pełna zgodność zawartości z DTD lub schematem wszystkie konstrukcje poprawne w sensie valid (wg specyfikacji języka) Przeznaczenie: przetwarzanie Do przetwarzania na ogół potrzebny jest dostęp do DTD lub schematu

29 XML a HTML XML Przeznaczenie metajęzyk służy do definiowania języków Realizacja podzbiór SGML brak predefiniowanych znaczników Składnia element niepusty musi być jawnie zakończony element pusty musi być oznaczony /> wrażliwy na wielkość liter w nazwach elementów i atrybutów wartości atrybutów muszą być ujęte w cudzysłów HTML Przeznaczenie gotowy język służy do zapisu stron WWW Realizacja konkretyzacja SGML zestaw predefiniowanych znaczników Składnia niektóre elementy niepuste nie muszą być zakończone jawnie elementy puste nie muszą być wyróżniane niewrażliwy na wielkość liter wartości atrybutów mogą, ale nie muszą być ujęte w cudzysłów Należy się spodziewać, iż rozwój HTML będzie postępował w kierunku zaostrzenia reguł składni, jak w XML

30 Plan prezentacji Co to jest XML Dokument w XML DTD i encje Składniki XML: łączniki, przestrzenie nazw itd. Poprawność dokumentu XML Zalety i wady XML Ważniejsze zastosowania XML Rola i pozycja XML

31 Cechy XML Zalety XML Sformalizowany zapis informacji Uniwersalność Duża siła wyrazu Elastyczność Możliwość zróżnicowanej prezentacji Łatwość przetwarzania Czytelność Dostosowanie do specyfiki przetwarzania w sieci Web Internacjonalizacja Niewygórowane koszty Względna prostota

32 Cechy XML Zalety XML Sformalizowany zapis informacji Uniwersalność Duża siła wyrazu Reprezentacja informacji choć tekstowa umożliwia bezstratne odczytanie informacji, dokładną weryfikację poprawności i łatwe dalsze przetwarzanie. Elastyczność Możliwość zróżnicowanej prezentacji Łatwość przetwarzania Czytelność Dostosowanie do specyfiki przetwarzania w sieci Web Internacjonalizacja Niewygórowane koszty Względna prostota

33 Cechy XML Zalety XML Sformalizowany zapis informacji XML pozwala zapisać wszelkie informacje, które mogą być wyrażone Uniwersalność tekstowo, w sposób całkowicie niezależny od platformy sprzętowej i Duża siła wyrazu programowej. Elastyczność Możliwość zróżnicowanej prezentacji Łatwość przetwarzania Czytelność Dostosowanie do specyfiki przetwarzania w sieci Web Internacjonalizacja Niewygórowane koszty Względna prostota

34 Cechy XML Zalety XML Sformalizowany zapis informacji Uniwersalność Duża siła wyrazu Elastyczność Za pomocą XML można zapisać nawet bardzo złożone struktury informacji. Możliwość zróżnicowanej prezentacji Łatwość przetwarzania Czytelność Dostosowanie do specyfiki przetwarzania w sieci Web Internacjonalizacja Niewygórowane koszty Względna prostota

35 Cechy XML Zalety XML Sformalizowany zapis informacji Uniwersalność Duża siła wyrazu Elastyczność Możliwość zróżnicowanej prezentacji Łatwość przetwarzania Struktura informacji jest łatwa do rozszerzania i dostosowywania, z możliwością wykorzystania struktur wcześniej zdefiniowanych. Czytelność Dostosowanie do specyfiki przetwarzania w sieci Web Internacjonalizacja Niewygórowane koszty Względna prostota

36 Cechy XML Zalety XML Sformalizowany zapis informacji Uniwersalność Duża siła wyrazu Elastyczność Możliwość zróżnicowanej prezentacji Łatwość przetwarzania Czytelność Dzięki zastosowaniu arkuszy stylistycznych ten sam dokument może być różnorodnie prezentowany w zależności od potrzeb i możliwości. Dostosowanie do specyfiki przetwarzania w sieci Web Internacjonalizacja Niewygórowane koszty Względna prostota

37 Cechy XML Zalety XML Sformalizowany zapis informacji Uniwersalność Duża siła wyrazu Elastyczność Możliwość zróżnicowanej prezentacji Łatwość przetwarzania Czytelność Osiągnięta dzięki prostej i regularnej składni oraz ustandaryzowanym narzędziom. Dostosowanie do specyfiki przetwarzania w sieci Web Internacjonalizacja Niewygórowane koszty Względna prostota

38 Cechy XML Zalety XML Sformalizowany zapis informacji Uniwersalność Duża siła wyrazu Elastyczność Możliwość zróżnicowanej prezentacji Łatwość przetwarzania Czytelność Dokumenty XML są zrozumiałe dla człowieka, każdy dokument Dostosowanie do specyfiki przetwarzania niesie bowiem w sieci metainformację Web w postaci znaczników sam się Internacjonalizacja opisuje. Ułatwia to posługiwanie się dokumentami, uruchamianie oprogramowania itd. Niewygórowane koszty Względna prostota

39 Cechy XML Zalety XML Sformalizowany zapis informacji Uniwersalność Duża siła wyrazu Elastyczność Możliwość zróżnicowanej prezentacji Łatwość przetwarzania Czytelność Dostosowanie do specyfiki przetwarzania w sieci Web Internacjonalizacja Niewygórowane koszty Względna prostota Szczegółowe rozwiązania XML są dostosowane do przetwarzania w Sieci. Popularne narzędzia internetowe (przeglądarki, serwery aplikacyjne itd.) wyposażono w rozwiązania (parsery, procesory XSL itp.) ułatwiające użycie XML.

40 Cechy XML Zalety XML Sformalizowany zapis informacji Uniwersalność Duża siła wyrazu Elastyczność Możliwość zróżnicowanej prezentacji Łatwość przetwarzania Czytelność Dostosowanie do specyfiki przetwarzania w sieci Web Internacjonalizacja Niewygórowane koszty Względna prostota W XML można używać wielu różnych stron kodowych, a przetwarzanie XML odbywa się wewnętrznie z użyciem Unicode.

41 Cechy XML Zalety XML Sformalizowany zapis informacji Uniwersalność Duża siła wyrazu Elastyczność Możliwość zróżnicowanej prezentacji Łatwość przetwarzania Czytelność Dostosowanie do specyfiki przetwarzania w sieci Web Internacjonalizacja Niewygórowane koszty Względna prostota Jest to standard otwarty, nie wymagający licencji. Do przetwarzania i prezentacji dokumentów XML można użyć standardowego (często darmowego) oprogramowania. Można zatem tworzyć rozwiązania bazujące na XML nie ponosząc wielkich nakładów.

42 Cechy XML Zalety XML Sformalizowany zapis informacji Uniwersalność Duża siła wyrazu Elastyczność Możliwość zróżnicowanej prezentacji Łatwość przetwarzania Czytelność Dostosowanie do specyfiki przetwarzania w sieci Web Internacjonalizacja Niewygórowane koszty Względna prostota Idea języków znakowania jest powszechnie znana, a nawet zaawansowane rozwiązania są stosunkowo łatwe do zrozumienia.

43 Cechy XML Główne wady XML Rozwlekłość zapisu Ograniczona wydajność przetwarzania Niedostatki implementacji standardów XML-owych

44 Cechy XML Decyduje o niej znaczny narzut na znaczniki niosące metainformację. Nie jest to na ogół wadą istotną, np. przy Rozwlekłość zapisu przesyłaniu informacji stosować można kompresję, która jest zwykle bardzo efektywna. Ograniczona wydajność przetwarzania Główne wady XML Niedostatki implementacji standardów XML-owych

45 Cechy XML Główne wady XML Rozwlekłość zapisu Ograniczona wydajność przetwarzania Niedostatki implementacji standardów XML-owych Wynika zarówno z rozwlekłości plików jak ze stosowania uniwersalnych narzędzi. Dla małych dokumentów ograniczenia wydajności zwykle nie stanowią problemu, dla dokumentów większych stosowanie parserów typu SAX daje na ogół wydajność dostatecznie dobrą.

46 Cechy XML Główne wady XML Rozwlekłość zapisu Ograniczona wydajność przetwarzania Niedostatki implementacji standardów XML-owych Zwłaszcza niepełna implementacja standardów w przeglądarkach WWW powoduje, że XML nie może wciąż jeszcze być stosowany jako podstawowy język wymiany informacji w sieci Web.

47 Plan prezentacji Co to jest XML Dokument w XML DTD i encje Składniki XML: łączniki, przestrzenie nazw itd. Poprawność dokumentu XML Zalety i wady XML Ważniejsze zastosowania XML Rola i pozycja XML

48 Ważniejsze zastosowania XML Tworzenie stron internetowych WWW, WAP, e-biznes B2C Decydujące zalety: uniwersalność, zróżnicowana prezentacja, łatwość przetwarzania, dostosowanie do specyfiki WWW Kluczowe technologie: XSLT Przykłady: XHTML, WML Multimedia Grafika wektorowa, integracja multimediów itp. Decydujące zalety: duża siła wyrazu, dostosowanie do specyfiki WWW Przykłady: SVG, SMIL, Voice-ML Reprezentacja informacji semistrukturalnej Informacje o strukturze zmiennej, słabo ustalonej, częściowo nieistotnej itp. reprezentacja złożonych dokumentów tekstowych zapis w bazach danych Decydujące zalety: sformalizowany zapis, duża siła wyrazu, elastyczność Kluczowe technologie: DTD/XML-Schema, XSLT, XSL-FO

49 Ważniejsze zastosowania XML Specjalistyczne struktury danych Informacje naukowe, ekonomiczne itp.; specjalistyczne dialekty komunikacja w sferze publicznej struktury ad-hoc Decydujące zalety: sformalizowany zapis, uniwersalność, siła wyrazu, elastyczność, łatwość przetwarzania Kluczowe technologie: DTD/XML-Schema, XSLT Przykłady: MathML, CML Elektroniczna wymiana danych (EDI) Wymiana danych (zwykle przez Internet) między systemami informacyjnymi e-biznes B2B integracja systemów heterogenicznych Decydujące zalety: sformalizowany zapis, siła wyrazu, łatwość przetwarzania, niewygórowane koszty Kluczowe technologie: XML-Schema, DOM/SAX Przykład: XML/EDI, np. ebxml, MS BizTalk

50 Ważniejsze zastosowania XML Konfiguracja oprogramowania Pliki konfiguracyjne oprogramowania Decydujące zalety: sformalizowany zapis, łatwość przetwarzania, czytelność, prostota Przykład: EJB, XSQL Opis zasobów Protokoły komunikacyjne Protokoły wymiany komunikatów, zdalnego wywoływania procedur itp. Decydujące zalety: sformalizowany zapis, łatwość przetwarzania Przykłady: SOAP, XML-RPC, Web-DAV Deskryptory zasobów sieciowych, oprogramowania itp. Decydujące zalety: sformalizowany zapis, elastyczność, łatwość przetwarzania Przykłady: RDF, WSDL Cechy XML najczęściej istotne dla zastosowań: sformalizowany zapis, łatwość przetwarzania

51 Aplikacje XML Aplikacje XML = dialekty XML Powszechnego użycia, np. WML, SVG, XHTML Branżowe/specjalistyczne, np. MathML, CML Tworzone ad hoc

52 Przykłady zastosowań XML EDI (Electronic Data Interchange) XML wydaje się idealnym narzędziem dla elektronicznej wymiany danych czytelny prosty łatwy w przetwarzaniu powszechnie używany Koncepcja XML/EDI: semantyka istniejących standardów EDI składnia XML Wiele propozycji standaryzacyjnych Handel elektroniczny (e-commerce) XML jest bardzo dobrym narzędziem do wymiany danych w handlu elektronicznym proste i łatwe do wykorzystania (darmowe oprogramowanie) wspierane przez wielkich producentów systemów ERP odpowiednie do użycia także przez małe firmy Zastosowania B2C i B2B XML szczególnie cenny w B2B: łatwe dalsze przetwarzanie informacji

53 EDI przykład Przykład: Projekt komunikatów XML do gromadzenia danych na temat ochrony zdrowia dane o lekach refundowanych szpitalne statystyczne karty choroby RUM i jego rozszerzenia <?xml version="1.0" encoding="windows-1250"?> <!DOCTYPE mz:komunikat SYSTEM "LEK.dtd" > <mz:komunikat xmlns:mz="http://www.mz.gov.pl/csioz/start/xml" typ="lek" wersja="1.00" > <mz:dokument id="xxxidaxprs" nr="xxxidairrs" tryb="c" data="xxxidawurs" > <mz:nadawca > <mz:podmiot typ="0" symbol="xxxida2cvs" /> </mz:nadawca> <mz:odbiorca > <mz:podmiot typ="0" symbol="xxxida2cvs" /> </mz:odbiorca> <mz:sprawozdanie symbol="xxxidav2rs" data="xxxida53rs" > <mz:okres typ="xxxida0ass" rok="xxxidaicss" nr="xxxidasdss" data-od="xxxida2ess" data-do="xxxidakgss" /> <mz:komorka-org regon="xxxida1evs" nr="000" /> </mz:sprawozdanie> <mz:pozycja id="xxxidagnss" tryb="d" > <mz:swiadczenie typ="0" > <mz:zlecenie data="xxxidadyss" >...

54 XML w analizie systemów informacyjnych Motywacja Dotyczy wczesnych etapów analizy Brak narzędzi, np. typu CASE (jeszcze nie wybrane) Potrzebne modele na ogół bazują na opisie słownym ale powinny być możliwie sformalizowane Potrzebne różne formy prezentacji wyników tabele zestawienia różne przekroje tych samych informacji Potrzebne eleganckie formatowanie raporty drukowane strony WWW Typowe modele Planowanie analizy analiza wymagań plan działań i podział zadań projekt raportu Słowniki pojęć, skrótów, instytucji i osób Wykazy spotkań i notatki z nich (minutes) Budowanie modeli Tworzenie specjalizowanych struktur w XML Wielokrotne użycie struktur z poprzednich projektów struktur uniwersalnych typowych elementów raportów

55 XML w analizie s.i. przykłady Planowanie zadań analizy systemów informacyjnych Analiza procesów biznesowych do celów eksploracji danych (data mining) sformalizowany spis procesów spis i ocena zasobów danych zależności między danymi a procesami ocena podatności procesów na eksplorację danych Analizy wymagań funkcjonalnych i techniczno-organizacyjnych dla internetowych systemów informacyjnych sformalizowany wykaz wymagań warianty i klasyfikacje projekty systemu promocji eksportu sieci innowacyjnej w dziedzinie nowych technologii portalu samorządu gospodarczego zautomatyzowane tworzenie rankingów

56 XML w analizie s.i. przykłady, c.d. Zautomatyzowane tworzenie dokumentacji - Zaprojektowanie struktur XML - Wypełnienie struktur treścią - Napisanie arkuszy XSL -formatowanie - zestawienia, wyciągi, rankingi - Przetwarzanie XSL: -XML HTML strony WWW -XML HTML RTF raporty robocze -XML T E X lub FO profesjonalne publikacje <postulat id="tz.o.3"> <nazwa>xml</nazwa> <opis> Język XML pozwala prezentować w WWW informację z zachowaniem jej struktury. Informacja pobrana w tej formie jest wyświetlana w sposób podobny do "zwykłych" stron WWW, ale może być łatwo dalej przetwarzana przez komputery, np. umieszczana we własnych bazach danych odbiorcy. </opis> <wersja ref="rek"> W miarę możliwości informacja z repozytorium &czego; powinna być prezentowana w dwóch wersjach: w HTML oraz w XML. </wersja> <wersja ref="max"> Należy założyć, iż w przyszłości -- w miarę popularyzowania się XML -- do prezentowania danych strukturalnych powinien przede wszystkim stosowany język XML, a nie HTML. <P/> Należy także skłonić dostawców danych, by w przyszłości dostarczali swoje dane w XML. </wersja> </postulat>

57 Wymiana danych między bazami Użycie XML do integracji baz Przykład 1: Dealer dystrybutor heterogenicznych rozproszonych systemy w tanich technologiach u dealerów duża baza zbiorcza u dystrybutora Przykład 2: Baza konstrukcji detektora ALICE A Large Ion Collider Experiment na LHC (Large Hadron Collider) w CERN konstrukcja wielkiego urządzenia pomiarowego rozproszona baza danych Centralna b.d. w licznych laboratoriach na całym świecie bazy satelickie na oprogramowaniu open source baza centralna na Oracle Satelickie b.d.

58 Plan prezentacji Co to jest XML Dokument w XML DTD i encje Składniki XML: łączniki, przestrzenie nazw itd. Poprawność dokumentu XML Zalety i wady XML Ważniejsze zastosowania XML Rola i pozycja XML

59 XML w systemach z bazami danych XML w wymianie danych XML jest bardzo dobrym środkiem wymiany danych między bazami danych łatwy w przetwarzaniu zawiera metadane łatwo rzutować struktury relacyjne na XML łatwa kontrola poprawności Szczególnie cenny w systemach heterogenicznych łatwość transformacji danych XML jako format składowania danych Właściwe rozwiązanie dla danych semistrukturalnych bez bardzo złożonych lub bardzo generycznych struktur relacyjnych Odpowiednie np. dla struktur często zmiennych dokumentów tekstowych z wyraźnie określoną strukturą Składowanie XML w relacyjnych b.d. Pełna strukturalizacja do tabel relacyjnych sztywna łatwe w przeszukiwaniu i przetwarzaniu XML jako tekst (CLOB) elastyczne trudne w przeszukiwaniu i przetwarzaniu Reprezentacja hybrydowa kompromis łączący zalety i wady poprzednich metod Specjalny typ dla XML daje nadzieję na połączenie zalet poprzednich metod Specjalne XML-owe bazy danych Na razie raczej do zastosowań niszowych

60 Standaryzacja XML Organizacja standaryzacyjna Standaryzacją XML zajmuje się World Wide Web Consortium (W3C) Wydawane są tzw. rekomendacje, stanowiące końcowy wynik procesu standaryzacji Stan prac standaryzacyjnych ważniejsze rekomendacje XML i DTD Extensible Markup Language (XML) 1.0, Przestrzenie nazw Namespaces in XML, 1999 XML Schema XML Schema Parts 0-2: Primer, Structures, Datatypes, 2001 XSL i FO XSL Transformations (XSLT) 1.0, 1999 XML Path Language (XPath) 1.0, 1999 Associating Style Sheets with XML Documents Version 1, 1999 Extensible Stylesheet Language (XSL) Version 1.0, 2001 Łączniki XML Linking Language (XLink) Version 1.0, 2001

61 Pozycja i przyszłość XML Pozycja XML Modna technologia Stanowi podstawę wielu innych, intensywnie rozwijanych technologii Prawdopodobnie będzie w przyszłości podstawowym formatem wymiany informacji (także w aplikacjach powszechnego użytku) Prawdopodobnie wyprze HTML z wielu zastosowań Web-owych Pozycja XML wydaje się niezagrożona Przyszłość XML Nowe standardy, np. XQuery Coraz lepsze wsparcie w systemach baz danych Nowe zastosowania: XHTML, systemy biurowe itd.

62 Drzewa DOM Maciej Zakrzewicz

63 Document Object Model (DOM) Document Object Model jest standardem modelowania dokumentów XML przy użyciu struktury drzewa znaczniki XML i ich zawartość są modelowane przez węzły drzewa; zagnieżdżanie znaczników służy za podstawę do konstruowania hierarchii 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 parser DOM Implementacja, adresowanie i przeszukiwanie drzew Document Object Model mogą być realizowane przy użyciu biblioteki DOM API

64 Przykład struktury drzewa DOM <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> <ksiazka> <katalog> isbn=" " <tytul> <cena> <autorzy> <wydawnictwo> <rok> korzeń węzeł elementu XML krok po kroku 43 <autor> <autor> Read Me 2000 węzeł tekstowy węzeł atrybutu Michael J. Young Katarzyna Tryc

65 W3C DOM API: obiekt Node Obiekt klasy/typu Node reprezentuje węzeł w drzewie DOM (węzeł elementu, węzeł tekstowy, itd.) Atrybuty (W3C) attributes tablica atrybutów węzła childnodes tablica węzłów potomnych firstchild pierwszy węzeł potomny lastchild ostatni węzeł potomny nextsibling prawy węzeł sąsiedni nodename nazwa węzła nodetype identyfikator typu węzła nodevalue wartość węzła parentnode węzeł nadrzędny Metody (W3C) 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 previoussibling lewy węzeł sąsiedni

66 W3C DOM API: obiekt NodeList Obiekt klasy/typu NodeList reprezentuje zbiór obiektów typu Node Atrybuty (W3C) length liczba elementów w zbiorze Metody (W3C) item(i) zwraca element i-ty element zbioru

67 W3C DOM API: obiekt Document Obiekt klasy/typu Document modeluje całe drzewo DOM; wszystkie węzły drzewa są jego potomkami Atrybuty (W3C) Metody (W3C) documentelement doctype element najwyższego poziomu w dokumencie DTD lub XML Schema dla dokumentu 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 zbiór węzłów o podanej nazwie

68 W3C DOM API: obiekt Element Obiekt klasy/typu Element modeluje węzeł reprezentujący znacznik XML Atrybuty (W3C) tagname nazwa węzła Metody (W3C) getattribute(s) getattributenode(s) getelementsbytagname(s) removeattribute(s) removeattributenode(n) setattribute(s,s) setattributenode(n) 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

69 W3C DOM API: obiekt Attr i Text Obiekt klasy/typu Attr reprezentuje atrybut znacznika XML w formie tzw. węzła atrybutu; obiekt Attr posiada ogólne atrybuty i metody klasy/typu Node plus poniższe: Atrybuty (W3C) name specified value nazwa atrybutu prawda oznacza, że wartość atrybutu jest ustawiona w dokumencie wartość atrybutu Obiekt klasy/typu Text reprezentuje treść umieszczoną wewnątrz znacznika XML

70 Implementacja W3C DOM: Java i PL/SQL Wszystkie typy DOM zostały zaimplementowane w języku Java jako interfejsy w pakiecie org.w3c.dom (posiadają nazwy jak w specyfikacji W3C) i jako klasy rzeczywiste w pakiecie oracle.xml.parser.v2 (posiadają nazwy z prefiksem XML) Wszystkie typy DOM zostały zaimplementowane w języku PL/SQL jako obiekty pakietu XMLDOM (posiadają nazwy z prefiksem DOM) i DBMS_XMLDOM (od wersji 9.2 DBMS_XMLDOM zaczyna zastępować XMLDOM)

71 Java: funkcje konstrukcji drzew DOM createelement(string) [interfejs Document] tworzy nowy węzeł, reprezentujący znacznik o podanej nazwie; węzeł ten nie wchodzi jeszcze w skład drzewa dokumentu createtextnode(string) [interfejs Document] tworzy nowy węzeł tekstowy; węzeł ten nie wchodzi jeszcze w skład drzewa dokumentu appendchild(node) [interfejs Node] dodaje nowy węzeł jako ostatni węzeł potomny clonenode(boolean) [interfejs Node] wykonuje kopię wskazanego węzła wraz z lub bez jego węzłów potomnych removechild(node) [interfejs Node] odpina wskazany węzeł potomny od jego węzła nadrzędnego replacechild(node, Node) [interfejs Node] odpina istniejący węzeł potomny i na jego miejscu umieszcza nowy węzeł potomny setnodevalue(string) [interfejs Node] nadaje węzłowi wartość tekstową

72 Konstrukcja drzewa DOM w języku Java XMLDocument xmldoc = new XMLDocument(); Node katalognode = xmldoc.createelement("katalog"); xmldoc.appendchild(katalognode); Node ksiazkanode = xmldoc.createelement("ksiazka"); katalognode.appendchild(ksiazkanode); Node tytulnode = xmldoc.createelement("tytul"); ksiazkanode.appendchild(tytulnode); <katalog> <ksiazka> Node tytultext = xmldoc.createtextnode("zaawansowany XML"); tytulnode.appendchild(tytultext); <tytul> <cena> Node cenatext = xmldoc.createtextnode("85"); tytulnode.appendchild(tytultext); Zaawansowany XML 85

73 PL/SQL: funkcje konstrukcji drzew DOM xmldom.createelement(domdocument, Varchar2) tworzy nowy węzeł, reprezentujący znacznik o podanej nazwie; węzeł ten nie wchodzi jeszcze w skład drzewa dokumentu xmldom.createtextnode(domdocument, Varchar2) tworzy nowy węzeł tekstowy; węzeł ten nie wchodzi jeszcze w skład drzewa dokumentu xmldom.appendchild(domdocument, DOMNode) dodaje nowy węzeł jako ostatni węzeł potomny xmldom.clonenode(domdocument, boolean) wykonuje kopię wskazanego węzła wraz z lub bez jego węzłów potomnych xmldom.removechild(domdocument, DOMNode) odpina wskazany węzeł potomny od jego węzła nadrzędnego xmldom.replacechild(domdocument, DOMNode, DOMNode) odpina istniejący węzeł potomny i na jego miejscu umieszcza nowy węzeł potomny xmldom.setnodevalue(domdocument, Varchar2) nadaje węzłowi wartość tekstową xmldom.makenode(domelement) konwertuje typ DOMElement do DOMNode

74 Konstrukcja drzewa DOM w języku PL/SQL declare xmldoc xmldom.domdocument; tmpnode xmldom.domnode; katalogelement xmldom.domelement; ksiazkaelement xmldom.domelement; tytulelement xmldom.domelement; cenaelement xmldom.domelement; cenatext xmldom.domtext; tytultext xmldom.domtext; tytulnode xmldom.domnode; cenanode xmldom.domnode; begin xmldoc := xmldom.newdomdocument; katalogelement := xmldom.createelement(xmldoc, 'katalog'); tmpnode := xmldom.appendchild(xmldom.makenode(xmldoc), xmldom.makenode(katalogelement)); ksiazkaelement := xmldom.createelement(xmldoc, 'ksiazka'); tmpnode := xmldom.appendchild(tmpnode, xmldom.makenode(ksiazkaelement)); <katalog> tytulelement := xmldom.createelement(xmldoc, 'tytul'); tytulnode := xmldom.appendchild(tmpnode, xmldom.makenode(tytulelement)); <ksiazka> cenaelement := xmldom.createelement(xmldoc, 'cena'); cenanode := xmldom.appendchild(tmpnode, xmldom.makenode(cenaelement)); tytultext := xmldom.createtextnode(xmldoc, 'Zaawansowany XML'); <tytul> <cena> tmpnode := xmldom.appendchild(tytulnode, xmldom.makenode(tytultext)); cenatext := xmldom.createtextnode(xmldoc, '85'); Zaawansowany tmpnode := xmldom.appendchild(cenanode, xmldom.makenode(cenatext)); XML 85 end;

75 Java: funkcje nawigacyjne DOM API getdocumentelement() [interfejs Document] zwraca obiekt węzła reprezentującego znacznik najwyższego poziomu getelementsbytagname(string) [interfejs Document] zwraca tablicę obiektów węzłów reprezentujących podany znacznik XML getchildnodes() [interfejs Node] zwraca tablicę obiektów węzłów potomnych (bez węzłow atrybutowych) getattributes() [interfejs Node] zwraca tablicę obiektów potomnych węzłów atrybutowych getnodename() [interfejs Node] zwraca nazwę znacznika dla węzła getnodetype() [interfejs Node] zwraca numeryczny identyfikator typu węzła getnodevalue() [interfejs Node] zwraca treść węzła (tylko dla węzłów tekstowych) getfirstchild() [interfejs Node] - zwraca obiekt pierwszego węzła potomnego (z pominięciem węzłów atrybutowych) getlastchild() [interfejs Node] - zwraca obiekt ostatniego węzła potomnego (z pominięciem węzłów atrybutowych) getnextsibling() [interfejs Node] zwraca obiekt prawego sąsiada węzła (z pominięciem węzłów atrybutowych) getprevioussibling() [interfejs Node] zwraca obiekt lewego sąsiada węzła (z pominięciem węzłów atrybutowych) getparentnode() [interfejs Node] zwraca obiekt węzła nadrzędnego

76 PL/SQL: funkcje nawigacyjne DOM API xmldom.getdocumentelement(domdocument) zwraca obiekt węzła reprezentującego znacznik najwyższego poziomu xmldom.getelementsbytagname(domdocument) zwraca tablicę obiektów węzłów reprezentujących podany znacznik XML xmldom.getchildnodes(domnode) zwraca tablicę obiektów węzłów potomnych (bez węzłow atrybutowych) xmldom.getattributes(domnode) zwraca tablicę obiektów potomnych węzłów atrybutowych xmldom.getnodename(domnode) zwraca nazwę znacznika dla węzła xmldom.getnodetype(domnode) zwraca numeryczny identyfikator typu węzła xmldom.getnodevalue(domnode) zwraca treść węzła (tylko dla węzłów tekstowych) xmldom.getfirstchild(domnode) - zwraca obiekt pierwszego węzła potomnego (z pominięciem węzłów atrybutowych) xmldom.getlastchild(domnode) - zwraca obiekt ostatniego węzła potomnego (z pominięciem węzłów atrybutowych) xmldom.getnextsibling(domnode) zwraca obiekt prawego sąsiada węzła (z pominięciem węzłów atrybutowych) xmldom.getprevioussibling(domnode) zwraca obiekt lewego sąsiada węzła (z pominięciem węzłów atrybutowych) xmldom.getparentnode(domnode) zwraca obiekt węzła nadrzędnego

77 DOM API: funkcje nawigacyjne #document D katalog getdocumentelement() E getnodename() książka E... getchildnodes() getattributes() getchildnodes() isbn A tytul E autorzy E rokwydania E #text T autor E #text T C++ XML 2002 #text T Fabio Arc... getnodevalue() getchildnodes() wydawnictwo E #text Mikom T cena E #text T 36 D DOCUMENT_NODE (9) E ELEMENT_NODE (1) A ATTRIBUTE_NODE (2) T TEXT_NODE (3)

78 Java: prosta nawigacja w drzewie DOM XMLDocument d e=d.getdocumentelement() c=e.getchildnodes() f=c.item(i) f.getnodename(), f.getnodevalue(), f.getnodetype() Odczytaj węzeł reprezentujący znacznik najwyższego poziomu (np. <katalog>) Pobierz listę elementów potomnych W pętli odczytuj kolejne węzły z listy (np. <ksiazka>) Przetwarzaj węzeł g=f.getchildnodes() Pobierz listę elementów potomnych h=g.item(j)... Odczytaj kolejny węzeł z listy (np. <tytul>,<autorzy>,<cena>,<rok>, <wydawnictwo>)

79 Java: nawigacja w drzewie DOM getchildnodes() Wyświetl tytuły wszystkich książek opisanych w dokumencie XML XMLDocument xmldoc;... Node docnode = null, booknode = null, elementnode = null; NodeList docnodelist = null, booknodelist = null; try { docnode = xmldoc.getdocumentelement(); docnodelist = docnode.getchildnodes(); for (int i=0; i<docnodelist.getlength(); i++) { booknode = docnodelist.item(i); booknodelist = booknode.getchildnodes(); for (int j=0; j<booknodelist.getlength(); j++) { elementnode = booknodelist.item(j); if (elementnode.getnodename().equals("tytul")) System.out.println(elementNode.getFirstChild().getNodeValue()); }}} catch (Exception e) {System.out.println(e);} Access Projektowanie baz danych. Księga eksperta 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...

80 Java: nawigacja w drzewie DOM getattributes() Wyświetl wartość pierwszego atrybutu każdego znacznika <ksiazka> w dokumencie XML XMLDocument xmldoc;... Node docnode = null, booknode = null, urlnode = null; NodeList docnodelist = null, booknodelist = null; try { docnode = xmldoc.getdocumentelement(); docnodelist = docnode.getchildnodes(); for (int i=0; i<docnodelist.getlength(); i++) { booknode = docnodelist.item(i); urlnode = booknode.getattributes().item(0); System.out.println(urlNode.getNodeValue()); } } catch (Exception e) {System.out.println(e);} X

81 Java: nawigacja w drzewie DOM getelementsbytagname() Wyświetl tytuły wszystkich książek opisanych w dokumencie XML Access Projektowanie baz danych. Księga eksperta Access 2002/XP PL dla każdego ASP.NET. Vademecum profesjonalisty XMLDocument xmldoc; C++ XML... Dane w sieci WWW Node titlenode = null; Delphi. Almanach NodeList titlenodelist = null;... try { titlenodelist = xmldoc.getelementsbytagname("tytul"); for (int i=0; i<titlenodelist.getlength(); i++) { titlenode = titlenodelist.item(i); System.out.println(titleNode.getFirstChild().getNodeValue()); } } catch (Exception e) {System.out.println(e);} Delphi 6. Praktyka programowania - tom 1,2

82 PL/SQL: prosta nawigacja w drzewie DOM DOMDocument d e=getdocumentelement(d) c=getchildnodes(makenode(e)) f=item(c,i) getnodename(f), getnodevalue(f), getnodetype(f) Odczytaj węzeł reprezentujący znacznik najwyższego poziomu (np. <katalog>) Pobierz listę elementów potomnych W pętli odczytuj kolejne węzły z listy (np. <ksiazka>) Przetwarzaj węzeł g=getchildnodes(f) Pobierz listę elementów potomnych h=item(g,j)... Odczytaj kolejny węzeł z listy (np. <tytul>,<autorzy>,<cena>,<rok>, <wydawnictwo>)

83 PL/SQL: nawigacja w drzewie DOM getchildnodes() Wyświetl tytuły wszystkich książek opisanych w dokumencie XML declare xmldoc xmldom.domdocument; xmlelem xmldom.domelement; booknode xmldom.domnode; booknodelist xmldom.domnodelist; innernode xmldom.domnode; innernodelist xmldom.domnodelist; begin Access Projektowanie baz danych.... Księga eksperta xmlelem := xmldom.getdocumentelement(xmldoc); Access 2002/XP PL dla każdego booknodelist := xmldom.getchildnodes(xmldom.makenode(xmlelem)); ASP.NET. Vademecum profesjonalisty C++ XML for i in 0..xmldom.getLength(bookNodeList) - 1 loop Dane w sieci WWW booknode := xmldom.item(booknodelist, i); Delphi 6. Praktyka programowania - tom innernodelist := xmldom.getchildnodes(booknode); 1,2 Delphi. Almanach for j in 0..xmldom.getLength(innerNodeList) - 1 loop... innernode := xmldom.item(innernodelist, j); if (xmldom.getnodename(innernode) = 'tytul') then dbms_output.put_line(xmldom.getnodevalue(xmldom.getfirstchild(innernode))); end if; end loop; end loop; xmldom.freedocument(xmldoc);... end;

84 PL/SQL: nawigacja w drzewie DOM getattributes() Wyświetl wartość pierwszego atrybutu każdego znacznika <ksiazka> w dokumencie XML declare xmldoc xmldom.domdocument; xmlelem xmldom.domelement; booknode xmldom.domnode; booknodelist xmldom.domnodelist; attrnode xmldom.domnode; begin... xmlelem := xmldom.getdocumentelement(xmldoc); booknodelist := xmldom.getchildnodes(xmldom.makenode(xmlelem)); for i in 0..xmldom.getLength(bookNodeList) - 1 loop booknode := xmldom.item(booknodelist, i); attrnode := xmldom.item(xmldom.getattributes(booknode),0); dbms_output.put_line(xmldom.getnodevalue(attrnode)); end loop; xmldom.freedocument(xmldoc);... end; X

85 declare PL/SQL: nawigacja w drzewie DOM getelementsbytagname() Wyświetl tytuły wszystkich książek opisanych w dokumencie XML xmldoc xmldom.domdocument; titlenode xmldom.domnode; titlenodelist xmldom.domnodelist; begin... titlenodelist := xmldom.getelementsbytagname(xmldoc,'tytul'); for i in 0..xmldom.getLength(titleNodeList) - 1 loop titlenode := xmldom.item(titlenodelist, i); dbms_output.put_line(xmldom.getnodevalue(xmldom.getfirstchild(titlenode))); end loop; xmldom.freedocument(xmldoc);... end; Access Projektowanie baz danych. Księga eksperta 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...

86 Java: konwersja drzewa DOM do pliku XML... try { xmldoc.print(new FileOutputStream("C:\\katalog.xml")); } catch (Exception e) {System.out.println(e);}... <?xml version = '1.0' encoding = 'WINDOWS-1250'?> <katalog> <ksiazka url="http://dot.com/19821.html"> <tytul>c++ XML</tytul> <autorzy> <autor>fabio Arciniegas</autor> </autorzy> <rokwydania>2002</rokwydania> <wydawnictwo>mikom</wydawnictwo> <cena>36</cena> </ksiazka> <ksiazka url="http://dot.com/19854.html">...

87 PL/SQL: konwersja drzewa DOM do pliku XML... xmldom.writetofile(xmldoc,/mydir/a.xml');... <?xml version = '1.0' encoding = 'WINDOWS-1250'?> <katalog> <ksiazka url="http://dot.com/19821.html"> <tytul>c++ XML</tytul> <autorzy> <autor>fabio Arciniegas</autor> </autorzy> <rokwydania>2002</rokwydania> <wydawnictwo>mikom</wydawnictwo> <cena>36</cena> </ksiazka> <ksiazka url="http://dot.com/19854.html">...

88 Język XPath Maciej Zakrzewicz

89 Język XPath XPath to specyfikacja języka służącego do adresowania, odczytywania i przeszukiwania drzew DOM dokumentów XML XPath odgrywa podobną rolę w stosunku do drzew DOM, jak język SQL w stosunku do relacyjnych baz danych XPath stosuje notację przypominającą ścieżki dostępu w systemach plików Wynikiem ewaluacji wyrażenia XPath jest zbiór węzłów spełniających warunki selekcji XPath pozwala stosować dwa rodzaje zapisu wyrażeń: skrócony i pełny; rodzaje te mogą być mieszane

90 Przetwarzanie wyrażeń XPath Wyrażenie XPath

91 Skrócone wyrażenia XPath (1/3) Wybór węzłów w drzewie DOM: wybierz autorów wszystkich książek /katalog/ksiazka/autorzy wybierz wszystkie wydawnictwa dowolnie zagłębione w drzewie //wydawnictwo wybierz wszystkie węzły potomne (dzieci) każdego węzła książka //ksiazka/* Wybór n-tego węzła danego rodzaju: wybierz pierwszego autora każdej książki //autorzy/autor[1] wybierz drugiego autora pierwszej książki //ksiazka[1]//autor[2] wybierz ostatnią książke //ksiazka[last()]

92 Skrócone wyrażenia XPath (2/3) Wybór węzłów, które posiadają podany węzeł potomny: wybierz książki, które posiadają autorów //ksiazka[autorzy] wybierz książki, które napisał Serge Abiteboul //ksiazka[autorzy/autor="serge Abiteboul"] Alternatywa ścieżek: wybierz tytuły książek i wydawnictwa //tytul //wydawnictwo wybierz tytuły książek napisanych przez Serge'a Abiteboula lub Kurta Walla //tytul[..//autor="serge Abiteboul"] //tytul[..//autor="kurt Wall"]

93 Skrócone wyrażenia XPath (3/3) Wybór węzłów zawierających atrybuty: wybierz książkę o numerze ISBN " X" wybierz wszystkie numery ISBN wybierz książki, które posiadają numer ISBN Odczyt treści węzła: odczytaj treści wszystkich tytułów książek //ksiazka/tytul/text()

94 Pełne wyrażenia XPath Wyrażenie ścieżkowe XPath składa się z tzw. kroków rozdzielonych ukośnikami W pełnym zapisie, każdy z kroków może składać się z: specyfikatora współrzędnych (axis), służącego do określenia miejsca w drzewie, począwszy od którego wyszukiwane będą węzły testu węzła (node test), służącego do określenia, które węzły są wyszukiwane w obszarze drzewa określonym przez specyfikator współrzędnych predykatów, dodatkowo zawężających test węzła, powodujących wybór tylko tych węzłów, które spełniają podany warunek Każdy krok pełnego wyrażenia XPath zapisywany jest przy użyciu następującej notacji: spec_współrzędnych::test_węzła[predykaty]

95 Specyfikatory współrzędnych ancestor ancestor-or-self attribute child descendant descendant-or-self following following-sibling parent preceding preceding-sibling self obejmuje wszystkie węzły nadrzędne (ojciec, dziadek, itd.) bieżącego węzła obejmuje bieżący węzeł plus wszystkie węzły nadrzędne obejmuje wszystkie atrybuty bieżącego węzła obejmuje wszystkie węzły bezpośrednio podrzędne bieżącego węzła (dzieci) obejmuje wszystkie węzły podrzędne (syn, wnuk, itd.) bieżącego węzła obejmuje bieżący węzeł plus wszystkie węzły podrzędne obejmuje wszystkie węzły, które w dokumencie następują za węzłem bieżącym obejmuje wszystkie węzły sąsiednie, które w dokumencie następują za węzłem bieżącym obejmuje węzeł bezpośrednio nadrzędny bieżącego węzła (ojciec) obejmuje wszystkie węzły, które w dokumencie następują przed węzłem bieżącym obejmuje wszystkie węzły sąsiednie, które w dokumencie następują przed węzłem bieżącym obejmuje bieżący węzeł

96 Testy węzłów, operatory i funkcje node() text() nazwa dowolny węzeł węzeł tekstowy dowolny element dowolny atrybut węzeł o podanej nazwie =,!=, <, >, <=, >= or, and +, -, *, div, mod count() last() name() position() not() true() false() porównania operatory logiczne operatory arytmetyczne liczba węzłów wybieranych przez wyrażenie liczba porządkowa ostatniego węzła wybieranego przez wyrażenie nazwa węzła wybieranego przez wyrażenie liczba porządkowa węzła wybieranego przez wyrażenie negacja logiczna zwraca prawdę logiczną zwraca fałsz logiczny

97 Funkcje operujące na tekstach concat() konkatenacja tekstów Funkcje - ciąg dalszy contains() starts-with() string() string-length() substring() substring-after() substring-before() translate() test zawierania tekstów sprawdzenie, czy tekst rozpoczyna się od podanego ciągu konwersja do tekstu długość tekstu ekstrakcja podciągu znaków zwraca ciąg znaków znajdujący się za wycinanym podciągiem zwraca ciąg znaków znajdujący się przed wycinanym podciągiem dokonuje zamiany wszystkich wystąpień podanego podciągu Funkcje operujące na liczbach ceiling() floor() number() round() sum() górne domknięcie całkowite dolne domknięcie całkowite konwersja do liczby zaokrąglenie suma zbioru wartości liczbowych

98 Przykłady wyrażeń XPath (1/2) Wybierz książki, których cena nie przekracza 20 zł //ksiazka[cena<=20] Wybierz tytuły książek o cenach w przedziale zł //ksiazka/tytul[../cena>30 and../cena<40] Wybierz książki napisane przez więcej niż dwóch autorów //ksiazka[count(autorzy/autor)>2] Wybierz co drugą książkę //ksiazka[position() mod 2 = 1] Wybierz książki zawierające w tytule słowo XML //ksiazka[contains(tytul,"xml")] Wybierz autorów o imieniu "Stephen" //autor[starts-with(.,"stephen")] Wybierz tytuły złożone z ponad 20 znaków //tytul[string-length(.)>20]

99 Przykłady wyrażeń XPath (2/2) Wybierz książki, których numer ISBN spełnia wzorzec ***7197****** = "7197"] Wybierz wszystkie węzły autorzy oraz wszystkie ich węzły potomne //autorzy/descendant-or-self::* Wybierz wszystkie książki, które w dokumencie znajdują się za książką o numerze ISBN " " Wybierz wszystkie atrybuty pierwszej książki //ksiazka[1]/attribute::* Wybierz cenę książki pt. "XML dla każdego" //ksiazka[tytul="xml dla każdego"]/child::cena

100 Transformacja wyrażeń skróconych do pełnych skrócone // pełne child:: attribute:: self::node() parent::node() /descendant-orself::node() przykład //ksiazka/cena => //ksiazka/child::cena " "] => //katalog/child::ksiazka[attribute::isbn= " "] //tytul[string-length(.)>10] => //tytul[string-length(self::node())>10] //autor/.. => //autor/parent::node() //tytul => /descendant-or-self::node()

101 Funkcje XPath w DOM API Java selectnodes(string) [interfejs Node] zwraca tablicę obiektów węzłów spełniających podaną ścieżkę XPath selectsinglenode(string) [interfejs Node] zwraca pierwszy znaleziony obiekt węzła spełniającego podaną ścieżkę XPath valueof(string) [interfejs Node] zwraca treść pierwszego znalezionego obiektu węzła spełniającego podaną ścieżkę XPath PL/SQL xslprocessor.selectnodes(domnode, Varchar2) zwraca tablicę obiektów węzłów spełniających podaną ścieżkę XPath xslprocessor.selectsinglenode(domnode, Varchar2) zwraca pierwszy znaleziony obiekt węzła spełniającego podaną ścieżkę XPath xslprocessor.valueof(domnode, Varchar2) zwraca treść pierwszego znalezionego obiektu węzła spełniającego podaną ścieżkę XPath

102 Java: zapytania XPath Wyświetl tytuły wszystkich książek wydanych w roku 2002 XMLDocument xmldoc;... Node titlenode = null; NodeList querynodelist = null; 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 try { 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()); } } catch (Exception e) {System.out.println(e);}

103 Java: zapytania XPath Wyświetl tytuły wszystkich książek, których jeden z autorów ma imię "Fabio" XMLDocument xmldoc;... Node titlenode = null; NodeList querynodelist = null; C++ XML XML Kompendium programisty try { querynodelist = xmldoc.selectnodes("//tytul[../autorzy[contains(autor,'fabio')]]"); for (int i=0; i<querynodelist.getlength(); i++) { titlenode = querynodelist.item(i); System.out.println(titleNode.getFirstChild().getNodeValue()); } } catch (Exception e) {System.out.println(e);}

104 Java: zapytania XPath Wyświetl nazwisko pierwszego autora książki pt. "Java i XML" Brett McLaughlin try { System.out.println(xmlDoc.valueOf("//ksiazka[tytul='Java i XML']//autor")); } catch (Exception e) {System.out.println(e);}

105 PL/SQL: zapytania XPath Wyświetl tytuły wszystkich książek wydanych w roku 2002 declare xmldoc xmldom.domdocument; titlenode xmldom.domnode; querynodelist xmldom.domnodelist; begin... querynodelist := xslprocessor.selectnodes(xmldom.makenode(xmldoc), '//ksiazka[rokwydania=''2002'']/tytul'); for i in 0..xmldom.getLength(queryNodeList) - 1 loop titlenode := xmldom.item(querynodelist, i); dbms_output.put_line(xmldom.getnodevalue(xmldom.getfirstchild(titlenode))); end loop; xmldom.freedocument(xmldoc);... end; 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

106 PL/SQL: zapytania XPath Wyświetl tytuły wszystkich książek, których jeden z autorów ma imię "Fabio" declare C++ XML xmldoc xmldom.domdocument; XML Kompendium programisty titlenode xmldom.domnode; querynodelist xmldom.domnodelist; begin... querynodelist := xslprocessor.selectnodes(xmldom.makenode(xmldoc), '//tytul[../autorzy[contains(autor,''fabio'')]]'); for i in 0..xmldom.getLength(queryNodeList) - 1 loop titlenode := xmldom.item(querynodelist, i); dbms_output.put_line(xmldom.getnodevalue(xmldom.getfirstchild(titlenode))); end loop; xmldom.freedocument(xmldoc);... end;

107 PL/SQL: zapytania XPath Wyświetl nazwisko pierwszego autora książki pt. "Java i XML" Brett McLaughlin declare xmldoc xmldom.domdocument; begin... dbms_output.put_line( xslprocessor.valueof(xmldom.makenode(xmldoc), '//ksiazka[tytul=''java i XML'']//autor'));... end;

108 Schematy XML Tomasz Traczyk

109 Plan prezentacji Dlaczego schematy? Przykład schematu XML Schema nieco szczegółów Rola schematów XML

110 Problemy z DTD Zalety DTD Prostota Zgodność z SGML DTD a przetwarzanie danych Do wyświetlania zwykle wystarczy poprawność well formed Do przetwarzania postuluje się poprawność valid DTD wystarcza do definiowania dokumentów tekstowych DTD nie wystarcza do definiowania złożonych struktur danych, np. w EDI handlu elektronicznym B2B i B2C DTD nie daje możliwości sprawdzania poprawności typów danych za pomocą standardowych narzędzi Niedostatki DTD Brak definicji typów danych dla zawartości elementów i dla atrybutów możliwe ograniczenia to tylko: wyliczanie dopuszczalnych wartości atrybutu zasady tworzenia nazw i identyfikatorów zawartość elementu: zawsze tekst Ograniczone możliwości sformalizowanej rozbudowy encje parametryczne Brak możliwości efektywnego wyrażenia identyczności kilku części dokumentu encje w DTD rozwijane przed analizą dokumentu Brak dobrego wykorzystania przestrzeni nazw przedrostki wpisane na sztywno do DTD Język zapisu DTD zupełnie różny od XML nie daje możliwości przetwarzania narzędziami XML-owymi

111 Idea schematów Co to jest schemat? Definicja składni dokumentu XML Stosowana zamiast (lub obok) DTD Zapisana w XML, z użyciem przestrzeni nazw XML Schema Definicja składni dokumentu nie mająca w/w wad spełniająca dodatkowe n/w postulaty Standard W3C (rekomendacja) Sposób definiowania dokumentów, który prawdopodobnie zastąpi DTD

112 Cechy schematów Postulowane cechy schematu Precyzyjne deklarowanie typów danych z wykorzystaniem rozbudowanego słownika typów elementarnych z możliwością definiowania własnych typów Mechanizmy jednokrotnego definiowania powtarzających się fragmentów modelu (np. typów, grup elementów i atrybutów) i wielokrotnego odwoływania się do takich definicji Możliwość definiowania zbiorów elementów, w których liczba wystąpień każdego elementu jest kontrolowana, ale kolejność jest dowolna Możliwość deklarowania niepowtarzalności wybranych wartości w określonej części dokumentu, np. definiowanie kluczy i odwołań do nich Możliwość deklarowania wielu elementów o takiej samej nazwie, ale innym położeniu w dokumencie i innej budowie Mechanizmy pozwalające na kontrolowane rozszerzanie i uszczegóławianie modeli dokumentów; korzystanie z wielu schematów w jednym dokumencie Uwzględnienie przestrzenie nazw; komponowanie nowych modeli z kilku przestrzeni nazw

113 Wady schematów Stałe Większa długość od odpowiadającego DTD Znacznie bardziej skomplikowana składnia Brak możliwości definiowania encji Przejściowe Niewielka popularność Niewielu ekspertów umiejących wykorzystywać schematy Narzędzia nie zawierające wsparcia dla schematów

114 Plan prezentacji Dlaczego schematy? Przykład schematu XML Schema nieco szczegółów Rola schematów XML

115 Przykład dokumentu <?xml version="1.0" encoding="iso "?> <?xml-stylesheet type="text/xsl" href="konspekty.xsl"?> <eres_konspekty xmlns="http://www.elka.pw.edu.pl/eres" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.elka.pw.edu.pl/eres konspekty.xsd"> <przedmiot id="kbd2" wersja="1"> <slowo_kluczowe>bazy danych</slowo_kluczowe> <slowo_kluczowe>oracle</slowo_kluczowe> <konspekt> <czesc_konspektu id="streszczenie"> <P>Monograficzny przedmiot poświęcony bazie danych i narzędziom Oracle.</P> </czesc_konspektu> <czesc_konspektu id="treść"> <P>Omawiane są podstawowe zagadnienia związane z wykorzystaniem RDBMS Oracle8 i Oracle8<I>i</I>, w tym możliwości wykorzystania języka XML.</P> <P>Przedstawiane są także narzędzia Oracle:</P> <UL> <LI> Oracle Forms, </LI> <LI> Oracle Reports, </LI> <LI> Oracle XDK. </LI> </UL> </czesc_konspektu> </konspekt> </przedmiot> </eres_konspekty>

116 Przykład dokumentu, c.d. <?xml version="1.0" encoding="iso "?> <?xml-stylesheet type="text/xsl" href="konspekty.xsl"?> <eres_konspekty xmlns="http://www.elka.pw.edu.pl/eres" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.elka.pw.edu.pl/eres Domyślna przestrzeń nazw konspekty.xsd"> <przedmiot id="kbd2" wersja="1"> Nie wymaga prefiksów w dokumencie <slowo_kluczowe>bazy danych</slowo_kluczowe> <slowo_kluczowe>oracle</slowo_kluczowe> Jest zgodna z przestrzenią docelową schematu <konspekt> <czesc_konspektu id="streszczenie"> <P>Monograficzny przedmiot poświęcony bazie danych i narzędziom Oracle.</P> </czesc_konspektu> <czesc_konspektu id="treść"> <P>Omawiane są podstawowe zagadnienia związane z wykorzystaniem RDBMS Oracle8 i Oracle8<I>i</I>, w tym możliwości wykorzystania języka XML.</P> <P>Przedstawiane są także narzędzia Oracle:</P> <UL> <LI> Oracle Forms, </LI> <LI> Oracle Reports, </LI> <LI> Oracle XDK. </LI> </UL> </czesc_konspektu> </konspekt> </przedmiot> </eres_konspekty>

117 Przykład dokumentu, c.d. <?xml version="1.0" encoding="iso "?> <?xml-stylesheet type="text/xsl" href="konspekty.xsl"?> <eres_konspekty xmlns="http://www.elka.pw.edu.pl/eres" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.elka.pw.edu.pl/eres konspekty.xsd"> <przedmiot id="kbd2" wersja="1"> Przestrzeń nazw XML Schema <slowo_kluczowe>bazy danych</slowo_kluczowe> <slowo_kluczowe>oracle</slowo_kluczowe> Definiuje atrybut xsi:schemalocation <konspekt> <czesc_konspektu id="streszczenie"> <P>Monograficzny przedmiot poświęcony bazie danych i narzędziom Oracle.</P> </czesc_konspektu> <czesc_konspektu id="treść"> <P>Omawiane są podstawowe zagadnienia związane z wykorzystaniem RDBMS Oracle8 i Oracle8<I>i</I>, w tym możliwości wykorzystania języka XML.</P> <P>Przedstawiane są także narzędzia Oracle:</P> <UL> <LI> Oracle Forms, </LI> <LI> Oracle Reports, </LI> <LI> Oracle XDK. </LI> </UL> </czesc_konspektu> </konspekt> </przedmiot> </eres_konspekty>

118 Przykład dokumentu, c.d. <?xml version="1.0" encoding="iso "?> <?xml-stylesheet type="text/xsl" href="konspekty.xsl"?> <eres_konspekty xmlns="http://www.elka.pw.edu.pl/eres" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance xsi:schemalocation="http://www.elka.pw.edu.pl/eres konspekty.xsd"> <przedmiot id="kbd2" wersja="1"> <slowo_kluczowe>bazy danych</slowo_kluczowe> Określenie schematu <slowo_kluczowe>oracle</slowo_kluczowe> Dwa parametry: <konspekt> <czesc_konspektu id="streszczenie"> - nazwa URI przestrzeni nazw <P>Monograficzny przedmiot poświęcony - URL bazie lub nazwa danych pliku i ze narzędziom schematemoracle.</p> </czesc_konspektu> <czesc_konspektu id="treść"> <P>Omawiane są podstawowe zagadnienia związane z wykorzystaniem RDBMS Oracle8 i Oracle8<I>i</I>, w tym możliwości wykorzystania języka XML.</P> <P>Przedstawiane są także narzędzia Oracle:</P> <UL> <LI> Oracle Forms, </LI> <LI> Oracle Reports, </LI> <LI> Oracle XDK. </LI> </UL> </czesc_konspektu> </konspekt> </przedmiot> </eres_konspekty>

119 Przykład schematu <?xml version="1.0" encoding="iso "?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema" targetnamespace="http://www.elka.pw.edu.pl/eres" xmlns="http://www.elka.pw.edu.pl/eres" elementformdefault="qualified" version="1.1"> <xsd:include schemalocation="teksty.xsd"/> <xsd:element name="eres_konspekty">... </xsd:element> <xsd:element name="przedmiot">... </xsd:element> <xsd:element name="czesc_konspektu">... </xsd:element> <xsd:attributegroup name="identyfikatory">... </xsd:attributegroup> </xsd:schema>

120 <?xml version="1.0" encoding="iso "?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema" targetnamespace="http://www.elka.pw.edu.pl/eres" xmlns="http://www.elka.pw.edu.pl/eres" elementformdefault="qualified" version="1.1"> <xsd:include schemalocation="teksty.xsd"/> <xsd:element name="eres_konspekty">... </xsd:element> <xsd:element name="przedmiot">... </xsd:element> Przykład schematu, c.d. Element główny schematu Odwołanie do przestrzeni nazw xsd Określenie docelowej przestrzeni nazw dla dokumentu <xsd:element name="czesc_konspektu"> prefiksem przestrzeni nazw... </xsd:element> <xsd:attributegroup name="identyfikatory">... </xsd:attributegroup> </xsd:schema> Określenie domyślnej przestrzeni nazw dla schematu Żądanie kwalifikowania wszystkich elementów dokumentu

121 Przykład schematu, c.d. <?xml version="1.0" encoding="iso "?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema" targetnamespace="http://www.elka.pw.edu.pl/eres" xmlns="http://www.elka.pw.edu.pl/eres" elementformdefault="qualified" version="1.1"> <xsd:include schemalocation="teksty.xsd"/> <xsd:element name="eres_konspekty">... </xsd:element> <xsd:element name="przedmiot"> Włączenie schematu Włącza schemat zawierający typowe deklaracje i definicje, powtarzające się w innych schematach Tak włączany schemat musi nie określać docelowej... </xsd:element> przestrzeni nazw lub określać ją tak samo jak <xsd:element name="czesc_konspektu"> schemat włączający... </xsd:element> <xsd:attributegroup name="identyfikatory">... </xsd:attributegroup> </xsd:schema>

122 Przykład schematu, c.d. <?xml version="1.0" encoding="iso "?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema" targetnamespace="http://www.elka.pw.edu.pl/eres" xmlns="http://www.elka.pw.edu.pl/eres" elementformdefault="qualified" version="1.1"> <xsd:include schemalocation="teksty.xsd"/> <xsd:element name="eres_konspekty">... </xsd:element> Deklaracje i definicje zawartości <xsd:element name="przedmiot"> Deklaracje określają budowę dokumentu... Definicje określają obiekty pomocnicze, np. typy, </xsd:element> powtarzalne grupy itp. wykorzystywane w <xsd:element name="czesc_konspektu"> deklaracjach... </xsd:element> <xsd:attributegroup name="identyfikatory">... </xsd:attributegroup> </xsd:schema>

123 <xsd:element name="eres_konspekty"> <xsd:annotation> <xsd:documentation>przykład</xsd:documentation> </xsd:annotation> <xsd:complextype> Dokumentacja <xsd:sequence> <xsd:element ref="przedmiot" Opisy w specjalnej strukturze </xsd:sequence> </xsd:complextype> Deklarowanie elementów <xsd:key name="id_wersji"> <xsd:selector xpath="przedmiot"/> <xsd:field <xsd:field </xsd:key> </xsd:element> <xsd:element name="przedmiot"> <!-- Definicja wywoływana po nazwie -->... </xsd:element> minoccurs="1" Zwykłe komentarze maxoccurs="unbounded"/> XML (trudniejsze do przetwarzania!)

124 Deklarowanie elementów, c.d. <xsd:element name="eres_konspekty"> <xsd:annotation> <xsd:documentation>przykład</xsd:documentation> </xsd:annotation> <xsd:complextype> <xsd:sequence> <xsd:element ref="przedmiot" minoccurs="1" maxoccurs="unbounded"/> </xsd:sequence> </xsd:complextype> Definicje struktur <xsd:key name="id_wersji"> Typy złożone służą do definiowania struktur <xsd:selector xpath="przedmiot"/> <xsd:field zagnieżdżonych <xsd:field Element sequence pozwala definiować następstwo </xsd:key> Można ściśle określić krotności </xsd:element> <xsd:element name="przedmiot"> <!-- Definicja wywoływana po nazwie -->... </xsd:element>

125 <xsd:element name="przedmiot"> <xsd:complextype> <xsd:sequence> <xsd:element name="slowo_kluczowe" type="xsd:string" minoccurs="0" maxoccurs="unbounded"/> <xsd:element name="konspekt"> <xsd:complextype> <xsd:sequence> <xsd:element ref="czesc_konspektu minoccurs="1" maxoccurs="unbounded"/> </xsd:sequence> </xsd:complextype> </xsd:element> </xsd:sequence> <xsd:attributegroup ref="identyfikatory"/> <xsd:attribute name="wersja"> Metody deklarowania <xsd:simpletype> <xsd:restriction base="xsd:unsignedbyte"> Bezpośrednia (inline) <xsd:maxexclusive value="10"/> Z użyciem definicji i odwołań przez nazwę </xsd:restriction> </xsd:simpletype> </xsd:attribute> </xsd:complextype>... </xsd:element> Deklarowanie elementów, c.d. <xsd:element name="czesc_konspektu">... </xsd:element>

126 <xsd:element name="przedmiot"> <xsd:complextype> <xsd:sequence> <xsd:element name="slowo_kluczowe" type="xsd:string" minoccurs="0" maxoccurs="unbounded"/> <xsd:element name="konspekt"> <xsd:complextype> <xsd:sequence> <xsd:element Definicje ref="czesc_konspektu" typów Do określania typów/atrybutów minoccurs="1" należy maxoccurs="unbounded"/> użyć typów prostych </xsd:sequence> </xsd:complextype> Typ prosty bazuje na jednym z typów wbudowanych </xsd:element> Typ może być uściślony przez różne ograniczenia (aspekty) </xsd:sequence> <xsd:attributegroup ref="identyfikatory"/> <xsd:attribute name="wersja"> <xsd:simpletype> <xsd:restriction base="xsd:unsignedbyte"> <xsd:maxexclusive value="10"/> </xsd:restriction> </xsd:simpletype> </xsd:attribute> </xsd:complextype>... </xsd:element> <xsd:element name="czesc_konspektu">... </xsd:element> Deklarowanie atrybutów

127 <xsd:element name="przedmiot"> <xsd:complextype> <xsd:sequence>... </xsd:sequence> <xsd:attributegroup ref="identyfikatory"/> <xsd:attribute name="wersja"> <xsd:simpletype> <xsd:restriction base="xsd:unsignedbyte"> <xsd:maxexclusive value="10"/> </xsd:restriction> </xsd:simpletype> </xsd:attribute> </xsd:complextype>... </xsd:element> Deklarowanie atrybutów, c.d. Metody deklarowania Bezpośrednio Z użyciem definicji i odwołania przez nazwę - grupa atrybutów definiuje powtarzalne atrybuty <xsd:element name="czesc_konspektu"> <xsd:complextype> <xsd:group ref="tekst" minoccurs="1" maxoccurs="unbounded"/> <xsd:attributegroup ref="identyfikatory"/> </xsd:complextype> </xsd:element> <xsd:attributegroup name="identyfikatory"> <xsd:attribute name="id" type="xsd:name" use="required"/> </xsd:attributegroup>

128 Klucze <xsd:element name="przedmiot"> <xsd:complextype> Definicja klucza <xsd:sequence> <xsd:element name="slowo_kluczowe" type="xsd:string" Nazwa klucza (może służyć do <xsd:element name="konspekt"> <xsd:complextype> <xsd:sequence> <xsd:element ref="czesc_konspektu" </xsd:sequence> </xsd:complextype> </xsd:element> </xsd:sequence> <xsd:attributegroup ref="identyfikatory"/> <xsd:attribute name="wersja">... </xsd:attribute> </xsd:complextype> <xsd:key name="id_czesci"> <xsd:selector xpath="konspekt/czesc_konspektu"/> <xsd:field </xsd:key> </xsd:element> <xsd:attributegroup name="identyfikatory"> <xsd:attribute name="id" type="xsd:name" use="required"/> </xsd:attributegroup> minoccurs="0" budowy maxoccurs="unbounded"/> odwołań) Selektor: które elementy są unikalnie identyfikowane przez minoccurs="1 klucz maxoccurs="unbounded"/> Pole: składnik klucza (może być kilka) Używa się wyrażeń XPath Zakres unikalności: element nadrzędny w stosunku do deklaracji

129 Plan prezentacji Dlaczego schematy? Przykład schematu XML Schema nieco szczegółów Rola schematów XML

130 Budowa schematu XML Schema Rodzaje elementów schematu Deklaracje: określają elementy i atrybuty dokumentu Definicje: określają elementy pomocnicze, używane w deklaracjach: typy, grupy itp. Elementy globalne Elementy schematu bezpośrednio należące do elementu głównego schema Tworzą nazwane definicje, do których można odwoływać się w definicjach i deklaracjach Typy Służą do określania nazw elementów i atrybutów, następstwa, zawierania typów danych i zakresów wartości dla atrybutów i zawartości elementów Rodzaje proste: bez zagnieżdżeń (np. dla atrybutów) złożone: zawierają zagnieżdżone elementy Dokumentacja Elementy annotation służą do umieszczania dodatkowych informacji element documentation może zawierać dokumentację w języku naturalnym element appinfo może zawierać informacje dla aplikacji przetwarzających

131 Złożone typy danych Budowanie złożonych typów danych Element complextype służy do definiowania typów złożonych Grupowanie elementów w ramach typu sequence wyznacza ścisłe następstwo choice wyznacza wybór z kilu możliwości all wyznacza zbiór elementów i liczbę powtórzeń, ale bez określenia kolejności grupowania te można zagnieżdżać Liczba powtórzeń elementu lub grupy ściśle określana za pomocą atrybutów minoccurs i maxoccurs Atrybuty Deklaracje atrybutów podaje się na końcu definicji złożonego typu danych Atrybut use="required" deklaracji wymusza obowiązkowość Atrybut default deklaracji określa wartość domyślną Atrybut fixed deklaracji narzuca wartość stałą Elementy mieszane (tekst + znaczniki) definiuje się jak zwykłe typy złożone atrybut mixed określa, że znaczniki mogą być przeplecione tekstem

132 Proste typy danych Typy wbudowane Typy elementarne Podtypy typy pochodne Budowanie nowych typów prostych Ograniczenie (restriction) wzorce (wyrażenia regularne) ograniczenia długości określenie liczby cyfr dziesiętnych ograniczenia wartości Wyliczenie (enumeration) Listy Wartość atrybutu lub elementu może być listą wartości prostego typu, rozdzielonych białymi znakami Do deklarowania typu lista służy konstrukcja <xsd:list itemtype="typprosty"/> Połączenie (union)

133 Proste typy danych, c.d. Typy wbudowane (wybór) Nazwa typu Opis Przykładowe podtypy string Napis normalizedstring, language, Name boolean Wartości true i false decimal Liczba stałoprzecinkowa integer, negativeinteger, nonpositiveinteger, int, short, byte, unsignedint float, double Liczba zmiennoprzecinkowa duration Długość okresu czasu datetime Data i czas date, time Data, czas

134 Unikalność i klucze Unikalność Element unique deklaruje niepowtarzalność Klucze Element key: podobny do unique, definiuje klucz złożony z niepustych składników Odwołania można deklarować za pomocą elementu keyref Budowa klucza Element selector podaje jaki zbiór elementów ma zawierać niepowtarzalne klucze Element(y) field określa(ją) składnik(i) klucza Zakres niepowtarzalności określa się przez umieszczenie deklaracji unique lub key na końcu definicji odpowiedniego elementu

135 Schematy a przestrzenie nazw Przestrzenie nazw w schematach Schematy w pełni wykorzystują możliwości przestrzeni nazw (namespaces) Schemat określa znaczniki w konkretnej przestrzeni nazw Docelowa przestrzeń nazw Znaczniki znajdą się w docelowej przestrzeni nazw podanej w atrybucie targetnamespace Znaczniki w dokumencie muszą być w tej samej docelowej przestrzeni nazw Kwalifikowanie znaczników Atrybut elementformdefault: reguły kwalifikowania prefiksem przestrzeni nazw wartość qualified kwalifikować wszystkie znaczniki wartość unqualified kwalifikować tylko elementy globalne w przestrzeni nazw znajdują się tylko elementy globalne ich elementy podrzędne (lokalne) przynależą do przestrzeni pośrednio można tworzyć różne elementy lokalne o tych samych nazwach w różnych miejscach schematu bez konfliktu w przestrzeni nazw Kilka przestrzeni nazw Dokument może korzystać z kilku przestrzeni nazw każdej powiązanej z innym schematem Rozszerzanie XML Schema Zapis schematu można rozszerzyć o własne elementy Umieścić je trzeba w innej przestrzeni nazw

136 Wielokrotne użycie Grupowanie Definicja powtarzalnej grupy elementów: group atrybutów: attributegroup Odwołanie: po nazwie grupy Włączanie schematów include włącza schemat do schematu redefine włącza schemat, umożliwiając przedefiniowanie wybranych elementów, atrybutów i typów włączanego schematu Włączanie a przestrzenie nazw include działa jeśli włączany schemat nie określa przestrzeni nazw znaczniki włączane przypisywane są do przestrzeni docelowej schematu włączającego włączany schemat określa tę samą przestrzeń nazw co włączający import włącza schemat z pozostawieniem jego przestrzeni nazw stosowane w przypadku, gdy włączany schemat określa inną przestrzeń nazw w definiowanym dokumencie pozostają dwie różne przestrzenie nazw

137 Rozszerzanie schematów Zastępowanie (substitution) Można określić zbiór elementów mogących zastąpić dany element Definiowanie atrybut substitutiongroup wskazuje element zastępowany (bazowy) typ elementów ten sam albo pochodny od typu elementu bazowego Wykorzystanie w dokumencie element typu bazowego może być zastąpiony elementem typu zastępującego przykład: nazwy w kilku językach Typy pochodne (derived types) Dla typów prostych: ograniczenie, wyliczenie, połączenie Dla typów złożonych ograniczenie zawężenie zakresu wartości ograniczenie liczności elementów rozszerzenie: dodanie nowych elementów lub atrybutów do typu bazowego Ograniczanie rozszerzalności Specjalne atrybuty pozwalają określić dopuszczone mechanizmy wyprowadzania typów Definicje elementów i typów abstrakcyjnych nie mogą być bezpośrednio wykorzystane w deklaracjach służą do zastępowania lub wyprowadzania nowych definicji Zezwolenie na rozszerzenia użytkownika any, anyattribute i anytype pozwalają użyć elementów/atrybutów/typów nie zdefiniowanych w schemacie

138 XML Schema w narzędziach Narzędzia firmy Microsoft MS XML SDK 4.0 wspiera specyfikację XML Schema (XSD) parser DOM waliduje dokumenty z użyciem XSD obiekt XMLSchemaCache służy do ładowania schematów Narzędzia Microsoft zawierają także wsparcie dla firmowych specyfikacji XML- Data i XML-Data Reduced Narzędzia firmy Oracle Najnowsze wersje XDK (XML Developer Kit) zawierają Oracle XML Schema Processor for Java Procesor ten jest wykorzystywany przez parser typu DOM Walidacja na podstawie schematu ładowanego automatycznie na podstawie zawartości dokumentu ładowanego programowo Walidacja z linii komendy oraxml schema nazwa_pliku_xml

139 Plan prezentacji Dlaczego schematy? Przykład schematu XML Schema nieco szczegółów Rola schematów XML

140 Rola schematów XML Zastosowania schematów XML W przetwarzaniu walidacja na podstawie schematu pozwala uniknąć sprawdzeń poprawności struktury w czasie przetwarzania W wymianie danych walidacja na podstawie schematu pozwala pod razu odrzucać błędne komunikaty, bez ich szczegółowej analizy W ładowaniu do baz danych schemat może być użyty do automatycznego utworzenia odpowiedniej struktury danych i sterowania wczytywaniem informacji do tej struktury W tworzeniu dokumentacji schemat można uzupełnić o elementy opisowe i automatycznie generować dokumentację struktur XML (za pomocą XSL) Przyszłość schematów XML Wszystko wskazuje na to, że schematy całkowicie wyprą DTD w zastosowaniu do definiowania struktur dokumentów i walidacji Zastosowaniem DTD pozostanie definiowanie encji

141 Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT Marek Wojciechowski

142 Formatowanie dokumentów XML Język XML opisuje strukturę i semantykę, nie opisuje formatowania Nie ma w XML znaczników opisujących formatowanie Ze znacznikami XML nie jest związany domyślny sposób prezentacji Sposób prezentacji dokumentu XML (formatowanie) dodaje się poprzez dołączenie arkuszu stylów CSS Cascading Style Sheets (Level 1 i Level 2) Opracowany z myślą o HTML XSL Extensible Stylesheet Language Opracowany dla dokumentów XML Bardziej złożony, oferujący więcej możliwości niż CSS

143 Formatowanie XML za pomocą CSS produkty.xml <?xml version="1.0" encoding="windows-1250"?> <?xml-stylesheet type="text/css" href="produkty.css"?> <cennik> <produkt kod=" "> <nazwa>antena dachowa</nazwa> <symbol> </symbol> <cena>85</cena> </produkt> <produkt kod=" "> <nazwa>radioodtwarzacz CAR 2001</nazwa> <symbol> </symbol> <cena>525</cena> </produkt> <produkt kod=" "> <nazwa>zestaw głośnomówiący LOUD 2</nazwa> <symbol> </symbol> <cena>330</cena> </produkt> </cennik> produkty.css produkt {display: block} nazwa {display: inline; font-weight: bold} symbol {display: none} cena {display: inline; font-style: italic} CSS umożliwia formatowanie elementów, ale nie pozwala na modyfikację struktury drzewa dokumentu

144 XSL Extensible Stylesheet Language Język do definiowania arkuszy stylów Obejmuje 2 części: XSL Transformations (XSLT) język przekształceń Wykorzystuje XPath XSL Formatting Objects (XSL-FO) język opisu formatu W porównaniu z CSS: XSL oferuje bardziej rozbudowane mechanizmy formatowania Umożliwia transformację struktury drzewa dokumentu (!) Arkusze XSL są dokumentami XML (!) XSLT może być wykorzystywany w połączeniu z XSL-FO do formatowania dokumentów XML, ale może również być wykorzystywany niezależnie jako uniwersalny język transformacji dokumentów XML

145 XSLT Język przekształceń Zawiera elementy służące do definiowania reguł opisujących sposób przekształcania jednego dokumentu XML na inny dokument Wykorzystuje język wyrażeń XPath do wyboru przetwarzanych elementów Przekształcony dokument może mieć znaczniki (i DTD) dokumentu oryginalnego lub używać innego zestawu znaczników Przykłady typów konwersji dokumentów XML: Konwersja do dokumentu XML zawierającego obiekty formatujące XSL Konwersja do dokumentu HTML (np. korzystającego z arkusza stylów CSS)

146 Transformacja XSLT Dokument XML XSLT Dokument XML (lub HTML, WML, itp.) Arkusz stylistyczny XSL Automatyczna konwersja dokumentu XML do formatu HTML, WML, itp. lub innego dokumentu XML

147 produkty.xml Przykład transformacji XSLT <?xml version="1.0" encoding="windows-1250"?> <?xml-stylesheet type="text/xsl" href="produkty.xsl"?> <cennik> <produkt kod=" "> <nazwa>antena dachowa</nazwa> <symbol> </symbol> <cena>85</cena> </produkt> <produkt kod=" "> <nazwa>radioodtwarzacz CAR 2001</nazwa> <symbol> </symbol> <cena>525</cena> </produkt> <produkt kod=" "> <nazwa>zestaw głośnomówiący LOUD 2 </nazwa> <symbol> </symbol> <cena>330</cena> </produkt> </cennik> <?xml version="1.0" encoding="windows-1250"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/xsl/transform" version="1.0"> <xsl:template match="cennik"> <HTML><BODY><H1>Cennik akcesoriów</h1> <xsl:for-each select="produkt"> <B><xsl:value-of select="nazwa"/></b> - <I><xsl:value-of select="cena"/></i> PLN <BR/> </xsl:for-each> </BODY></HTML> </xsl:template> </xsl:stylesheet> produkty.xsl Wyrażenia XPath wybierające przetwarzane elementy Efekt transformacji do HTML wykonanej po stronie przeglądarki

148 Metody transformacji XSLT Programista przygotowuje arkusz stylistyczny XSL, opisujący sposób transformacji oryginalnego dokumentu XML Transformacja może być opisana w sposób rekurencyjny, proceduralny lub mieszany Za transformację dokumentu XML odpowiada procesor XSLT Procesory XSLT mogą być dostępne w postaci: Samodzielnych produktów Modułów wchodzących w skład większych produktów Przeglądarek internetowych (np. Microsoft Internet Explorer) Serwerów WWW Modułów bibliotecznych np. bibliotek Java

149 Co widzi procesor XSLT? Procesor XSLT widzi drzewo dokumentu XML XSLT zakłada, że drzewo składa się z 7 rodzajów węzłów: Korzeń Elementy Tekst Atrybuty Przestrzenie nazw Instrukcje przetwarzania Komentarze DTD i deklaracja typu dokumentu nie są włączane do drzewa (ale mogą powodować dodanie do niektórych elementów atrybutów domyślnych i stałych)

150 Domyślne reguły transformacji XSL zawiera definicje kilku domyślnych reguł niejawnie dołączonych do wszystkich arkuszy stylów Domyślna reguła elementów Zapewnia, że wszystkie węzły będą przetworzone gdy nie ma jawnych reguł Domyślna reguła węzłów tekstowych i atrybutów Kopiuje tekst i atrybuty na wyjście Domyślna reguła instrukcji przetwarzania i komentarzy Pomija instrukcje przetwarzania i komentarze Domyślne reguły mają niższy priorytet niż wyspecyfikowane jawnie (tzn. obowiązują jeśli nie zostaną przesłonięte) Dzięki powyższym regułom "pusty" arkusz stylów spowoduje przekopiowanie danych tekstowych na wyjście <?xml version="1.0" encoding="windows-1250"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/xsl/transform" version="1.0"> </xsl:stylesheet>

151 Transformacja rekurencyjna (1/2) Przykład: Reguły transformacji 1) Każde wystąpienie znacznika <cennik>*</cennik> zamień na: <HTML><BODY><H1>Cennik akcesoriów</h1>*</body></html> a następnie spróbuj dopasować reguły do zawartości znacznika 2) Każde wystąpienie znacznika <produkt>*</produkt> zamień na: *<BR/> a następnie spróbuj dopasować reguły do zawartości znacznika 3) Każde wystąpienie znacznika <nazwa>*</nazwa> zamień na: <B>*</B> - 4) Każde wystąpienie znacznika <cena>*</cena> zamień na: <I>*</I> PLN 5) Pomiń znacznik <symbol>*</symbol>

152 Transformacja rekurencyjna (2/2) Przykład: Arkusz stylistyczny XSL <?xml version="1.0" encoding="windows-1250"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/xsl/transform" version="1.0"> <xsl:template match="cennik"> <HTML><BODY><H1>Cennik akcesoriów</h1><xsl:apply-templates/></body></html> </xsl:template> <xsl:template match="produkt"> <xsl:apply-templates/><br/> </xsl:template> <xsl:template match="nazwa"> <B><xsl:value-of select="text()"/></b> - </xsl:template> <xsl:template match="symbol"> </xsl:template> <xsl:template match="cena"> <I><xsl:value-of select="text()"/></i> PLN </xsl:template> </xsl:stylesheet> Wybiera węzeł tekstowy

153 Transformacja proceduralna (1/2) Przykład: Pseudokod transformacji wyświetl "<HTML><BODY><H1>Cennik akcesoriów</h1>"; dla każdego znacznika <produkt> { wyświetl "<B>"; wyświetl zawartość znacznika <nazwa>; wyświetl "</B> -"; wyświetl "<I>"; wyświetl zawartość znacznika <cena>; wyświetl "</I> PLN<BR/>"; } wyświetl "</BODY></HTML>";

154 Transformacja proceduralna (2/2) Przykład: Arkusz stylistyczny XSL <?xml version="1.0" encoding="windows-1250"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/xsl/transform" version="1.0"> <xsl:template match="cennik"> <HTML><BODY><H1>Cennik akcesoriów</h1> <xsl:for-each select="produkt"> <B><xsl:value-of select="nazwa"/></b> - <I><xsl:value-of select="cena"/></i> PLN <BR/> </xsl:for-each> </BODY></HTML> </xsl:template> </xsl:stylesheet>

155 Dostęp do atrybutów, dodawanie atrybutów <?xml version="1.0" encoding="windows-1250"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/xsl/transform" version="1.0"> <xsl:template match="/"> <HTML> <HEAD><TITLE>Cennik</TITLE></HEAD> <BODY> <H1>Cennik akcesoriów</h1> <TABLE> <xsl:attribute name="border">4</xsl:attribute> <TR> <TH>Kod</TH><TH>Symbol</TH> <TH>Nazwa</TH><TH>Cena</TH> </TR> <xsl:for-each select="cennik/produkt"> <TR> <TH><xsl:value-of <TD><xsl:value-of select="symbol"/></td> <TD><xsl:value-of select="nazwa"/></td> <TD><xsl:value-of select="cena"/></td> </TR> </xsl:for-each> </TABLE> </BODY> </HTML> </xsl:template> </xsl:stylesheet> Dodanie atrybutu BORDER z wartością 4 do elementu<table> (<TABLE BORDER="4"> też OK.) Dostęp do atrybutu KOD elementu cennik/produkt

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

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

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

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

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

Plan dzisiejszego wykładu. Narzędzia informatyczne w językoznawstwie. XML - Definicja. Zalety XML

Plan dzisiejszego wykładu. Narzędzia informatyczne w językoznawstwie. XML - Definicja. Zalety XML Plan dzisiejszego wykładu Narzędzia informatyczne w językoznawstwie Perl - Wprowadzenie do XML Marcin Junczys-Dowmunt junczys@amu.edu.pl Zakład Logiki Stosowanej http://www.logic.amu.edu.pl 16. kwietnia

Bardziej szczegółowo

extensible Markup Language, cz. 1 Marcin Gryszkalis, mg@fork.pl

extensible Markup Language, cz. 1 Marcin Gryszkalis, mg@fork.pl extensible Markup Language, cz. 1 Marcin Gryszkalis, mg@fork.pl Plan wykładu Wprowadzenie: historia rozwoju technik znakowania tekstu Motywacje dla prac nad XML-em Podstawowe koncepcje XML-a XML jako metajęzyk

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

Prezentacja i transformacja

Prezentacja i transformacja Prezentacja i transformacja Bartłomiej Świercz Katedra Mikroelektroniki i Technik Informatycznych Łódź, 21 października 2005 roku 1 Prezentacja Przykładowa aplikacja CSS- Cascading Style Sheets CSS2aXML

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

Rola języka XML narzędziem

Rola języka XML narzędziem Wprowadzenie do XML dr inż. Adam Iwaniak Szkolenie w Luboradzy, ZCPWZ, 12-13.02.2009r. Rola języka XML narzędziem Pierwszą rewolucją internetową było dostarczenie ludziom informacji. Znajdujemy się teraz

Bardziej szczegółowo

Kurs WWW Język XML, część I

Kurs WWW Język XML, część I Język XML, część I Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Zawartość modułu Wprowadzenie do XML Składnia Znaczniki i atrybuty DTD XML Schema Na podstawie kursu ze strony: http://www.w3schools.com/schema/default.asp

Bardziej szczegółowo

XML DTD XML Schema CSS

XML DTD XML Schema CSS XML XML czyli Extensible Markup Language (rozszerzalny język znaczników) można traktować jak stosunkowo prosty i elastyczny format tekstowy wywodzący się z SGML. Pierwotnie został zaprojektowany aby umożliwiać

Bardziej szczegółowo

Technologie zarządzania treścią

Technologie zarządzania treścią Technologie zarządzania treścią dr inż. Robert Perliński rperlinski@icis.pcz.pl Politechnika Częstochowska Instytut Informatyki Teoretycznej i Stosowanej Technologie zarządzania treścią 2/43 Technologie

Bardziej szczegółowo

XML stan obecny i trendy rozwojowe

XML stan obecny i trendy rozwojowe XML stan obecny i trendy rozwojowe XML stan obecny i trendy rozwojowe Tomasz Traczyk ttraczyk@ia.pw.edu.pl http://www.ia.pw.edu.pl/~ttraczyk/ Czym dziś jest XML? Stan obecny technologii XML Podsumowanie

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

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

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

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

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

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

Język XML w aplikacjach z bazami danych - po roku

Język XML w aplikacjach z bazami danych - po roku V Konferencja PLOUG Zakopane Październik 1999 Język XML w aplikacjach z bazami danych - po roku dr inż. Tomasz Traczyk ttraczyk@ia.pw.edu.pl http://www.ia.pw.edu.pl/~ttraczyk/ Instytut Automatyki i Informatyki

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

5.14 JSP - Przykład z obiektami sesji... 83 5.15 Podsumowanie... 84 5.16 Słownik... 85 5.17 Zadanie... 86

5.14 JSP - Przykład z obiektami sesji... 83 5.15 Podsumowanie... 84 5.16 Słownik... 85 5.17 Zadanie... 86 Spis treści 1 Wprowadzenie - architektura, protokoły, system WWW... 1 1.1 Wstęp.................................................. 1 1.2 Ważniejsze daty......................................... 2 1.3 Protokoły

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

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

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

Schematy XML. Tomasz Traczyk. ttraczyk@ia.pw.edu.pl http://www.ia.pw.edu.pl/~ttraczyk/ Schematy XML Tomasz Traczyk ttraczyk@ia.pw.edu.pl http://www.ia.pw.edu.pl/~ttraczyk/ Plan prezentacji Dlaczego schematy? Przykład schematu XML Schema nieco szczegółów Rola schematów XML Problemy z DTD

Bardziej szczegółowo

Zasady Nazewnictwa. Dokumentów XML 2007-11-08. Strona 1 z 9

Zasady Nazewnictwa. Dokumentów XML 2007-11-08. Strona 1 z 9 Zasady Nazewnictwa Dokumentów 2007-11-08 Strona 1 z 9 Spis treści I. Wstęp... 3 II. Znaczenie spójnych zasady nazewnictwa... 3 III. Zasady nazewnictwa wybrane zagadnienia... 3 1. Język oraz forma nazewnictwa...

Bardziej szczegółowo

BAZY DANYCH. Dr hab. Sławomir Zadrożny, prof. PR

BAZY DANYCH. Dr hab. Sławomir Zadrożny, prof. PR BAZY DANYCH Dr hab. Sławomir Zadrożny, prof. PR Co to jest baza danych? Wiele możliwych definicji Zbiór danych, który istnieje przez dłuższy okres czasu Współdzielony zestaw logicznie powiązanych danych

Bardziej szczegółowo

XML Schema. Bartłomiej Świercz. Łódź, 19 listopada 2005 roku. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz XML Schema

XML Schema. Bartłomiej Świercz. Łódź, 19 listopada 2005 roku. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz XML Schema XML Schema Bartłomiej Świercz Katedra Mikroelektroniki i Technik Informatycznych Łódź, 19 listopada 2005 roku Wstęp XML Schema służy do definiowania struktury dokumentu XML (pełni podobną funkcję jak DTD).

Bardziej szczegółowo

XML Path Language (XPath)

XML Path Language (XPath) XML Path Language (XPath) 1 Cel adresowanie elementów /częś ci dokumentu XML składnia podobna do URI wyszukiwanie elementów bądź grup elementów dokument jako drzewo typy węzłów: element, attribute, text

Bardziej szczegółowo

XML w sosie własnym. Standard XML wraz z DTD, przestrzenie nazw, projektowanie struktury dokumentów. Patryk Czarnik. Instytut Informatyki UW

XML w sosie własnym. Standard XML wraz z DTD, przestrzenie nazw, projektowanie struktury dokumentów. Patryk Czarnik. Instytut Informatyki UW XML w sosie własnym Standard XML wraz z DTD, przestrzenie nazw, projektowanie struktury dokumentów. Patryk Czarnik Instytut Informatyki UW XML i nowoczesne technologie zarzadzania treścia 2007/08 Podstawy

Bardziej szczegółowo

PROGRAM NAUCZANIA DLA ZAWODU TECHNIK INFORMATYK, 351203 O STRUKTURZE PRZEDMIOTOWEJ

PROGRAM NAUCZANIA DLA ZAWODU TECHNIK INFORMATYK, 351203 O STRUKTURZE PRZEDMIOTOWEJ PROGRAM NAUCZANIA DLA ZAWODU TECHNIK INFORMATYK, 351203 O STRUKTURZE PRZEDMIOTOWEJ Systemy baz danych 1. 2 Wstęp do baz danych 2. 2 Relacyjny model baz danych. 3. 2 Normalizacja baz danych. 4. 2 Cechy

Bardziej szczegółowo

Wykorzystanie standardów serii ISO 19100 oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych

Wykorzystanie standardów serii ISO 19100 oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych Wykorzystanie standardów serii ISO 19100 oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych dr inż. Adam Iwaniak Infrastruktura Danych Przestrzennych w Polsce i Europie Seminarium, AR Wrocław

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

Tworzenie raportów XML Publisher przy użyciu Data Templates

Tworzenie raportów XML Publisher przy użyciu Data Templates Tworzenie raportów XML Publisher przy użyciu Data Templates Wykorzystanie Szablonów Danych (ang. Data templates) jest to jedna z metod tworzenia raportów w technologii XML Publisher bez użycia narzędzia

Bardziej szczegółowo

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi Systemy baz danych w zarządzaniu przedsiębiorstwem W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi Proces zarządzania danymi Zarządzanie danymi obejmuje czynności: gromadzenie

Bardziej szczegółowo

c TP: anything: 13 listopada 2004 roku 1

c TP: anything: 13 listopada 2004 roku 1 SGML/XML SGML: International Standard (ISO 8879). Information Processing Text and Office Systems Standardized Generalized Markup Language. Znakowanie powinno opisywać strukturę dokumentu (...) a nie określać

Bardziej szczegółowo

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7 I Wprowadzenie (wersja 0906) Kurs OPC S7 Spis treści Dzień 1 I-3 O czym będziemy mówić? I-4 Typowe sytuacje I-5 Klasyczne podejście do komunikacji z urządzeniami automatyki I-6 Cechy podejścia dedykowanego

Bardziej szczegółowo

Aplikacje internetowe laboratorium XML, DTD, XSL

Aplikacje internetowe laboratorium XML, DTD, XSL Aplikacje internetowe laboratorium XML, DTD, XSL Celem ćwiczenia jest stworzenie dokumentu XML, wyposażenie dokumentu w specyfikację struktury (przy użyciu DTD), oraz transformacja dokumentu XML do postaci

Bardziej szczegółowo

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych Szkolenie przeznaczone jest dla osób chcących poszerzyć swoje umiejętności o tworzenie rozwiązań internetowych w PHP. Zajęcia zostały przygotowane w taki sposób, aby po ich ukończeniu można było rozpocząć

Bardziej szczegółowo

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI ul. Wspólna 1/3 00-529 Warszawa ZASADY NAZEWNICTWA DOKUMENTÓW XML Projekt współfinansowany Przez Unię Europejską Europejski Fundusz

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

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

Kazienko P.: Rodzina języków XML. Software nr 6 (90) czerwiec 2002, s. 22-27. Rodzina języków XML. Przemysław Kazienko

Kazienko P.: Rodzina języków XML. Software nr 6 (90) czerwiec 2002, s. 22-27. Rodzina języków XML. Przemysław Kazienko Rodzina języków XML Przemysław Kazienko Rok 2001 przyniósł kilka ważnych wydarzeń związanych z językiem XML. Można powiedzieć, że ukończony został drugi etap jego rozwoju (pierwszym było opublikowanie

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

Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema

Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema Globalne i lokalne deklaracje elementów i atrybutów Deklaracje lokalne:

Bardziej szczegółowo

Podstawy JavaScript ćwiczenia

Podstawy JavaScript ćwiczenia Podstawy JavaScript ćwiczenia Kontekst:

Bardziej szczegółowo

XML w bazach danych i bezpieczeństwie

XML w bazach danych i bezpieczeństwie XML w bazach danych i bezpieczeństwie Patryk Czarnik Instytut Informatyki UW XML i nowoczesne technologie zarzadzania treścia 2007/08 Klasyfikacja wsparcia dla XML-a w bazach danych (Relacyjna) baza danych

Bardziej szczegółowo

Plan prezentacji. Krótko o XML Arkusze stylów XSLT XSL XSL Path Przegląd konstrukcji języka i przykłady Narzędzia Podsumowanie Literatura

Plan prezentacji. Krótko o XML Arkusze stylów XSLT XSL XSL Path Przegląd konstrukcji języka i przykłady Narzędzia Podsumowanie Literatura XSLT Dariusz Dudek Plan prezentacji Krótko o XML Arkusze stylów XSLT XSL XSL Path Przegląd konstrukcji języka i przykłady Narzędzia Podsumowanie Literatura Cechy XML a Rozszerzalny język znaczników Stworzony

Bardziej szczegółowo

Właściwości i metody obiektu Comment Właściwości

Właściwości i metody obiektu Comment Właściwości Właściwości i metody obiektu Comment Właściwości Właściwość Czy można zmieniać Opis Application nie Zwraca nazwę aplikacji, która utworzyła komentarz Author nie Zwraca nazwę osoby, która utworzyła komentarz

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

METAJĘZYKI. Politechnika Koszalińska Wydział Elektroniki i Informatyki Katedra Inżynierii Komputerowej

METAJĘZYKI. Politechnika Koszalińska Wydział Elektroniki i Informatyki Katedra Inżynierii Komputerowej 4 dr inż. Robert Berezowski e-mail: beny@ie.tu.koszalin.pl Ul. Śniadeckich 2 Pokój 223A Politechnika Koszalińska Wydział Elektroniki i Informatyki Katedra Inżynierii Komputerowej 1 XPath nawigacja i wyszukiwanie

Bardziej szczegółowo

Komunikacja i wymiana danych

Komunikacja i wymiana danych Budowa i oprogramowanie komputerowych systemów sterowania Wykład 10 Komunikacja i wymiana danych Metody wymiany danych Lokalne Pliki txt, csv, xls, xml Biblioteki LIB / DLL DDE, FastDDE OLE, COM, ActiveX

Bardziej szczegółowo

CENTRUM PROJEKTÓW INFORMATYCZNYCH MINISTERSTWA SPRAW WEWNĘTRZNYCH I ADMINISTRACJI

CENTRUM PROJEKTÓW INFORMATYCZNYCH MINISTERSTWA SPRAW WEWNĘTRZNYCH I ADMINISTRACJI CENTRUM PROJEKTÓW INFORMATYCZNYCH MINISTERSTWA SPRAW WEWNĘTRZNYCH I ADMINISTRACJI Instrukcja użytkownika Narzędzie do modelowania procesów BPEL Warszawa, lipiec 2009 r. UNIA EUROPEJSKA EUROPEJSKI FUNDUSZ

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 omówić korzyści dla firm wynikające ze stosowania EDI przedstawić dotychczasowe standardy EDI oraz zaprezentować nowe tendencje: XML i ebxml omówić tło

Bardziej szczegółowo

mgr inż. Jacek Staniec Język XML staniec@wit.edu.pl

mgr inż. Jacek Staniec Język XML staniec@wit.edu.pl mgr inż. Jacek Staniec Język XML staniec@wit.edu.pl Zaliczenie przedmiotu (3 punkty ECTS) Obecność na 7 pierwszych zajęciach 15 punktów Sprawozdania z 7 pierwszych zajęć 15 punktów Projekt podstawowy 50

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

Oracle11g: Wprowadzenie do SQL

Oracle11g: Wprowadzenie do SQL Oracle11g: Wprowadzenie do SQL OPIS: Kurs ten oferuje uczestnikom wprowadzenie do technologii bazy Oracle11g, koncepcji bazy relacyjnej i efektywnego języka programowania o nazwie SQL. Kurs dostarczy twórcom

Bardziej szczegółowo

ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko. Typy rozproszonych baz danych. Systemy klient-serwer. Klient-serwer: Przykład

ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko. Typy rozproszonych baz danych. Systemy klient-serwer. Klient-serwer: Przykład ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko Typy rozproszonych baz Systemy typu klient-serwer (jeden serwer) Jednorodna rozproszona baza (kilka serwerow, jeden system zarzadzania baza ) Niejednorodna

Bardziej szczegółowo

MINISTERSTWO FINANSÓW PLAN INTEGRACJI SYSTEMU ZAŁĄCZNIK NR 6 SEAP SPECYFIKACJA KANAŁ EMAIL DLA PODMIOTÓW ZEWNĘTRZNYCH PL PROJEKT ECIP/SEAP

MINISTERSTWO FINANSÓW PLAN INTEGRACJI SYSTEMU ZAŁĄCZNIK NR 6 SEAP SPECYFIKACJA KANAŁ EMAIL DLA PODMIOTÓW ZEWNĘTRZNYCH PL PROJEKT ECIP/SEAP MINISTERSTWO FINANSÓW PLAN INTEGRACJI SYSTEMU ZAŁĄCZNIK NR 6 SEAP SPECYFIKACJA KANAŁ EMAIL DLA PODMIOTÓW ZEWNĘTRZNYCH PL PROJEKT ECIP/SEAP WERSJA 1 z 15 Spis treści 1. Kanał email dla podmiotów zewnętrznych...

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

Systemy GIS Tworzenie zapytań w bazach danych

Systemy GIS Tworzenie zapytań w bazach danych Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE

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

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze Cechy bloków nazwanych: w postaci skompilowanej trwale przechowywane na serwerze wraz z danymi wykonywane na żądanie użytkownika lub w

Bardziej szczegółowo

Generowanie dokumentów XML z tabel relacyjnych - funkcje SQLX

Generowanie dokumentów XML z tabel relacyjnych - funkcje SQLX Aktualizowanie dokumentów XML ( Oracle ) do aktualizowania zawartości dokumentów XML służy między innymi funkcja updatexml. wynikiem jej działania jest oryginalny dokument ze zmodyfikowanym fragmentem,

Bardziej szczegółowo

INFORMATYKA Pytania ogólne na egzamin dyplomowy

INFORMATYKA Pytania ogólne na egzamin dyplomowy INFORMATYKA Pytania ogólne na egzamin dyplomowy 1. Wyjaśnić pojęcia problem, algorytm. 2. Podać definicję złożoności czasowej. 3. Podać definicję złożoności pamięciowej. 4. Typy danych w języku C. 5. Instrukcja

Bardziej szczegółowo

Materiały do laboratorium MS ACCESS BASIC

Materiały do laboratorium MS ACCESS BASIC Materiały do laboratorium MS ACCESS BASIC Opracowała: Katarzyna Harężlak Access Basic jest językiem programowania wykorzystywanym w celu powiązania obiektów aplikacji w jeden spójny system. PROCEDURY I

Bardziej szczegółowo

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38 Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem zajęcia 1 dr Jakub Boratyński pok. A38 Program zajęć Bazy danych jako podstawowy element systemów informatycznych wykorzystywanych

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

XQuery. sobota, 17 grudnia 11

XQuery. sobota, 17 grudnia 11 XQuery XQuery XQuery pozwala na wydobywanie danych z dokumentów XML w sposób podobny do tego w jaki używany jest SQL do tabel w bazach danych. XQuery to język do wykonywania zapytań na dokumentach XML.

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

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

Definicje. Algorytm to:

Definicje. Algorytm to: Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi

Bardziej szczegółowo

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL Celem ćwiczenia jest stworzenie dokumentu XML, wyposażenie dokumentu w specyfikację struktury (przy użyciu DTD i XML Schema), oraz transformacja

Bardziej szczegółowo

Zaawansowany kurs języka Python

Zaawansowany kurs języka Python Wykład 5. 30 października 2013 Plan wykładu 1 2 3 4 yield from Zamiast Example for item in iterable: yield item: można pisać Example yield from iterable Plan wykładu 1 2 3 4 Przykłady wyrażeń regularnych

Bardziej szczegółowo

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle EFEKTY KSZTAŁCENIA Wiedza Absolwent tej specjalności

Bardziej szczegółowo

Podstawowe konstrukcje Podstawowymi konstrukcjami są wzorce element oraz attribute:

Podstawowe konstrukcje Podstawowymi konstrukcjami są wzorce element oraz attribute: Standard Relax NG Schemat strukturalizacji dokumentów Relax NG (relaxing). Opracowany głównie przez Jamesa Clarka i Makoto Muratę. Standard ISO: Information technology Document Schema Definition Language

Bardziej szczegółowo

dziennik Instrukcja obsługi

dziennik Instrukcja obsługi Ham Radio Deluxe dziennik Instrukcja obsługi Wg. Simon Brown, HB9DRV Tłumaczenie SP4JEU grudzień 22, 2008 Zawartość 3 Wprowadzenie 5 Po co... 5 Główne cechy... 5 baza danych 7 ODBC... 7 Który produkt

Bardziej szczegółowo

Część I -ebxml. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

Część I -ebxml. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz Część I -ebxml Po zrealizowaniu materiału student będzie w stanie omówić potrzeby rynku B2B w zakresie przeprowadzania transakcji przez Internet zaprezentować architekturę ebxml wskazać na wady i zalety

Bardziej szczegółowo

Rys.2.1. Drzewo modelu DOM [1]

Rys.2.1. Drzewo modelu DOM [1] 1. CEL ĆWICZENIA Celem ćwiczenia jest przedstawienie możliwości wykorzystania języka JavaScript do tworzenia interaktywnych aplikacji działających po stronie klienta. 2. MATERIAŁ NAUCZANIA 2.1. DOM model

Bardziej szczegółowo

Język XSLT. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

Język XSLT. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz Język XSLT Po zrealizowaniu materiału student będzie w stanie Dokonać przekształcenia zawartości dokumentu XML do formatu HTML oraz TXT Realizować przetwarzanie warunkowe dokumentu XML Formatować wartości

Bardziej szczegółowo

Baza danych. Modele danych

Baza danych. Modele danych Rola baz danych Systemy informatyczne stosowane w obsłudze działalności gospodarczej pełnią funkcję polegającą na gromadzeniu i przetwarzaniu danych. Typowe operacje wykonywane na danych w systemach ewidencyjno-sprawozdawczych

Bardziej szczegółowo

Modelowanie i Programowanie Obiektowe

Modelowanie i Programowanie Obiektowe Modelowanie i Programowanie Obiektowe Wykład I: Wstęp 20 październik 2012 Programowanie obiektowe Metodyka wytwarzania oprogramowania Metodyka Metodyka ustandaryzowane dla wybranego obszaru podejście do

Bardziej szczegółowo

World Wide Web? rkijanka

World Wide Web? rkijanka World Wide Web? rkijanka World Wide Web? globalny, interaktywny, dynamiczny, wieloplatformowy, rozproszony, graficzny, hipertekstowy - system informacyjny, działający na bazie Internetu. 1.Sieć WWW jest

Bardziej szczegółowo

Bazy Danych i Usługi Sieciowe

Bazy Danych i Usługi Sieciowe Bazy Danych i Usługi Sieciowe Język PHP Paweł Witkowski Wydział Matematyki, Informatyki i Mechaniki Jesień 2011 P. Witkowski (Wydział Matematyki, Informatyki i Mechaniki) BDiUS w. VIII Jesień 2011 1 /

Bardziej szczegółowo

Kurs WWW Język XML, część II

Kurs WWW Język XML, część II Język XML, część II Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Zawartość modułu Wprowadzenie do XSL XPath XSLT XSL-FO Na podstawie kursów ze stron: http://www.w3schools.com/xpath/default.asp

Bardziej szczegółowo

Aplikacje webowe wspomagające działalność przedsiębiorstwa na przykładzie przychodni stomatologicznej

Aplikacje webowe wspomagające działalność przedsiębiorstwa na przykładzie przychodni stomatologicznej Aplikacje webowe wspomagające działalność przedsiębiorstwa na przykładzie przychodni stomatologicznej Małgorzata Barańska Wydział Informatyki i Zarządzania, Politechnika Wrocławska Beata Laszkiewicz Wydział

Bardziej szczegółowo

Programowanie internetowe

Programowanie internetowe Programowanie internetowe Wykład 1 HTML mgr inż. Michał Wojtera email: mwojtera@dmcs.pl Plan wykładu Organizacja zajęć Zakres przedmiotu Literatura Zawartość wykładu Wprowadzenie AMP / LAMP Podstawy HTML

Bardziej szczegółowo

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre) Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie

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

Języki skryptowe w programie Plans

Języki skryptowe w programie Plans Języki skryptowe w programie Plans Warsztaty uŝytkowników programu PLANS Kościelisko 2010 Zalety skryptów Automatyzacja powtarzających się czynności Rozszerzenie moŝliwości programu Budowa własnych algorytmów

Bardziej szczegółowo

5-6. Struktura dokumentu html. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

5-6. Struktura dokumentu html. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów Aplikacje internetowe KL. III Rok szkolny: 013/01 Nr programu: 31[01]/T,SP/MENIS/00.06.1 Okres kształcenia: łącznie ok. 170 godz. lekcyjne Moduł Bok wprowadzający 1. Zapoznanie z programem nauczania i

Bardziej szczegółowo

Semistrukturalne bazy danych Wykład dla studentów matematyki

Semistrukturalne bazy danych Wykład dla studentów matematyki Semistrukturalne bazy danych Wykład dla studentów matematyki 30 maja 2015 Dane semistrukturalne Dzięki WWW i Internetowi łatwo umieszczać informacje w sieci tak, żeby były powszechnie dostępne. Chęć wykorzystania

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

XHTML - Extensible Hypertext Markup Language, czyli Rozszerzalny Hipertekstowy Język Oznaczania.

XHTML - Extensible Hypertext Markup Language, czyli Rozszerzalny Hipertekstowy Język Oznaczania. XHTML - Extensible Hypertext Markup Language, czyli Rozszerzalny Hipertekstowy Język Oznaczania. Reformuje on znane zasady języka HTML 4 w taki sposób, aby były zgodne z XML (HTML przetłumaczony na XML).

Bardziej szczegółowo

REFERAT PRACY DYPLOMOWEJ

REFERAT PRACY DYPLOMOWEJ REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i implementacja środowiska do automatyzacji przeprowadzania testów aplikacji internetowych w oparciu o metodykę Behavior Driven Development. Autor: Stepowany

Bardziej szczegółowo