1 / 34

Technologie Internetu wykład 7: XML - wprowadzenie Piotr Habela

Technologie Internetu wykład 7: XML - wprowadzenie Piotr Habela Polsko-Japońska Wyższa Szkoła Technik Komputerowych. W poprzednich wykładach…. Koncepcja znaczników w dokumentach tekstowych poznana na przykładzie HTML;

Download Presentation

Technologie Internetu wykład 7: XML - wprowadzenie Piotr Habela

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Technologie Internetu wykład 7:XML - wprowadzenie Piotr Habela Polsko-Japońska Wyższa Szkoła Technik Komputerowych 1

  2. W poprzednich wykładach… • Koncepcja znaczników w dokumentach tekstowych poznana na przykładzie HTML; • Konieczność bezpośredniej interpretacji przez przeglądarkę wymaga standaryzacji znaczników HTML => brak rozszerzalności; • Przemieszanie znaczników struktury i formatu wyświetlania stanowi słabość HTML, częściowo kompensowaną przez definicji stylów (CSS); nie wszędzie jednak są stosowane… • HTML posiada dość swobodne reguły składniowe: • Nie wymaga cudzysłowów wokół wartości atrybutów; • Dopuszcza pomijanie tagów zamykających; • Swoboda w zastosowaniu małych i wielkich liter; … czyniące dokument trudniejszym w obróbce. 2

  3. Plan wykładu • Geneza XML – koncepcja i możliwości języka SGML; • Powstanie języka HTML; • Konsorcjum W3C: organizacja i inicjatywy; • Składnia języka XML; • Możliwości definiowania typów dokumentów dla XML; 3

  4. Języki znaczników – motywacja i rozwój • Pojęcie znacznika, jeszcze w tekstach nie elektronicznych wiązało się przede wszystkim ze sposobem wyróżnienia w tekście informacji o zadanej docelowej formie wydruku danego fragmentu (np. naniesione ręcznie w maszynopisie znaki nakazujące zastosowanie dla danego fragmentu pochylonej czcionki). • Bezpośrednią motywacją wprowadzenia języków znaczników było umożliwienie formatowania treści w postaci przetwarzalnej maszynowo: wsparcie w tworzeniu dużej skali publikacji elektronicznych. • Pierwsze przedsięwzięcia: powstałe w latach 60-tych języki GML (IBM) oraz GenCode (GCA). • Legły one u podstaw standardu ISO 8879:1986:Standard Generalized Markup Language (SGML): • Standard grupy: Information processing -- Text and office systems . • Zatwierdzony standard międzynarodowy; 155 stron. 4

  5. SGML - charakterystyka • Język znaczników (markup language) – zbiór konwencji znaczników stosowanych do opisywania (kodowania) tekstu. Określa: • znaczniki dozwolone i wymagane; • zapewnia niezawodny sposób ich wyróżniania ze zwykłego tekstu; • [definiuje znaczenie poszczególnych znaczników]. • SGML = standard opisu tekstu za pomocą znaczników. Określany jako metajęzyk (?) (wrócimy jeszcze do tego pojęcia). • Charakter opisowy a nie proceduralny: w tekście umieszczone są znaczniki określające interpretację poszczególnych elementów, a ew. elementy proceduralne, opisujące wymagane czynności np. sformatowania tekstu, istnieją odrębnie – w postaci osobnych zasobów. 5

  6. Typ dokumentu • SGML wprowadza pojęcie typu dokumentu, specyfikując DTD (Dynamic Type Definitions). • Typ dokumentu jest formalnie zdefiniowany w terminach jego składowych i ich struktury. • Dla znanych typów dokumentów (tj. dla których istnieją definicje typu), można sprawdzić zgodność dokumentu ze specyfikacją typu. Program dokonujący takiego sprawdzenia nazywamy parserem. • Znając typ dokumentu można w bardziej efektywny i wyspecjalizowany sposób przetwarzać wszelkie dokumenty zgodne z tym typem. Jeśli wykonywane jest przetwarzanie dokumentu, to odpowiedni program nazywamy z kolei procesorem. 6

  7. Niezależność od platformy • Celem zapewnienia niezależności, język zdefiniowano jako oparty na zwykłym tekście. • Deklaracja dokumentu SGML zawiera oprócz definicji typu dokumentu specyfikację sposobu kodowania znaków. • Dla znaków nieprzenośnych można zastosować reguły zastępowania łańcuchów (string substitution). • Dokumenty ani definicje ich typów nie określają sposobu wizualizacji. W tym celu stworzono specyfikację DSSSL (Document Style Semantics and Specification Language). 7

  8. Struktura dokumentu SGML • Zawiera jednostki tekstowe zwane elementami (element). • Poszczególne rodzaje elementów posiadają identyfikujące je nazwy, jednakże znaczenie może być nakreślone jedynie jako współzależności z innymi elementami. Standard nie zajmuje się semantyką poszczególnych rodzajów elementów. • Nazwy elementów, określane poprzez Generic Identifier (GI), powinny być znane oprogramowaniu i użytkownikom którzy przetwarzają stosujący je dokument. • Tekst ze znacznikami = document instance, czyli wystąpienie dokumentu. • Istnieją różne sposoby oznaczania elementów. Najważniejszym z nich jest objęcie tekstu tagami (znacznikami) otwierającym i zamykającym. 8

  9. Definiowanie typów dokumentów SGML • Notacja DTD (Document Type Definition) dla SGML pozwala określić następujące właściwości: • określenie identyfikatora elementu, tj. nazwy; • minimization rules, czyli obowiązkowość tagów otwierającego i zamykającego; • Model zawartości – tj. jakie podelementy są dopuszczalne: • Nazwy i liczności (? -> opcjonalna, * -> dowolna liczba powtórzeń, + -> jedno lub więcej); • Możliwość kombinowania deklaracji (”,” -> sekwencja lub ”|” -> jedna z wymienionych) oraz grupowania przy użyciu nawiasów. Np.: <!ELEMENT refren - - (#PCDATA | line+)> <!ELEMENT poemat - O (tytuł?, ( (wers+) | (refren?, (strofa, refren?)+ ) )) > 9

  10. Zaawansowane możliwości • Takie definicje pozwalają zdefiniować precyzyjną hierarchiczną strukturę dokumentu. Nie zawsze jest to wystarczające. • Mogą istnieć elementy „pływające” (np. adnotacje), które dopuszczalne są w różnych miejscach hierarchii. Ich wprowadzanie do definicji wszystkich elementów byłoby bardzo niewygodne. Stosuje się w tym celu dwa rodzaje „wyjątków” (exception). Definiuje się je na szczycie hierarchii, której dotyczą: • inclusions – elementy, które mogą pojawić się w dowolnym miejscu; • exclusions– elementy, które są w danym obszarze zabronione; • Różne kryteria określania struktury dokumentu mogą współistnieć i nakładać się na siebie. Może to być struktura logiczna, typograficzna, językowa (np. formy zdań). • Wzajemnie przeplatające się struktury można zdefiniować stosując tzw. współbieżne struktury dokumentów: • tworzone są dwie deklaracje typów dokumentu; • elementy występujące tylko w jednej strukturze są prefiksowane nazwą stosownej definicji typu; 10

  11. Definicje atrybutów SGML • Typ elementu jest definiowany przez dopuszczalną (i obowiązkową) jego zawartość (w postaci nazw zagnieżdżanych podelementów). • Drugim składnikiem definicji jest lista atrybutów właściwa danego typu elementowi. Specyfikacji podlega: • Nazwa atrybutu; • Typ wartości: identyfikator, referencja do identyfikatora, dane znakowe, wartość alfanumeryczna, wartość liczbowa albo zdefiniowana wartość wyliczeniowa; • Sposób określenia wartości: wymagana, opcjonalna, lub „jak poprzednio”. 11

  12. Język czy metajęzyk? • Pojęcie meta-poziomu oznacza zwykle definicję rozpatrywanego przez nas zbioru elementów, z którą ten ostatni jest związany relacją „jest wystąpieniem”. • Pojęcie dotyczy często danych i metadanych (schemat jest poziomem „meta” w stosunku do danych gromadzonych w bazie) albo języków programowania (mechanizmu pozwalający kontrolować zachowanie rozpatrywanego przez nas poziomu; np. wołanie procedury). Przykładem może być klasa, jako definicja narzucająca ograniczenie na strukturę jej obiektów oraz definiująca metody czy aktywne reguły dla tych obiektów. Zob. też – metamodel w UML. • Pojęcie metajęzyka sugerowałoby zatem, że SGML oraz XML są językami służącymi definiowanie innych języków. Termin zatem pasowałby raczej do DTD. Stąd określanie bez bliższego komentarza SGML oraz XML „metajęzykami” może być nieco mylące… 12

  13. Związki HTML z SGML • Z punktu widzenia założeń, jakie legły u podstaw koncepcji WWW, SGML uznano za zdecydowanie zbyt skomplikowany. • Powstały język HTML pozostał jednak silnie związany ze swym protoplastą: • HTML stanowi istotnie okrojony podzbiór SGML; • Składnia HTML zdefiniowana jest przy użyciu środków definiowania struktury dokumentów SGML (istnieje definicja HTML w postaci DTD); • Ponadto pierwotna postać HTML konsekwentnie pozostawała przy idei oznaczania jedynie struktury dokumentu, nie zaś sposobu jego wizualizacji. • Zaistniały burzliwy rozwój Webu zmusił do zweryfikowania tych założeń… 13

  14. World Wide Web Consortium (W3C) • Powstałe w 1994 roku (zał.: Tim Berners-Lee w Massachusetts Institute of Technology, Laboratory for Computer Science [MIT/LCS] we współpracy z CERN, oraz DARPA i Komisją Europejską). • Zakres działalności: rozwiązania wspierające organizację dostępu do zasobów Internetu. • Zrzesza około 450 organizacji. Finansowane głownie przez członków, w mniejszej części ze środków publicznych. • Specyfikacje W3C noszą nazwę rekomendacji (recommendations) i są publicznie dostępne. • Główne zasady projektowe dla technologii Webu: • współdziałanie (interoperability); • zapewnienie możliwości ewolucji: modularność, prostota, rozszerzalność; • decentralizacja (brak uzależnienia od scentralizowanego zasobu); 14

  15. Działalność W3C • W oparciu o opinie członków ustanawiane mogą być nowe obszary działań (activity). Są one sklasyfikowane pomiędzy 4 dziedzinami: • Architektoniczna (technologie Webu); • Interakcji (doskonalenie sposobów korzystania użytkownika z zasobów Webu - interfejsy); • Technologia i Społeczeństwo; • Dostępności (Web Accessibility Initiative) – poprawa dostępności Webu dla osób niepełnosprawnych; • Niezależnie od tego podziału funkcjonują działania (activities): Zapewnienia Jakości(QA) oraz Polityki Pantentów (Patent Policy). • Zasady działania: • neutralność względem producentów; • koordynacja rozwiązań z innymi instutucjami (IETF, Unicode Consortium itp.) • konsensus: dążenie do jednomyślności w przyjmowaniu rozwiązań; 15

  16. Cykl życiowy specyfikacji W3C Working Draft: Praca w toku; publikację WD zatwierdza kierownictwo konsorcjum, ale zawartość może być dopiero podstawą dla dalszych dyskusji, tj. fakt opublikowania nie oznacza pełnej zgody co do treści ani stabilności rozwiązania. Last Call Working Draft: Specyfikacja spełnia wszystkie sformułowane wymogi, albo ewentualnie dokumentuje niezrealizowane zagadnienia. Formalnie odnosi się do wszystkich zgłoszonych wcześniej uwag i problemów. Stanowi publiczny raport techniczny, mogący być podstawą dalszych konsultacji. Candidate Recommendation: Ustalone współzależności z innymi specyfikacjami. Oczekiwanie na doświadczenia implementacyjne spoza grupy roboczej. Proposed Recommendation: Istnieją doświadczenia z implementacją specyfikacji. Jest przedmiotem przeglądu przez komitet doradczy. W3C Recommendation: Postać finalna. Raport techniczny spełniający wymagania, będący wynikiem uzgodnień. Uznany za nadający się do szerokiego zastosowania i realizujący misję W3C. 16

  17. W3C: Koncepcja rozwoju standardów Webu Źródło: www.w3c.org 17

  18. Prace nad technologią XML w W3C Prace na XML są realizowane przez 6 grup roboczych W3C: • XML Coordination Group: Koordynacja pomiędzy grupami zajmującymi się XML oraz współdziałanie z innymi grupami. Nie tworzy własnych specyfikacji. • XML Core Working Group: Specyfikacja XML oraz najbliżej z samym językiem związane: Namespaces, XML Information Set, oraz XInclude. • XSL Working Group: Definicje stylów i transformacje obiektów. • XML Linking Working Group: Łącza hipertekstowe dla XML. Obecnie nie jest aktywna. • XML Query Working Group:Język zapytań dla XML. • XML Schema Working Group: Definicje i opis struktury, zawartości oraz w pewnym zakresie również semantyki dokumentów XML. 18

  19. XML – założenia projektowe • Cel: Stworzenie generycznego podzbioru SGML dostosowanego do udostępniania, odczytywania i przetwarzania w środowisku Webu w sposób analogiczny jak w przypadku HTML. • Założenia projektowe: • Użyteczny bezpośrednio w Internecie. • Uniwersalny wobec dziedzin zastosowań. • Zgodny SGML. • Zapewnienie wsparcia dla tworzenia programów przetwarzających dokumenty XML. • Minimalizacja elementów opcjonalnych w specyfikacji. • Klarowność i czytelność dla człowieka. • Konieczność szybkiego zaprojektowania języka. • Formalny i spójny styl projektu. • Łatwość tworzenia dokumentów XML. • Brak wymogów odnośnie zwięzłości składni. 19

  20. XML - charakterystyka • Język tekstowy; • Rozszerzalny: zestaw znaczników nie stanowi zamkniętej listy; • Elastyczna struktura; • Niezależność od platformy; • Możliwość definiowania reguł poprawności dla struktury dokumentu (definicja typu dokumentu); • Stosunkowo rygorystyczna składnia; • Opisuje klasę obiektów danych, zwaną dokumentami XML; • Częściowo określa zachowanie programów, które je przetwarzają; • Zgodny z SGML: określany jako profil zastosowań SGML albo ograniczony SGML. 20

  21. Dokument XML • Struktura fizyczna: złożenie jednostek zwanych encjami (?) (XML entities): • Parsowalne: dane znakowe oraz znaczniki. Encje parsowalne zawierają tekst, czyli sekwencje znaków. Pojęcie znaku jest traktowane zgodnie ze standardem ISO/IEC 10646 (Universal Multiple-Octet Coded Character Set (UCS)). Za poprawne znakisą uznawane: tab, carriage return, line feed oraz wszystkie znaki Unicode i ISO/IEC 10646; • Nieparsowalne. • Struktura logiczna: • Strukturę dokumentu wyznaczają znaczniki. • Oprogramowanie pracujące z XML: • Procesor XML – odczytuje i udostępnia strukturę i treść dokumentu. • Aplikacja – korzysta ze struktury udostępnionej przez procesor. 21

  22. Zawartość dokumentu XML • Elementy: • wyznaczane za pomocą znaczników; • ograniczenia na nazwę – może zawierać większość znaków, choć nie może zaczynać się od cyfry, myślnika ani kropki; dopuszczalne na początku są podkreślenia i dwukropki; • dla nazw elementów rozróżnialna jest wielkość liter; • element niepusty składa się obowiązkowo ze znacznika otwierającego i zamykającego: <osoba>Jan Kowalski</osoba> • element pusty może składać się z jednego tylko znacznika, zakończonego znakiem „/”: <usunietyWpis /> 22

  23. Atrybuty XML • Przybierają postać nazwAtrybutu =”wartość atrybutu” • Podobne ograniczenia na nazwę, jak w wypadku nazw elementów; • Wartość może być typu: string, wyliczeniowego, nazwy, identyfikatora, nazwy encji, referencji do identyfikatora… • Zawarte w znaczniku otwierającym (albo w znaczniku elementu pustego); • Znacznik może zawierać tylko jeden atrybut o danej nazwie; • Rozróżniana jest wielkość liter; • Kolejność atrybutów nie jest wymagana standardem, choć zaleca się jej konsekwentne utrzymanie; • Np. <opisZadania autor = ”Jan Kochanowski” autor=”Anonim”> Tutaj zawartość </opisZadania> 23

  24. XML – znaki specjalne • Jak można wywnioskować z omówionej składni, znaki „<”, „>” oraz cudzysłów, jak również apostrof – są traktowane specjalnie. • Chcąc użyć ich jako zwykłych znaków w miejscach, gdzie byłoby to niejednoznaczne, należy użyć predefiniowanych symboli zastępczych: &gt;, &lt; oraz &quot; i &apos;. • Te dwa ostatnie mogą być potrzebne w wartościach atrybutów, jednakże można ich uniknąć stosując jako ograniczniki wartości tekstowej symbole apostrofu i cudzysłowu zamiennie (tak, jak się to czyni np. w JavaScript). • Symbole zastępcze rozwiązują problem, choć oczywiście mogą być niewygodne, np. przy formułowaniu w dokumentach XML warunków, jak to ma miejsce np. w językach zapytań. 24

  25. Zawartość elementów XML • Wyróżniamy: • elementy puste (pojedynczy znacznik zakończony „/”); • elementy zawierające tylko tekst; • elementy złożone, tj. posiadające podelementy; • elementy o zawartości mieszanej (tj. zarówno tekst jak i podelementy – mogą być na rożne sposoby przeplecione); • Kolejność zawieranych podelementów jest istotna dla właściwej interpretacji dokumentu; jest określona definicją typu dokumentu; • Elementy złożone (i mieszane) muszą być poprawnie zagnieżdżone. W efekcie prawidłowy dokument XML posiada strukturę hierarchiczną. • => Reguły składniowe znane z HTML. XML odróżnia się jednak bardziej zdyscyplinowaną składnią. 25

  26. Deklaracja XML • Pierwszy składnik tzw. prologu dokumentu. • Określa sposób interpretacji dokumentu. • Specyfikuje: • wersję użytego języka: parametr version; • rodzaj kodowania znaków: parametr encoding(np. unicode, ISO, windows); • określenie, czy dokument jest samodzielny: parametr standalone. • Np. <?xml version=”1.0” encoding=”UTF-8” standalone=”yes” ?> 26

  27. Poprawność formy i poprawność strukturalna • Dokument poprawny składniowo (well-formed): • Zgodny z definicją produkcji „document” (tj. m.in. zawiera deklarację XML); • Element główny („korzeń”) występuje raz w każdym z dokumentów i nie jest zawarty w żadnym innym elemencie. Pozostałe elementy muszą być poprawnie zagnieżdżone. W oparciu o takie zagnieżdżenie mówi się o relacji rodzic-dziecko. • Spełnienie wszystkich ograniczeń poprawnościowych ujętych w specyfikacji; • Wszystkie parsowalne encje do których odwołuje się dokument spełniają warunek poprawności; • Dokument poprawny strukturalnie (valid): zgodność z definicją typu dokumentu (DTD). 27

  28. Przetwarzanie dokumentu XML • Poprawność składniowa jest warunkiem koniecznym dla dopuszczenia dalszego przetwarzania dokumentu XML przez oprogramowanie. • Przykłady przetwarzania: • wyświetlanie; • przekształcenie w dokument HTML zbudowany według określonego stylu; • wygenerowanie nowego dokumentu XML; • zasilenie bazy danych danymi z dokumentu. 28

  29. Deklaracje • W przeciwieństwie do elementów, nie są bezpośrednio przetwarzane. • Umieszczane w symbolach: <! … > • Deklaracje podstawowe, obecne w zwykłych dokumentach XML to: • komentarze: <!-- … --> • sekcje danych znakowych: wyznaczają obszar, w którym można swobodnie używać znaków zastrzeżonych: <![CDATA[Tutaj może się znaleźć dość dowolny tekst]]> • O wiele szersze wykorzystanie deklaracji ma miejsce w wypadku definicji DTD; 29

  30. Instrukcje przetwarzania XML • Instrukcje przetwarzania = Processing Instructions – PI; • umieszczane pomiędzy znakami: <? … ?> • Określają cel (PI Target) oraz instrukcję, która ma być wykonana. • Cel jest słowem kluczowym (umieszczanym bezpośrednio po otwarciu znacznika), które identyfikuje aplikację mającą dokonać przetwarzania. • Preferowany styl oznaczania kodu PHP tworzy właśnie instrukcję przetwarzania zgodną z notacją XML: <?phptutaj kod PHP… ?> • Niektóre instrukcje przetwarzania (np. związane ze stosowaniem stylów) są określone standardem. 30

  31. Encje XML (XML Entities) • Jednostka fizycznego podziału dokumentu (umożliwia integrację treści z różnych plików); • Posiada nazwę, która ją identyfikuje; • Deklarowana słowem kluczowym ENTITY; • Deklaracje jednostek występują w definicji typu dokumentu (DTD); • Zastosowania: • integrowanie zawartości różnych plików; • substytucja tekstu (np. aby można było w jednym tylko miejscu wpisać często powtarzający się w dokumencie tekst); • wyodrębnienie danych, które mają nie być przetwarzane przez XML; 31

  32. Rodzaje encji XML • Najprostsze warianty: • Ogólna encja wewnętrzna (general internal entity). Zawiera wyłącznie tekst i służy przetwarzaniu tekstu; np. <!ENTITY skrot ”Pełne rozwinięcie skrótu”> • Ogólna encja zewnętrzna (general external entity); W tym wypadku deklaracja typu dokumentu definiuje encję jako odnośnik: <!ENTITY naszaEncja SYSTEM ”http://xyz.com/plik_naszej_encji.xml”> • Encja predefiniowana. Jak sama nazwa wskazuje, nie wymaga definiowana; jest określona standardem. Zdefiniowano w ten sposób ww. symbole zastrzeżone, których użycie bezpośrednie zakłóciłoby składnię dokumentu: &lt, &gt, &amp, &apos, &quot. Uwaga! Nie jest dozwolone podstawienie jako wartości atrybutu tekstu skutkującego umieszczeniem znaków „<” lub „>”, ani umieszczenie w wartości atrybutu referencji do encji zewnętrznej. • W treści dokumentu mogą wystąpić odwołania do danej encji w postaci: &nazwaEncji; (niezbędne jest zakończenie średnikiem) 32

  33. Document Type Definitions (DTD) • Definicje Typu Dokumentu stanowią cechę szczególną XML a zarazem integralną część specyfikacji języka. • Definicja typu pozwala sprawdzić strukturalną poprawność dokumentu. Można je postrzegać jako język opisu dokumentu. • Definicje typu mogą występować w pliku dokumentu, lub w plikach zewnętrznych. • W przeciwieństwie do SGML, obecność definicji typu nie jest obowiązkowa. 33

  34. XML a przetwarzanie danych • Dzięki swej niezależności od platformy i rozszerzalności, XML stał się użyteczny we współpracy z technologiami baz danych. • W tym wypadku nieistotna staje się czytelność pliku, natomiast trzeba się zmierzyć z problemami np. różnic w kodowaniu znaków. • Osobliwe możliwości daje struktura dokumentu: właściwości danego obiektu mogą wystąpić w elemencie jako: • Zawartość tekstowa; • Podelementy; • Atrybuty; • Podstawowy dokument XML ma strukturę hierarchiczną, co może być kłopotliwe z punktu widzenia modelowania danych. Skuteczne rozwiązanie mechanizmu referencji pomiędzy elementami ma tu duże znaczenie. 34

More Related