XML
dr inż. Wioleta Szwoch
Katedra Inteligentnych Systemów
Interaktywnych
2
Wioleta Szwoch, Katedra Inteligentnych Systemów Interaktywnych, WETI, PG
Ustandaryzowany język znaczników
• GML
– 1969 E.Mosher, R.Lorie, Ch. F. Goldfarb
– pierwszy język znaczników
• Standard General Markup Language (SGML)
– standard ISO (1986) wymiany i przechowywania danych
– pełna separacja struktury dokumentu od sposobu
prezentacji
– znakowanie nie implikuje stylu prezentacji
– zestaw znaczników definiowany w odrębnej deklaracji
DTD
3
Wioleta Szwoch, Katedra Inteligentnych Systemów Interaktywnych, WETI, PG
• Rozszerzalny
– wykorzystywane w dokumencie
elementy języka, znaczniki, projektowane są
przez użytkownika
• Język
– dokument budowany jest zgodnie z
określonymi zasadami składni,
• Znaczników
– dokument budowany jest w
oparciu o znaczniki
XML - eXtensible Markup Language
Rozszerzalny Język Znaczników
4
Wioleta Szwoch, Katedra Inteligentnych Systemów Interaktywnych, WETI, PG
XML (
Extensible Markup Language
)
• 10 II 1998 r XML 1.0
• metajęzyk
• rozszerzalny, sformalizowany
• opracowany z myślą o zastosowaniu w Internecie
5
Wioleta Szwoch, Katedra Inteligentnych Systemów Interaktywnych, WETI, PG
XML (
Extensible Markup Language
)
• standard otwarty
• nie jest licencjonowany
• język tekstowy
• elastyczny
• sam się opisuje
• kontekstowy
6
Wioleta Szwoch, Katedra Inteligentnych Systemów Interaktywnych, WETI, PG
XML (
Extensible Markup Language
)
• niezależny od platformy
• hierarchiczny
• sformalizowany
• oddzielenie treści od prezentacji
• możliwość zróżnicowanej prezentacji
• modułowy
7
Wioleta Szwoch, Katedra Inteligentnych Systemów Interaktywnych, WETI, PG
Typowe zastosowania
• Tworzenie stron internetowych
– strony specjalistyczne, komunikacja mobilna WML,
XHTML
– potrzeba większej formalizacji informacji, dalsze jej przetwarzanie
• Opis zasobów
– wyszukiwanie informacji, deskryptory zasobów
• RDF (
Resource Description Framework
), OWL (
Web Ontology Language
)
• WSDL (
Web Services Description Language
)
język opisu usług sieciowych
• Reprezentacja informacji semistrukturalnej
– informacja mająca zmienną, słabo ustaloną strukturę
– złożone dokumenty tekstowe
8
Wioleta Szwoch, Katedra Inteligentnych Systemów Interaktywnych, WETI, PG
Typowe zastosowania
• Multimedia
– zapis informacji multimedialnej – SVG
– sterowanie przetwarzaniem informacji multimedialnej SMIL,
Voice-ML
• Specjalistyczne struktury danych
– do przekazywania informacji naukowej, ekonomicznej itp. w
społeczności specjalistów z danej dziedziny
• Bazy danych
– XML warstwą pośrednią pomiędzy bazami danych a serwisami
internetowymi
9
Wioleta Szwoch, Katedra Inteligentnych Systemów Interaktywnych, WETI, PG
Typowe zastosowania
• Komunikacja w sferze publicznej
– wymiana danych między urzędem a obywatelem/przedsiębiorstwem
• Elektroniczna wymiana danych i dokumentów (EDI)
– biznes, handel elektroniczny
– bezpieczeństwo dokumentów XML – XML Signature, XML
Encryption
• Konfiguracja oprogramowania
– format zapisu plików konfiguracyjnych
• Protokoły komunikacyjne
– SOAP, XML-RPC
10
Wioleta Szwoch, Katedra Inteligentnych Systemów Interaktywnych, WETI, PG
Wady XML
• niedostatki implementacji standardów XML-owych
• rozwlekłość zapisu
• problemy z wydajnością przetwarzania
– rozwlekłość zapisu
– stosowanie uniwersalnych narzędzi
• ograniczenia wynikające z hierarchicznej struktury danych
– w strukturach takich w naturalny sposób przedstawić można
jedynie jeden typ powiązań pomiędzy dwoma typami obiektów
11
Wioleta Szwoch, Katedra Inteligentnych Systemów Interaktywnych, WETI, PG
Dokument XML
dokument
dokument
XML
XML
Deklaracje
Deklaracje
typu
typu
dokumentu
dokumentu
DTD
DTD
Arkusze
Arkusze
stylów XSL
stylów XSL
(XSL FO
(XSL FO
XSLT)
XSLT)
Schematy
Schematy
XML
XML
Schema
Schema
Bazy
Bazy
odsyłaczy
odsyłaczy
XLink
XLink
Wyszukiwanie
Wyszukiwanie
fragmentów
fragmentów
dokumentu
dokumentu –– XPath
XPath
12
Wioleta Szwoch, Katedra Inteligentnych Systemów Interaktywnych, WETI, PG
Dokument XML
• W deklaracji należy określić:
– wersję języka XML (version)
– opcjonalnie
• rodzaj kodowania znaków (encoding)
– UTF-8; UTF-16; ISO-8859-1; ISO-8859-2; windows-1250
• przetwarzanie zewnętrznych DTD (standalone)
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<person>
Definicja dla osoby
<FirstName>Anna</FirstName>
<LastName>Kowalska</LastName> z mieszaną zawartością
</person>
13
Wioleta Szwoch, Katedra Inteligentnych Systemów Interaktywnych, WETI, PG
XML - składniki dokumentu
• Elementy
• Atrybuty
• Deklaracje
• Encje
• Instrukcje przetwarzania
14
Wioleta Szwoch, Katedra Inteligentnych Systemów Interaktywnych, WETI, PG
XML - elementy
• Podstawowe pojęcie - określa znaczenie treści informacji
<nazwisko> Kowalski Jan </nazwisko>
• Rozróżnianie dużych i małych liter
• Nazwa znacznika może zawierać:
– litery, cyfry
– - . (nie na początku)
– _ : (może być na początku)
15
Wioleta Szwoch, Katedra Inteligentnych Systemów Interaktywnych, WETI, PG
XML - elementy
• Rodzaje zawartości elementów
– elementy
– zawartość tekstowa
– zawartość mieszana
• Element pusty
<odsylacz href=‘http://www.wp.pl’ />
<odsylacz href=‘http://www.wp.pl’> </odsylacz>
16
Wioleta Szwoch, Katedra Inteligentnych Systemów Interaktywnych, WETI, PG
XML - hierarchia elementów
komputer
komputer
monitor
monitor
urz_zewn
urz_zewn
urz_wewn
urz_wewn
myszka
myszka
klawiatura
klawiatura
obudowa
obudowa
ram
ram
dysk
dysk
dysk
dysk
.
.
.
korzeń
<komputer> <monitor>
LCD
</monitor> </komputer>
17
Wioleta Szwoch, Katedra Inteligentnych Systemów Interaktywnych, WETI, PG
XML - atrybuty
• Wg standardu kolejność atrybutów dowolna
• W jednym elemencie tylko różne nazwy atrybutów
• Ograniczenia na nazwę atrybutu jak przy
elemencie
<nazwisko panienskie=”nie”>
Kowalski
</nazwisko>
18
Wioleta Szwoch, Katedra Inteligentnych Systemów Interaktywnych, WETI, PG
18
XML - deklaracje
• <!NAZWA_DEKLARACJI ...>
• <!zbior_deklaracji
[
<!deklaracja1>
<!deklaracja2>
]>
• deklaracje podstawowe
– komentarze <!-- treść komentarza -->
– sekcje CDATA
<![CDATA[tekst]]>
• deklaracje wykorzystywane w DTD
– <!DOCTYPE ...> <!ATTLIST …>
…
19
Wioleta Szwoch, Katedra Inteligentnych Systemów Interaktywnych, WETI, PG
19
XML - encje
• podział dokumentu na mniejsze części
• zastosowanie
– ta sama informacja używana wielokrotnie
– informacja jest częścią dużego dokumentu
– informacja zawiera dane nie przetwarzane przez XML
• podział
– encje wewnętrzne
– encje zewnętrzne
– encje parametrów
20
Wioleta Szwoch, Katedra Inteligentnych Systemów Interaktywnych, WETI, PG
20
XML - instrukcje przetwarzania
• zawierają informacje potrzebne programom
przetwarzającym XML
<?aplikacjadocelowa instrukcjaprzetwarzania ?>
• pozwalają na umieszczenie w dokumencie XML
fragmentów innych języków
<?xml-stylesheet type="text/xsl" href="podroz.xslt"?>
<?php
mysql_connect(”baza.pl”, ”kowalski”, ”hasło”);
mysql_close()
?>
21
Wioleta Szwoch, Katedra Inteligentnych Systemów Interaktywnych, WETI, PG
21
Poprawność dokumentu
• dokument dobrze uformowany (well-formed)
Parser
dokument
XML
Dokument
dobrze
uformowany
Dokument
niepoprawnie
uformowany
22
Wioleta Szwoch, Katedra Inteligentnych Systemów Interaktywnych, WETI, PG
22
Poprawność dokumentu
• dokument poprawny strukturalnie (valid
document)
• dokument dobrze uformowany (well-formed)
Parser
dokument
XML
reguły
DTD,
Schema
Dokument
poprawny
strukturalnie
Dokument
niepoprawny
strukturalnie
Poprawność dokumentu
Dobrze uformowany
(ang. well-formed)
• jeden element główny –
korzeń
• wszystkie znaczniki
pozamykane
• wartości atrybutów ujęte w
cudzysłowy lub prawe
apostrofy
• zakresy znaczników sie nie
przecinają
• …
Prawidłowy (ang. valid)
• jest „dobrze uformowany”
• posiada definicje
dokumentu (DTD, XML
Schema, . . . )
• zawartość zgodna z
definicją dokumentu
Wioleta Szwoch, Katedra Inteligentnych Systemów Interaktywnych, WETI, PG
23