1 / 26

XML – standardy pokrewne

XML – standardy pokrewne. 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,

truda
Télécharger la présentation

XML – standardy pokrewne

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. XML – standardy pokrewne

  2. 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 pokrewne

  3. 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 implementowanyprzy użyciu SAX. • XML data binding – wiązanie XML-a. • Pull parsing – przetwarzanie strumieniowe. XML – standardy pokrewne

  4. 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 pokrewne

  5. setDocumentHandler throw SAXException Działanie modelu SAX – przykład <?xml version="1.0"?> <wiersz bialy="nie"> <autor> William Shakespeare </autor> </tytul> </wiersz> Aplikacja startDocument() startElement("wiersz", [bialy="nie" ]) ignorableWhitespace(spacje) startElement("autor",[]) characters("William...") endElement("autor") ignorableWhitespace(spacje) Parser XML – standardy pokrewne

  6. <wiersz> <autor> <tytul> <zwrotka> William Shakespeare Sonet 102 <wers> <wers> <wers> Drzewo DOM – przykład <?xml version="1.0"?> <wiersz> <autor>William Shakespeare </autor> <tytul>Sonet 102</tytul> <zwrotka> <wers>...</wers> ... </zwrotka> </wiersz> XML – standardy pokrewne

  7. Przetwarzanie wsadowe. SAX  DOM • Całe drzewo dokumentu ładowane do pamięci. • Oszczędny czasowo i pamięciowo. • Kosztowny czasowo i pamięciowo. • Dobry do wyławiania z dokumentu wybranych elementów. • Pozwala wędrować po drzewie dokumentu. • Dokument tylko do odczytu • Pozwala tworzyć i modyfikować dokumenty. XML – standardy pokrewne

  8. 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 pokrewne

  9. Pull parsing: SAX: aplikacja myContentHandler parser aplikacja parser parse() next() next() next() next() SAX a przetwarzanie strumieniowe XML – standardy pokrewne

  10. 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 pokrewne

  11. 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 pokrewne

  12. 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 pokrewne

  13. 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 pokrewne

  14. 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 pokrewne

  15. 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 pokrewne

  16. 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 pokrewne

  17. 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 pokrewne

  18. Simple link – przykład <osoba xmlns:xlink="http://www.w3.org/1999/xlink"><nazwisko>Kopernik, Mikołaj</nazwisko><biogram>Wybitny polski astronom, matematyk, lekarz, prawnik, tłumacz poezji włoskiej i ekonomista, pochodził z rodziny wywodzącej się z mieszczan krakowskich. Urodzony w <geogr xlink:type="simple" xlink:href="Torun.xml">Toruniu</geogr>.</biogram></osoba> XML – standardy pokrewne

  19. Extended link - przykład <fikcja xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="extended"> <wypowiedz xlink:type="resource">Kopernik była kobietą!</wypowiedz> <film xlink:type="locator" xlink:href="seksmisja.xml" xlink:title="Seksmisja"/> <osoba xlink:type="locator" xlink:href="kopernik.xml" xlink:title="Kopernik, Mikołaj"/> <pojecie xlink:type="locator" xlink:href="kobieta.xml" xlink:title="kobieta"/></fikcja> XML – standardy pokrewne

  20. 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 pokrewne

  21. 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 pokrewne

  22. XForms – prosty formularz <html xmlns="http://www.w3.org/1999/xhtml" xmlns:xf="http://www.w3.org/2002/xforms"> <head> <xf:model id="model1"> <xf:instance> <dane xmlns=""><imię/><nazwisko/></dane> </xf:instance> <xf:submission id="submit" method="post" action="http://xformstest.org/test"/> </xf:model> </head> <body> <h1>Wpisz swoje dane</h1> <xf:input model="model1" ref="imię"> <xf:label>Imię</xf:label> </xf:input> <xf:input model="model1" ref="nazwisko"> <xf:label>Nazwisko</xf:label> </xf:input> <xf:submit submission="submit"> <xf:label>Save</xf:label> </xf:submit> </body> </html> XML – standardy pokrewne

  23. XForms – przykład (program X-Smiles) Źródło: Kazienko, P.,Co tam panie w XML-u?, Software 2.0, 6/2003 XML – standardy pokrewne

  24. Gdzie szukać dalej: programowanie • SAX Home Page: • www.saxproject.org • Document Object Model (DOM): • www.w3.org/DOM • xml.coverpages.org/dom.html • Common API for XML Pull Parsing • www.xmlpull.org • IBM alphaWorks: • www.alphaworks.ibm.com • Free XML tools and software – Lars Marius Garshol: • www.garshol.priv.no/download/xmltools/ • XML w Javie: • java.sun.com/xml XML – standardy pokrewne

  25. 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 pokrewne

  26. Gdzie szukać dalej • Arciniegas, A. F., What is XLink? • www.xml.com/pub/a/2000/09/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? • www.xml.com/pub/a/2001/09/05/xforms.html • Dubinko, M., Ten Favorite XForms Engines • www.xml.com/pub/a/2005/02/09/xforms.html • Kazienko, P., Co tam panie w XML-u? • Software 2.0, nr 6/2003, Wydawnictwo Software XML – standardy pokrewne

More Related