Wprowadzenie do XML. Tomasz Traczyk.
|
|
- Agnieszka Pietrzyk
- 9 lat temu
- Przeglądów:
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!): < > " ' & 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=" 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=" xsi:schemalocation=" 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=" 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=" <tytul>c++ XML</tytul> <autorzy> <autor>fabio Arciniegas</autor> </autorzy> <rokwydania>2002</rokwydania> <wydawnictwo>mikom</wydawnictwo> <cena>36</cena> </ksiazka> <ksiazka url="
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=" <tytul>c++ XML</tytul> <autorzy> <autor>fabio Arciniegas</autor> </autorzy> <rokwydania>2002</rokwydania> <wydawnictwo>mikom</wydawnictwo> <cena>36</cena> </ksiazka> <ksiazka url="
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" //ksiazka[@isbn=" x"] wybierz wszystkie numery ISBN //@isbn wybierz książki, które posiadają numer ISBN //ksiazka[@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 " " //ksiazka[@isbn=" "]/following::ksiazka 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=" xmlns:xsi=" xsi:schemalocation=" 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=" xmlns:xsi=" xsi:schemalocation=" 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=" xmlns:xsi=" xsi:schemalocation=" 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=" xmlns:xsi=" xsi:schemalocation=" 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=" targetnamespace=" xmlns=" 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=" targetnamespace=" xmlns=" 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=" targetnamespace=" xmlns=" 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=" targetnamespace=" xmlns=" 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 xpath="@id"/> <xsd:field xpath="@wersja"/> </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 marek@cs.put.poznan.pl
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=" 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=" 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=" 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=" 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=" 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/ Document Object Model (DOM) Document Object Model jest standardem modelowania dokumentów XML przy użyciu struktury
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
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
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
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
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
DTD - encje ogólne i parametryczne, przestrzenie nazw
DTD - encje ogólne i parametryczne, przestrzenie nazw Instytut Informatyki Encje Encja (ang.entity) - uogólnienie pojęcia makrodefinicji Encje to dogodny sposób reprezentacji danych które występują wielokrotnie,
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
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
WYKŁAD 1 METAJĘZYK SGML CZĘŚĆ 1
WYKŁAD 1 METAJĘZYK SGML CZĘŚĆ 1 SGML (Standard Generalized Markup Language) Standardowy uogólniony język znaczników służący do ujednolicania struktury i formatu różnego typu informacji (danych). Twórcy
Podstawy języka XML. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz
Podstawy języka XML Cel zajęć Po zrealizowaniu materiału student będzie w stanie Prawidłowo zidentyfikować składowe dokumentu XML Utworzyć dokument XML Dokonać sprawdzenia poprawności składniowej (syntaktycznej)
XML extensible Markup Language. Paweł Chodkiewicz
XML extensible Markup Language Paweł Chodkiewicz XML - extensible Markup Language Uniwersalny język znaczników przeznaczony do reprezentowania różnych danych w strukturalizowany sposób. Historia GML Projekt
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,
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
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
Słowem wstępu. Standard: W3C XPath razem XSLT 1.0. XPath razem z XQuery 1.0 i XSLT 2.0. XPath trwają prace nad XPath 3.
Słowem wstępu Standard: W3C XPath 1.0-1999 razem XSLT 1.0 XPath 2.0-2007 razem z XQuery 1.0 i XSLT 2.0 XPath 3.0-2014 trwają prace nad XPath 3.1 XPath Język deklaratywny służący wskazywaniu elementów,
INTEGRACJA I EKSPLORACJA DANYCH
INTEGRACJA I EKSPLORACJA DANYCH mgr inż. Anna Pankowska aniap@amu.edu.pl Anna Pankowska - I&E 1 Plan wykładu Integracja danych - Dane semistrukturalne i język XML jako standard składowania i wymiany danych
XML i nowoczesne technologie zarządzania treścią
XML i nowoczesne technologie zarządzania treścią Egzamin, 7 lutego 2014 r. Imię i nazwisko: Czas: 90 minut. Maksymalna suma punktów: 50. Pytania testowe są wielokrotnego wyboru, można przyjąć że co najmniej
29. Poprawność składniowa i strukturalna dokumentu XML
29. i strukturalna dokumentu XML 13 października 2015 1 2 Poprawny składniowo dokument XML powinien być tworzony zgodnie z poniżej przedstawionymi zasadami. Deklaracja XML Powinien zawierać deklarację
Słowem wstępu. Część rodziny języków XSL. Standard: W3C XSLT razem XPath 1.0 XSLT Trwają prace nad XSLT 3.0
Słowem wstępu Część rodziny języków XSL Standard: W3C XSLT 1.0-1999 razem XPath 1.0 XSLT 2.0-2007 Trwają prace nad XSLT 3.0 Problem Zakładane przez XML usunięcie danych dotyczących prezentacji pociąga
Przykładowy dokument XML
Przykładowy dokument XML DTD - wady Ograniczona kontrola nad strukturą dokumentów. Zbyt wysokopoziomowe typy danych: liczby, daty są zawsze reprezentowane jako tekst! Bardzo ogólne metody definiowania
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
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ć
Elektroniczna wymiana danych (EDI) jest to: - wymiana informacji pomiędzy komputerami, z użyciem powszechnie akceptowanych standardów
Elektroniczna wymiana danych (EDI) jest to: - wymiana informacji pomiędzy komputerami, z użyciem powszechnie akceptowanych standardów Znaczniki w języku XML: - mogą zostać zdefiniowane przez użytkownika
Extensible Markup Language (XML) Wrocław, Java - technologie zaawansowane
Extensible Markup Language (XML) Wrocław, 15.03.2019 - Java - technologie zaawansowane Wprowadzenie XML jest językiem znaczników (ang. markup language) używanym do definiowania zbioru zasad rozmieszczenia
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
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
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
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
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
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
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
Podstawy XML-a. Zaawansowane techniki programowania
Podstawy XML-a Zaawansowane techniki programowania Dokumenty XML XML = ang. Extensible Markup Language rozszerzalny język znaczników
Dokument poprawnie sformułowany jest zgodny z ogólnymi zasadami składniowymi:
DTD Document Type Definition Dokument poprawnie sformułowany (well-formed) Dokument poprawnie sformułowany jest zgodny z ogólnymi zasadami składniowymi: 1. KaŜdy znacznik musi posiadać zamknięcie (wyjątek
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
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
1 XML w bazach danych
XML w bazach danych 1 Plan 2 Wprowadzenie do języka XML Standard SQL-XML Funkcje SQL-XML Format XML 3 Formalnie, XML stanowi podzbiór języka Standard Generalized Markup Language (SGML) (ISO 8879:1986)
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
Wprowadzenie do XML. Joanna Jędrzejowicz. Instytut Informatyki
Instytut Informatyki Literatura http://www.w3c.org/tr/ - Technical Reports K. B. Stall - XML Family of Specifications, Addison-Wesley 2003 P. Kazienko, K. Gwiazda - XML na poważnie, Helion 2002 XML Rozszerzalny
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...
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
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
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
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).
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
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
Liczba godzin. N (nauczyciel) studia niestacjonarne
OPIS MODUŁU KSZTAŁCENIA (przedmiot lub grupa przedmiotów) Nazwa modułu Przedmioty Wprowadzenie do programowania aplikacji internetowych Nazwa jednostki prowadzącej przedmiot Instytut Matematyki kierunek
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
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
XPath XML Path Language. XPath. XSLT część 1. XPath data model. Wyrażenia XPath. Osie (axes) Location paths
XPath XML Path Language XPath. XSLT część 1 Problem: jednoznaczne adresowanie fragmentów struktury dokumentu XML. Rozwiązanie: abstrakcyjny drzewiasty model struktury dokumentu, normalizacja zawartości
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
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
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ę
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
Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD, XML Schema. Struktura logiczna dokumentu XML. Składnia XML. Encje predefiniowane.
Definiowanie typów dokumentów Część 1. DTD, XML Schema Jak wygląda XML? st. asp. Jan Łapówka dołowice Górne wypadek
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
Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści
Język programowania DELPHI / Andrzej Marciniak. Poznań, 2012 Spis treści Przedmowa 11 Przyjęta notacja 13 Rozdział 1. Wprowadzenie 15 1.1. Ogólne zasady programowania zorientowanego obiektowo 15 1.2. Historia
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
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
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!)*' { '',
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
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:
Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki
Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu
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
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ć
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ąć
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
Plan prezentacji DTD. Wiązanie DTD z dokumentem XML Deklaracja typu dokumentu. Co to jest DTD. Wstęp. Przedmiot: XML i jego zastosowania
Plan prezentacji Przedmiot: XML i jego zastosowania Dr inż. Stanisław Polak Akademia Górniczo - Hutnicza w Krakowie, Katedra Informatyki http://www.icsr.agh.edu.pl/~polak/ Wstęp Deklarowanie elementów
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
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
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
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
XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery
http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod
Zaawansowane aplikacje internetowe. Wykład 2. Komunikacja XML. wykład prowadzi: Maciej Zakrzewicz. Komunikacja XML
Wykład 2 Komunikacja XML wykład prowadzi: Maciej Zakrzewicz Komunikacja XML 1 Plan wykładu Modelowanie dokumentów XML za pomocą drzew DOM Specyfikacja W3C DOM API Implementacja drzew DOM w języku Java
Rok akademicki: 2013/2014 Kod: ZZIP IN-s Punkty ECTS: 2. Kierunek: Zarządzanie i Inżynieria Produkcji Specjalność: Informatyka w zarządzaniu
Nazwa modułu: Elektroniczna wymiana danych w przemyśle Rok akademicki: 2013/2014 Kod: ZZIP-2-306-IN-s Punkty ECTS: 2 Wydział: Zarządzania Kierunek: Zarządzanie i Inżynieria Produkcji Specjalność: Informatyka
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
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 Patryk
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
Obiektowy model dokumentu. Katedra Mikroelektroniki i Technik Informatycznych
Katedra Mikroelektroniki i Technik Informatycznych Łódź, 14 października 2005 roku Wstęp DOM Document Object Model zapewnia: Zbiór obiektów reprezentujących dokumenty XML i HTML. Model łączenia obiektów.
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
Spis treści. Przedmowa
Spis treści Przedmowa V 1 SQL - podstawowe konstrukcje 1 Streszczenie 1 1.1 Bazy danych 1 1.2 Relacyjny model danych 2 1.3 Historia języka SQL 5 1.4 Definiowanie danych 7 1.5 Wprowadzanie zmian w tabelach
Wybrane działy Informatyki Stosowanej
Wybrane działy Informatyki Stosowanej Java Enterprise Edition. WebServices. Język XML. Serwer aplikacji GlassFish. Dr inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki
Kurs OPC S7. Spis treści. Dzień 1. I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501)
Spis treści Dzień 1 I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501) I-3 O czym będziemy mówić? I-4 Typowe sytuacje I-5 Klasyczne podejście do komunikacji z urządzeniami
Języki XPath i XQuery
Języki XPath i XQuery Patryk Czarnik Instytut Informatyki UW XML i nowoczesne technologie zarządzania treścią 2008/09 XPath i XQuery Języki zapytań nad dokumentami XML wygodny wybór określonych węzłów
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
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ąć
PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),
PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 1. Wprowadzenie do aplikacji internetowych
Podstawy programowania skrót z wykładów:
Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace
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,
Języki XPath i XQuery
Języki XPath i XQuery Patryk Czarnik Instytut Informatyki UW XML i nowoczesne technologie zarzadzania treścia 2007/08 Model danych XPath Drzewo dokumentu Sekwencje i atomy Język XPath Od podstaw Ścieżki
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
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
Prezentacja i transformacja
Prezentacja i transformacja Bartłomiej Świercz Katedra Mikroelektroniki i Technik Informatycznych Łódź, 11 kwietnia 2010 Prezentacja i transformacja CSS2a Ważną cechą dokumentów XML jest ich łatwa prezentacja
WYMAGANIA EDUKACYJNE. Witryny i Aplikacje Internetowe klasa I
WYMAGANIA EDUKACYJNE Witryny i Aplikacje Internetowe klasa I Dopuszczający definiuje pojęcia: witryna, portal, wortal, struktura witryny internetowej; opisuje rodzaje grafiki statycznej wymienia i charakteryzuje
PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),
PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy
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
Po zakończeniu rozważań na temat World Wide Web, poznaniu zasad organizacji witryn WWW, przeczytaniu kilkudziesięciu stron i poznaniu wielu nowych
rk Po zakończeniu rozważań na temat World Wide Web, poznaniu zasad organizacji witryn WWW, przeczytaniu kilkudziesięciu stron i poznaniu wielu nowych pojęć, prawdopodobnie zastanawiasz się, kiedy zaczniesz
Wprowadzenie do technologii XML
Wprowadzenie do technologii Bartłomiej Świercz Katedra Mikroelektroniki i Technik Informatycznych Łódź, 11 kwietnia 2010 Program wykładu Celem wykładu jest przedstawienie technologii i pokrewnych do niej
Bazy danych i strony WWW
Bazy danych i strony WWW Obsługa baz danych poprzez strony WWW Niezbędne narzędzia: serwer baz danych np. MySQL serwer stron WWW np. Apache przeglądarka stron WWW interpretująca język HTML język skryptowy