quote

Transkrypt

quote
Definicja i własności
•
Rozszerzalny język znaczników (ang. eXtensible
Markup Language)
•
Wywodzący się z języków SGML i HTML
•
Głównym celem jest strukturyzacja i przenoszenie
danych
Inne języki znacznikowe
•
HTML
•
LaTeX i TeX
•
RTF
SGML
•
Standard Generalized Markup Language
•
Specyfikacja zgodna z normą ISO 8879:1986
•
Restrykcyjne podejście do poprawności
składniowej
SGML - struktura
dokumentów
•
Deklaracja dokumentu
•
Prolog
•
•
DOCTYPE
•
DTD (Document Type Declaration)
Treść właściwa
SGML/HTML
<QUOTE TYPE="example">
typically something like <ITALICS>this</ITALICS>
</QUOTE>
SGML - przyczyny
problemów
•
OMITTAG
•
SHORTTAG
•
NETENABL
•
IMMEDNET
<QUOTE TYPE="example">
typically something like <ITALICS>this</ITALICS>
</QUOTE>
=
<QUOTE TYPE=example>
typically something like <ITALICS>this</>
</QUOTE>
<QUOTE TYPE="example">
typically something like <ITALICS>this</ITALICS>
</QUOTE>
=
<QUOTE TYPE=example//
typically something like <ITALICS>this</>
</QUOTE>
<chapter>
<title>Introduction to SGML</title>
<section>
<title>The SGML Declaration</title>
<subsection>
treść
</subsection>
</section>
</chapter>
=
<//
<>Introduction to SGML</title>
<section>
<title>The SGML Declaration
<subsection>
treść
</>
</chapter//
HTML - wady
•
Brak możliwości definiowania własnych znaczników
•
Rozbieżność głównego celu standardu:
•
Czy ma strukturyzować treść?
•
Czy ma definiować wygląd?
•
Niespójność znaczników domykających (np. <img>)
•
Wartości atrybutów mogą być wyrażane na różne sposoby
•
Wielkość liter nie ma znaczenia
HTML - wady
•
Rozwiązuje tylko jeden problem
•
Różne wersje i dialekty (strict, transitional etc.)
•
Szacuje się, że co najmniej połowa kodu
przeglądarek służy do obsługi błędnego HTML.
XML - główne cechy
•
Odpowiada hierarchicznemu modelowi wiedzy
•
Podzbiór SGML
•
Możliwość definiowania
•
struktury dokumentu
•
znaczników
•
Względnie proste przetwarzanie - należy uważać
na rekurencje
•
Łatwa interpretacja dokumentu nawet bez definicji
struktury dokumentu
Założenia XML
•
Łatwa wymiana danych i dokumentów między
różnymi systemami informatycznymi
•
Tworzenie i prezentacja dokumentów z różnych
dziedziny
•
Wymiana danych z silną kontrolą poprawności
typów danych, identyfikatorów i odwołań
•
Możliwość definiowania nowych typów
dokumentów w oparciu o definicje już istniejące
XML nie jest alternatywnym
modelem danych wobec
np. relacyjnych baz danych
Dokumenty XML
•
Plik tekstowy
•
Znaczniki ujęte pomiędzy znakami <> oraz </>
•
Nie ma predefiniowanych znaczników
•
Znaczniki nie mają domyślnej prezentacji
Struktura dokumentu XML
•
Prolog
•
•
zawiera informacje opisujący dokument, a nie jego
zawartość
Element główny
•
Elementy podrzędne
•
Elementy bardziej podrzędne
•
Elementy jeszcze bardziej podrzędne
•
i tak wiele razy
XML - pierwsze starcie
<?xml version=”1.1” encoding=”utf-8” ?>
<quotation name=”Average Exchange Rates”>
<author name=”National Bank of Poland”/>
<currency>
<currencyCode>EUR</currencyCode>
<country>EU</country>
<rate date=’2008-02-26’>3.5318</rate>
</currency>
</quotation>
Elementy, węzły
•
Element (węzęł) jest głównym składnikiem
dokumentu XML
<currencyCode>EUR</currencyCode>
•
Musi posiadać znacznik otwierający i zamykający
•
Dowolność w nazewnictwie, ale lepiej nie używać
znaków spoza ASCII
•
Co innego w zawartości węzłów - wtedy tylko
wybrane kodowanie jest ograniczeniem
Elementy, węzły, znaczniki
• Deklaracja XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
• Znaczniki:
<tag attributename="attribute value"> </tag>
• Znaczniki elementu pustego:
<br></br>
=
<br/>
• Komentarz:
<!-- komentarz -->
• Instrukcja przetwarzania:
<?target processing-instruction-body?>
• Sekcja CDATA:
<![CDATA[dowolny <tekst " nieprzetwarzany & przez [ parser]]>
Elementy, węzły
•
Mogą zawierać:
•
tekst ciągły (XML sam w sobie nie ma typów danych)
•
inne węzły
•
pustą zawartość (węzły samodomykające się)
<type issueTime=’morning’ />
•
•
zawartość mieszaną
Tworzą drzewiastą strukturą zwaną modelem dokumentu (DOM - Document Object Model)
XPath
•
XPath to język wykorzystywany do adresowania,
odczytywania i przeszukiwania drzew DOM
dokumentów XML
•
Można go traktować jak SQL dla XML’a
•
Stosowana jest notacja zbliżona do nawigacji w
systemie plików
•
Wynikiem jest zbiór węzłów spełniających zadane
kryteria mogących pochodzić z różnych poziomów
drzewa DOM
XPath
XPath - przykłady
•
wybierz autorów wszystkich
książek
/katalog/ksiazka/autorzy
•
wybierz wszystkie wydawnictwa
dowolnie zagłębione w drzewie
//wydawnictwo
•
wybierz drugiego autora
pierwszej książki
//ksiazka[1]//autor[2]
Błędny XML
<?xml version=”1.0” encoding=”utf-8” ?>
<?xml-stylesheet type="text/css" href="katalog.css" ?>
<Catalog>
<Artist>
<Artist-Name> Pink Floyd </Artist-Name>
<Album id="1">
<Title> Momentary Lapse of Reason </Title>
<Year> 1987 </Year>
<Album id="2">
<Title> The Animals </Title>
<Year> 1977 </Yaer>
</Album>
</Artist>
</Catalog>
XML - weryfikacja i
walidacja
W procesie weryfikacji parser sprawdza poprawność
składniową dokumentu:
•
pojedynczy element główny i zgodna wielkość liter,
•
wymagane stosowanie znaczników zamykających,
•
wartości atrybutów zamknięte w cudzysłowach,
•
poprawne zagnieżdżanie znaczników.
XML - weryfikacja i
walidacja
W procesie walidacji sprawdzana jest prawidłowość
dokumentu, czyli jego zgodność z
•
deklaracją DTD (Document Type Definition)
•
schematem XML (XML Schema)
XML - walidacja i
weryfikacja
Definiując różne deklaracje DTD lub XML Schema
można tworzyć odrębne języki oparte o XML np.:
•
SVG (Scalable Vector Graphics)
•
MathML
•
CML (Chemical Markup Language)
•
OWL (Web Ontology Language)
DTD
Document Type Definition
•
metoda definiowania kryteriów poprawności
dokumentów XML
•
określenie struktury dokumentu XML oraz listy
poprawnych elementów
DTD - przykład
DTD - przykład
Definicja węzłów
<!ELEMENT nazwa (model_zawartości)>
•
#PCDATA - zawartość tekstowa
•
EMPTY - element pusty
•
ANY - zawartość dowolna
Powtarzalność
*
0 lub wiecej wystąpień
+
1 lub wiecej wystąpień
?
0 lub 1 wystąpienie
,
sekwencja
|
alternatywa
Definicja atrybutu
•
<!ATTLIST węzeł typ kwalifikator wartość_domyślna>
Typy atrybutów
ID
unikatowa (w ramach dokumentu) wartość
identyfikatora
IDREF
wskaźnik do innego elementu (identyfikowanego z
wykorzystaniem atrybutu typu ID)
NMTOKEN
ciąg dozwolonych znaków
NMTOKENS
ciąg wartości NMTOKEN oddzielonych spacjami
(a | b | c)
jedna z podanych wartości (XOR)
Kwalifikatory
#REQUIRED
wartość wymagana
#IMPLIED
wartość opcjonalna
#FIXED
wartość stała dla każdego
wystąpienia atrybutu
Przykłady
Wady DTD
•
Mała kontrola nad tekstową zawartością elementów i
wartościami atrybutów
•
Brak identyfikacji typów podstawowych
•
Brak ograniczeń co do zakresu dopuszczalnych wartości
•
Ogólne metody definiowania częstości wystąpień
•
Nieobiektowe, nierozszerzalne definicje struktury
•
Dowolność typów IDREF
•
Brak przestrzeni nazw