Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałLechosława Ryczko Został zmieniony 11 lat temu
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)
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
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)
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.