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