Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

XML, DTD, Schema Zaawansowane Aplikacje Internetowe Dawid Weiss.

Podobne prezentacje


Prezentacja na temat: "XML, DTD, Schema Zaawansowane Aplikacje Internetowe Dawid Weiss."— Zapis prezentacji:

1 XML, DTD, Schema Zaawansowane Aplikacje Internetowe Dawid Weiss

2 Plan wykładu XML Czym jest XML?, krótka historia języka XML Dlaczego XML jest użyteczny? Jak wygląda XML? Prezentacja elementów języka Parsery języka XML Walidacja XML – DTD/ Schema Czemu służy walidacja? Jak wygląda DTD? Jak wygląda Schema?

3 Czym jest XML? www.w3.org/XML XML is a simple, very flexible text format derived from SGML. Originally designed to meet the challenges of large-scale electronic publishing, XML is also playing an increasingly important role in the exchange of a wide variety of data on the Web and elsewhere XML definiuje strukturę dokumentu, pozostawiając interpretację znaczenia elementów tej struktury programiście XML jest sposobem meta-opisu, dowolnej innej struktury danych

4 Czym jest XML? – struktura a znaczenie Dawid Weiss xxxxx

5 Krótka historia XML XML powstał jako uproszczenie SGML Standard Generalized Markup Language (~1960/70), standard ISO SGML jest bardzo rozbudowany, kosztowny w implementacji i długotrwały w opanowaniu XML – podzbiór SGML, 1998 (specyfikacja tylko ok. 20 stronicowa) XML szybko się rozprzestrzenił, powstają parsery dla wielu języków Technologie follow-up: Xpath, Xpointer, XSLT, XSL:FO, Xlink...

6 Dlaczego XML jest pożyteczny? XML jest zrozumiały dla ludzi (jest plikiem tekstowym) uwaga: chyba, że struktura dokumentu nie ma sensu: XML ułatawia pracę programisty Parsery Walidacja Łatwo rozszerzalny XML jest trendy :)

7 Dlaczego XML jest użyteczny, c.d. Fragment dokumentu z napisem hello world zapisanego z OpenOffice (w XML) i MS Word (w formacie własnym)

8

9

10 Elementy języka: prolog XML jest plikiem tekstowym zwykle rozpoczynającym się od prologu Wszystkie parsery muszą wspierać przynajmniej UTF-8 i UTF-16 Prolog jest opcjonalny, ale powinien być wyspecyfikowany

11 Elementy języka: tagi Struktura jest zdefiniowana przez tagi (ang. markup) Tag to sekwencja alfanumerycznych znaków zawartych między ' ' Tag otwierający: Tag zamykający: Tag pusty (bez ciała): Przykłady: 129 79 married

12 Elementy języka: atrybuty Atrybuty są częścią struktury i pozwalają na związanie z tagami par nazwa-wartość Jedynie tagi otwierające mogą posiadać atrybuty Nazwa atrybutu jest unikalna w obrębie jednego tagu niepoprawny przykład: Przykłady 129

13 Pierwszy dokument XML

14 Elementy języka: instrukcje sterujące Instrukcje sterujące nie są częścią dokumentu, ale są wykrywane i sygnalizowane przez parsery XML Instrukcja sterująca wygląda następująco: Prolog w XML jest przykładem instrukcji sterującej

15 Elementy języka: komentarze Komentarze to bloki tekstowe występujące między sekwencjami znaków: ' ' Przykłady: Komentarze nie mogą być deklarowane w definicji tagów W komentarzach nie może pojawić się sekwencja -- Weiss

16 Elementy języka: tekst, czyli Piąty Element Tekst może wystąpić wszędzie między tagami Białoszewski Miron Być to... być to źle a nie? Białoszewski Miron Być to... być to źle a nie?

17 Tekst, c.d. Spacje mogą być, na życzenie programisty, zignorowane przez parsery XML Jeśli zachodzi potrzeba umieszczenia znaków specjalnych (<>&), należy posłużyć się albo encjami, albo blokiem CDATA Wszystkie znaki w bloku CDATA są przekazywane do parsera XML dokładnie tak, jak zostały zapisane

18 Blok CDATA Białoszewski Miron Namuzowywanie <![CDATA[Muzo Natchniuzo tak ci końcówkuję z niepisaniowości natreść mi ości i uzo]]>

19 Kodowanie znaków w XML Prolog mówi parserowi jakiego kodowania należy użyć w interpretacji dokumentu Nazwy stron kodowych: IETF RFC 1766 Domyślna 'UTF-8' (Unicode) Przykład: prosty plik XML z literką ą

20 Przykład: UTF-16 (ą=0x0105) ą

21 ą Przykład: ISO8859-2 (ą = 0xB1)

