XML – standardy pokrewne
XML – standardy pokrewne2 Standardy wykorzystywane w przetwarzaniu dokumentów XML XPath – XML Path Language. XSLT – Extensible Styleshheet Language – Transformations. Modele dostępu programistycznego do dokumentów XML: –SAX – Simple API for XML, –przetwarzanie strumieniowe (ang. pull parsing), –DOM – Document Object Model, –wiązanie XML-a (ang. XML data binding), np. JAXB. XQuery – XML Query Language. XLink – uogólnione dowiązania (linki). XForms – uogólnione formularze internetowe. XML Signature – podpis elektroniczny. XML Encryption – szyfrowanie dokumentów XML....
XML – standardy pokrewne3 Modele dostępu do dokumentu XML Pozwalają programistom na wysokopoziomowy dostęp do zawartości dokumentów XML : –korzystamy z abstrakcyjnych obiektów, –nie troszczymy się o analizę leksykalną i składniową. SAX – Simple API for XML: –model zdarzeniowy. DOM – Document Object Model: –obiektowy model drzewa struktury, –zwykle implementowany przy użyciu SAX. XML data binding – wiązanie XML-a. Pull parsing – przetwarzanie strumieniowe.
XML – standardy pokrewne4 Implementacja modelu – parser Parser (procesor) XML-a – moduł programistyczny analizujący dokument XML i udostępniający jego zawartość w postaci abstrakcyjnego modelu. Funkcjonalność parsera: –analiza leksykalna i składniowa, –sprawdzenie poprawności strukturalnej (opcjonalnie). Uniwersalność – niezależność od konkretnego języka (schematu, typu dokumentu)! Po co abstrakcyjne modele: –jednolity sposób programowania, niezależnie od użytego parsera, –możliwość wymiany parsera, –możliwość porównywania parserów.
XML – standardy pokrewne5 Działanie modelu SAX – przykład Parser Aplikacja setDocumentHandler startDocument() startElement("wiersz", [bialy="nie" ]) ignorableWhitespace(spacje) startElement("autor",[]) characters("William...") endElement("autor") ignorableWhitespace(spacje) William Shakespeare throw SAXException
XML – standardy pokrewne6 Drzewo DOM – przykład William Shakespeare Sonet William ShakespeareSonet 102
XML – standardy pokrewne7 SAX DOM Przetwarzanie wsadowe. Całe drzewo dokumentu ładowane do pamięci. Dokument tylko do odczytu Pozwala tworzyć i modyfikować dokumenty. Dobry do wyławiania z dokumentu wybranych elementów. Pozwala wędrować po drzewie dokumentu. Oszczędny czasowo i pamięciowo. Kosztowny czasowo i pamięciowo.
XML – standardy pokrewne8 Przetwarzanie strumieniowe (pull parsing) Alternatywa dla modelu SAX: –aplikacja wyciąga kolejne zdarzenia z parsera, –przetwarzanie kontrolowane przez aplikację, a nie parser, –parser działa podobnie jak iterator, kursor lub strumień danych, –zachowane cechy modelu SAX: duża wydajność, możliwość przetwarzania dowolnie dużych dokumentów. Najważniejsze zalety: –możliwość przerwania przetwarzania przed końcem pliku, –możliwość przetwarzania kilku plików na raz, –bardziej proceduralny styl programowania. Standaryzacja: –Java Community Process, JSR 173: Streaming API for XML, –Common API for XML Pull Parsing.
XML – standardy pokrewne9 SAX a przetwarzanie strumieniowe aplikacjaparsermyContentHandler parse() SAX: aplikacjaparser next() Pull parsing:
XML – standardy pokrewne10 SAX czy pull parsing – co wybrać? Kiedy używać modelu wsadowego: –potencjalnie duże dokumenty, –stosunkowo proste, lokalne operacje, –ważna jest efektywność. Pull parsing sprawdza się, gdy: –kończymy przetwarzanie po wystąpieniu poszukiwanych danych, –przetwarzanie zdarzenia zależy od kontekstu (np. od tego, czy jesteśmy wewnątrz pewnego elementu), –przetwarzamy równolegle więcej niż jeden plik (np. porównujemy pliki). SAX sprawdza się, gdy: –chcemy odfiltrować dokument – interesują nas tylko wybrane elementy –za jednym przebiegiem dokonujemy kilka niezależnych rodzajów przetwarzania.
XML – standardy pokrewne11 Wiązanie XML-a (XML data binding) Dokumenty XML a obiekty Javy: –DTD/schemat odpowiada definicji klasy, –dokument XML (instancja schematu) odpowiada obiektowi (instancji klasy). Pomysł: –automatyczne generowanie klas z DTD/schematów. Różnice w stosunku do modelu uniwersalnego (np. DOM): –zestaw typów/klas i funkcji/metod zależy od typu dokumentu, –struktura mniej kosztowna pamięciowo, –intuicyjny interfejs dostępu do zawartości, –modyfikacja struktury i wartości tylko w ramach tego samego typu dokumentu.
XML – standardy pokrewne12 DOM czy data binding – co wybrać? Kiedy używać modelu pamięciowego: –nieduże dokumenty (muszą mieścić się w pamięci), –operacje wymagające jednoczesnego dostępu do wielu węzłów, –tworzenie, edycja i zapisywanie dokumentów w kodzie. DOM sprawdza się, gdy: –struktura dokumentów jest nieznana, niedoprecyzowana lub zmienna, –dopuszczalna jest niższa efektywność. Data binding sprawdza się, gdy: –struktura dokumentu jest ustalona i znana (XML Schema/DTD), –obiekty w aplikacji są czytanie z dokumentów XMLi zapisywane do dokumentów XML (np. w zastosowaniach związanych z wymianą danych).
XML – standardy pokrewne13 XML i Java Ideologia: –Java umożliwia uruchamianie raz napisanych programów na wielu platformach sprzętowych/systemowych, –XML stanowi uniwersalny nośnik danych, przenośny pomiędzy platformami sprzętowymi i systemami operacyjnymi. Praktyka: –wsparcie dla Unicode i różnych standardów kodowania, –wsparcie dla XML już w bibliotece standardowej (JAXP), –wiele narzędzi wspierających i używających XML w Javie: JAXB, SJSXP, JAXR (rejestry w XML), XML Signature (podpis elektroniczny), JAX-RPC, SOAP (programowanie rozproszone).
XML – standardy pokrewne14 JAXP Java API for XML Processing: –definicja interfejsów, za pomocą których programiści mogą przetwarzać dokumenty XML we własnych aplikacjach, –wzorcowa implementacja, –możliwość podmiany implementacji wybranego modułu (np. parsera). Wersja 1.3 zawarta w J2SE 5.0: –parsery (DOM Level 3 i SAX 2), –procesor XSLT 1.0, –ewaluator XPath 1.0, –procesor XML Schema i DTD. W kolejnych wersjach zapewne: –XQuery, –przetwarzanie strumieniowe (?).
XML – standardy pokrewne15 XLink – dowiązania w XML-u Linki jakie znamy (HTML): –łączą dwa dokumenty: źródło i cel linku, –źródłem linku jest zawsze element opisujący link ( A, IMG ). XLink – rozszerzona koncepcja dowiązań: –dowolne elementy przechowują informacje o linkach, –informacja o linkach poza połączonymi dokumentami, –więcej niż dwa końce linku. Status: –rekomendacja W3C z 27 czerwca 2001, –korzenie historyczne: HyTime.
XML – standardy pokrewne16 Terminologia Zasób (resource) – dowolna adresowalna jednostka informacji lub usługa. Dowiązanie (link) – jawnie wyrażona (przy pomocy elementu wiążącego (linking element)) relacja pomiędzy zasobami. –te zasoby uczestniczą (participate) w dowiązaniu. Przejście (traversal) – użycie pary zasobów połączonej dowiązaniem. Łuk (arc) – informacja o przejściu między dwoma zasobami (kierunek, zachowanie aplikacji, itp.): –wychodzący (outbound), –wchodzący (inbound), –niezależny (third party).
XML – standardy pokrewne17 Dowiązania XLink Extended link: –wiąże dowolną liczbę zasobów: zasoby zewnętrzne (np. odwołania do innych dokumentów), zasoby lokalne (zawarte w elemencie wiążącym). –łuki opisujące sposoby przechodzenia pomiędzy zasobami, –role zasobów uczestniczących w linku, –role łuków. Simple link: –link wychodzący, –wiąże dokładnie 2 zasoby: 1 lokalny i 1 zewnętrzny, –jeden łuk z zasobu lokalnego do zewnętrznego.
XML – standardy pokrewne18 Simple link – przykład Kopernik, Mikołaj Wybitny polski astronom, matematyk, lekarz, prawnik, tłumacz poezji włoskiej i ekonomista, pochodził z rodziny wywodzącej się z mieszczan krakowskich. Urodzony w Toruniu.
XML – standardy pokrewne19 Extended link - przykład Kopernik była kobietą!
XML – standardy pokrewne20 Przyszłość XLink Zastosowania: –organizowanie, kojarzenie zasobów, nawet gdy nie mamy prawa zapisu, –dostarczanie wartości dodanej – zbiorów linków. Zasięg: –lokalny: serwery linków operujące na bazie linków, –Internet? Problemy: –wizualizacja extended links, –synchronizacja zasobów i linków (Internet).
XML – standardy pokrewne21 XForms – zaawansowane formularze Odpowiedź na ograniczenia formularzy w HTML-u: –kontrola dziedziny wprowadzanych danych po stronie klienta, –specyfikowanie pól obowiązkowych i opcjonalnych, –zależności między polami, np.: wartość pola jest funkcją wartości innych pól, pole jest widoczne tylko przy określonej zawartości innych pól; –wyzwalacze aktywowane zdarzeniami interfejsu użytkownika, –bogaty zasób kontrolek, np.: powtórzenia, grupy, wielopoziomowe wybory, suwaki do wyboru wartości z zakresu, kontrolki wyboru plików. Status: –rekomendacja W3C z 14 października 2003 r., –możliwość zanurzania w XHTML-u.
XML – standardy pokrewne22 XForms – prosty formularz Wpisz swoje dane Imię Nazwisko Save
XML – standardy pokrewne23 XForms – przykład (program X-Smiles) Źródło: Kazienko, P., Co tam panie w XML-u?, Software 2.0, 6/2003
XML – standardy pokrewne24 Gdzie szukać dalej: programowanie SAX Home Page: Document Object Model (DOM): xml.coverpages.org/dom.html Common API for XML Pull Parsing IBM alphaWorks: Free XML tools and software – Lars Marius Garshol: XML w Javie: java.sun.com/xml
XML – standardy pokrewne25 Gdzie szukać dalej: programowanie Gajda, P., SAX i DOM, czyli XML w naszych aplikacjach Software 2.0, nr 6/2001, Wydawnictwo Software Brauncajs, T., JAXB i Castor – wiązanie XML-a w Javie Software 2.0, nr 6/2002, Wydawnictwo Software Plechawski, M., Nie pozwól się popychać Software 2.0, nr 6/2003, Wydawnictwo Software Czarnik, P., Alternatywne źródła zdarzeń SAX Software 2.0, nr 6/2004, Wydawnictwo Software
XML – standardy pokrewne26 Gdzie szukać dalej Arciniegas, A. F., What is XLink? Carr, L., Initial Experiences of an XLink Implementation journals.ecs.soton.ac.uk/xml4j/xlinkexperience.html XForms Institute. Interactive XForms School xformsinstitute.com Dubinko, M., What Are XForms? Dubinko, M., Ten Favorite XForms Engines Kazienko, P., Co tam panie w XML-u? Software 2.0, nr 6/2003, Wydawnictwo Software