22 Encje w tekście Ponieważ niektóre znaki ( ' ' ) mają dla parsera specjalne znaczenie, więc trzeba je albo zakodować, albo umieścić w bloku CDATA Encje: '&' + entity_name + ';' Przykład: © Dawid Weiss & Krzysztof Kowalczykiewicz © Dawid Weiss & Krzysztof Kowalczykiewicz

23 Parsery XML Moduły programowe, które ułatwiają interpretację plików XML Dwie strategie: DOM i SAX [pull/ push] DOM (Document Object Model) Obiektowa reprezentacja dokumentu Łatwiejsza w obsłudze, ale wymaga pamięci i sparsowania całego dokumentu XML SAX (Simple API for XML) Interfejs oparty na zdarzeniach Interpretacja w locie; zdarzenia są przekazywane do kodu programu, przetworzona część pliku nie jest pamiętana

24 Parsery XML Parsers for Java: Xerces Saxon Piccolo Crimson (obsolete)... Parsery dla C++ (i C) Xerces-C Libxml

25 Zadanie domowe (1) Napisać aplikację opartą o interfejs SAX i DOM, która wypisze osobę, której wiek jest większy niż 25 lat Przykładowy plik wejściowy: Dawid Weiss 20 Krzysztof Kowalczykiewicz 40

26 Walidacja XML Dokument XML określamy jako poprawny (ang. well formed), jeśli jego struktura jest poprawna w sensie składni języka XML Parser XML nie wskaże błędów przy interpretacji takiego pliku Dokument XML określamy jako valid, jeśli jego struktura jest poprawna i jest on poprawny w sensie składni elementów zdefiniowanej za pomocą DTD lub języka XML Schema

27 DTD DTD jest tekstowym opisem tego, jak tagi i zawartość pliku XML powinna być zorganizowana DTD pozwala na specyfikację następujących elementów tagi atrybuty encje bloki PCDATA (parsed character data) bloki CDATA (character data – not to be processed by the parser)

28 Elementy języka DTD Dawid Weiss 20 Krzysztof Kowalczykiewicz 40 or

29 Elementy języka DTD (c.d.) Dawid Weiss 20 Krzysztof Kowalczykiewicz 40 or <!ELEMENT person (first-name, surname, age) >

30 Elementy języka DTD (c.d.) Dawid Weiss 20 Krzysztof Kowalczykiewicz 40 or <!ELEMENT person (first-name, surname, age) >

31 Elementy języka DTD (c.d.) Dawid Weiss 20 Krzysztof Kowalczykiewicz 40 or <!ELEMENT person (first-name, surname, age) >

32 DTD: jak go wskazać parserowi XML? DTD załączone z dokumentem <!DOCTYPE people [ ]> Dawid Weiss 20 Krzysztof Kowalczykiewicz 40

33 DTD: jak go wskazać parserowi XML? DTD wskazane jako plik w systemie Dawid Weiss 20 Krzysztof Kowalczykiewicz 40

34 DTD: jak go wskazać parserowi XML? DTD wskazane jako publiczny plik <!DOCTYPE article PUBLIC "-//PP//DTD EXAMPLE1//PL" "http://www.xxx.pl/example.dtd" Dawid Weiss 20 Krzysztof Kowalczykiewicz 40

35 Zadanie domowe (2) Proszę przeczytać tutorial do DTD ze strony: http://www.w3schools.com/dtd/default.asp Proszę eksperymentować z DTD i przykładami Parser (walidujący) i przykłady będą dostępne na stronie: http://www.cs.put.poznan.pl/dweiss/tmp

36 Język XML Schema Argumenty przeciwko DTD Jest dziwny Nie jest wystarczająco precyzyjny XML Schema jest jak DTD, lecz specyfikowane w języku XML Wspiera typy danych Wspiera warunki na wartości atrybutów Wspiera dziedziczenie typów Argumenty przeciwko XML Schema Jest trudniejszy do nauczenia

37 XML Schema – jak tego użyć? Plik XML Schema można zweryfikować przy pomocy XML Schema XML Schema jest dość skomplikowany. Polecany jest edytor wizualny, np. XML Spy

38

39 XML namespaces Przykład* Oba tagi TITLE mają inne znaczenie, jednak parser potraktuje je identycznie Specyfikacja XML Namespaces pozwala na wyodrębnienie kontekstu dla elementów XML XML Developer's Guide 44.95 Ms Ambercrombie Kim * quoted from Microsoft's documentation

40 XML namespaces Przykład XML Developer's Guide 44.95 Ms Ambercrombie Kim

41 Więcej informacji o XML... XML 1.0 recommendation (W3C) http://www.w3.org/TR/REC-xml XML tutorial (W3C) http://www.w3schools.com/xml/default.asp AllTheWeb, Google, inne wyszukiwarki (jest mnóstwo informacji o XML)


Pobierz ppt "XML, DTD, Schema Zaawansowane Aplikacje Internetowe Dawid Weiss."

Podobne prezentacje


Reklamy Google