XML - PowerPoint PPT Presentation

About This Presentation
Title:

XML

Description:

Title: XML i nowoczesne technologie zarz dzania tre ci Author: Szymon Ziolo Last modified by: Szymon Zio o Created Date: 9/27/2004 2:02:47 PM – PowerPoint PPT presentation

Number of Views:67
Avg rating:3.0/5.0
Slides: 27
Provided by: Szym1
Category:
Tags: xml | xforms

less

Transcript and Presenter's Notes

Title: XML


1
XML standardy pokrewne
2
Standardy wykorzystywane w przetwarzaniu
dokumentów XML
  • XPath XML Path Language.
  • XSLT Extensible Styleshheet Language
    Transformations.
  • Modele dostepu programistycznego do dokumentów
    XML
  • SAX Simple API for XML,
  • przetwarzanie strumieniowe (ang. pull parsing),
  • DOM Document Object Model,
  • wiazanie XML-a (ang. XML data binding), np. JAXB.
  • XQuery XML Query Language.
  • XLink uogólnione dowiazania (linki).
  • XForms uogólnione formularze internetowe.
  • XML Signature podpis elektroniczny.
  • XML Encryption szyfrowanie dokumentów XML.
  • ...

3
Modele dostepu do dokumentu XML
  • Pozwalaja programistom na wysokopoziomowy dostep
    do zawartosci dokumentów XML
  • korzystamy z abstrakcyjnych obiektów,
  • nie troszczymy sie o analize leksykalna i
    skladniowa.
  • SAX Simple API for XML
  • model zdarzeniowy.
  • DOM Document Object Model
  • obiektowy model drzewa struktury,
  • zwykle implementowanyprzy uzyciu SAX.
  • XML data binding wiazanie XML-a.
  • Pull parsing przetwarzanie strumieniowe.

4
Implementacja modelu parser
  • Parser (procesor) XML-a modul programistyczny
    analizujacy dokument XML i udostepniajacy jego
    zawartosc w postaci abstrakcyjnego modelu.
  • Funkcjonalnosc parsera
  • analiza leksykalna i skladniowa,
  • sprawdzenie poprawnosci strukturalnej
    (opcjonalnie).
  • Uniwersalnosc niezaleznosc od konkretnego
    jezyka (schematu, typu dokumentu)!
  • Po co abstrakcyjne modele
  • jednolity sposób programowania, niezaleznie od
    uzytego parsera,
  • mozliwosc wymiany parsera,
  • mozliwosc porównywania parserów.

5
Dzialanie modelu SAX przyklad
lt?xml version"1.0"?gt ltwiersz bialy"nie"gt
ltautorgt William Shakespeare lt/autorgt
lt/tytulgt lt/wierszgt
Aplikacja
startDocument()
startElement("wiersz", bialy"nie" )
ignorableWhitespace(spacje)
startElement("autor",)
characters("William...")
endElement("autor")
ignorableWhitespace(spacje)
Parser
6
Drzewo DOM przyklad
lt?xml version"1.0"?gt ltwierszgt ltautorgtWilliam
Shakespeare lt/autorgt lttytulgtSonet
102lt/tytulgt ltzwrotkagt ltwersgt...lt/wersgt
... lt/zwrotkagt lt/wierszgt
7
SAX ? DOM
  • Cale drzewo dokumentu ladowane do pamieci.
  • Przetwarzanie wsadowe.
  • Oszczedny czasowo i pamieciowo.
  • Kosztowny czasowo i pamieciowo.
  • Dobry do wylawiania z dokumentu wybranych
    elementów.
  • Pozwala wedrowac po drzewie dokumentu.
  • Dokument tylko do odczytu
  • Pozwala tworzyc i modyfikowac dokumenty.

8
Przetwarzanie strumieniowe (pull parsing)
  • Alternatywa dla modelu SAX
  • aplikacja wyciaga kolejne zdarzenia z parsera,
  • przetwarzanie kontrolowane przez aplikacje, a nie
    parser,
  • parser dziala podobnie jak iterator, kursor lub
    strumien danych,
  • zachowane cechy modelu SAX
  • duza wydajnosc,
  • mozliwosc przetwarzania dowolnie duzych
    dokumentów.
  • Najwazniejsze zalety
  • mozliwosc przerwania przetwarzania przed koncem
    pliku,
  • mozliwosc 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.

9
SAX a przetwarzanie strumieniowe
10
SAX czy pull parsing co wybrac?
  • Kiedy uzywac modelu wsadowego
  • potencjalnie duze dokumenty,
  • stosunkowo proste, lokalne operacje,
  • wazna jest efektywnosc.
  • Pull parsing sprawdza sie, gdy
  • konczymy przetwarzanie po wystapieniu
    poszukiwanych danych,
  • przetwarzanie zdarzenia zalezy od kontekstu (np.
    od tego, czy jestesmy wewnatrz pewnego elementu),
  • przetwarzamy równolegle wiecej niz jeden plik
    (np. porównujemy pliki).
  • SAX sprawdza sie, gdy
  • chcemy odfiltrowac dokument interesuja nas
    tylko wybrane elementy
  • za jednym przebiegiem dokonujemy kilka
    niezaleznych rodzajów przetwarzania.

11
Wiazanie XML-a (XML data binding)
  • Dokumenty XML a obiekty Javy
  • DTD/schemat odpowiada definicji klasy,
  • dokument XML (instancja schematu) odpowiada
    obiektowi (instancji klasy).
  • Pomysl
  • automatyczne generowanie klas z DTD/schematów.
  • Róznice w stosunku do modelu uniwersalnego (np.
    DOM)
  • zestaw typów/klas i funkcji/metod zalezy od typu
    dokumentu,
  • struktura mniej kosztowna pamieciowo,
  • intuicyjny interfejs dostepu do zawartosci,
  • modyfikacja struktury i wartosci tylko w ramach
    tego samego typu dokumentu.

12
DOM czy data binding co wybrac?
  • Kiedy uzywac modelu pamieciowego
  • nieduze dokumenty (musza miescic sie w pamieci),
  • operacje wymagajace jednoczesnego dostepu do
    wielu wezlów,
  • tworzenie, edycja i zapisywanie dokumentów w
    kodzie.
  • DOM sprawdza sie, gdy
  • struktura dokumentów jest nieznana,
    niedoprecyzowana lub zmienna,
  • dopuszczalna jest nizsza efektywnosc.
  • Data binding sprawdza sie, gdy
  • struktura dokumentu jest ustalona i znana (XML
    Schema/DTD),
  • obiekty w aplikacji sa czytanie z dokumentów XMLi
    zapisywane do dokumentów XML (np. w
    zastosowaniach zwiazanych z wymiana danych).

13
XML i Java
  • Ideologia
  • Java umozliwia uruchamianie raz napisanych
    programów na wielu platformach sprzetowych/systemo
    wych,
  • XML stanowi uniwersalny nosnik danych, przenosny
    pomiedzy platformami sprzetowymi i systemami
    operacyjnymi.
  • Praktyka
  • wsparcie dla Unicode i róznych standardów
    kodowania,
  • wsparcie dla XML juz w bibliotece standardowej
    (JAXP),
  • wiele narzedzi wspierajacych i uzywajacych XML w
    Javie
  • JAXB, SJSXP,
  • JAXR (rejestry w XML),
  • XML Signature (podpis elektroniczny),
  • JAX-RPC, SOAP (programowanie rozproszone).

14
JAXP
  • Java API for XML Processing
  • definicja interfejsów, za pomoca których
    programisci moga przetwarzac dokumenty XML we
    wlasnych aplikacjach,
  • wzorcowa implementacja,
  • mozliwosc podmiany implementacji wybranego modulu
    (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 (?).

15
XLink dowiazania w XML-u
  • Linki jakie znamy (HTML)
  • lacza dwa dokumenty zródlo i cel linku,
  • zródlem linku jest zawsze element opisujacy link
    (A, IMG).
  • XLink rozszerzona koncepcja dowiazan
  • dowolne elementy przechowuja informacje o
    linkach,
  • informacja o linkach poza polaczonymi
    dokumentami,
  • wiecej niz dwa konce linku.
  • Status
  • rekomendacja W3C z 27 czerwca 2001,
  • korzenie historyczne HyTime.

16
Terminologia
  • Zasób (resource) dowolna adresowalna jednostka
    informacji lub usluga.
  • Dowiazanie (link) jawnie wyrazona (przy pomocy
    elementu wiazacego (linking element)) relacja
    pomiedzy zasobami.
  • te zasoby uczestnicza (participate) w dowiazaniu.
  • Przejscie (traversal) uzycie pary zasobów
    polaczonej dowiazaniem.
  • Luk (arc) informacja o przejsciu miedzy dwoma
    zasobami (kierunek, zachowanie aplikacji, itp.)
  • wychodzacy (outbound),
  • wchodzacy (inbound),
  • niezalezny (third party).

17
Dowiazania XLink
  • Extended link
  • wiaze dowolna liczbe zasobów
  • zasoby zewnetrzne (np. odwolania do innych
    dokumentów),
  • zasoby lokalne (zawarte w elemencie wiazacym).
  • luki opisujace sposoby przechodzenia pomiedzy
    zasobami,
  • role zasobów uczestniczacych w linku,
  • role luków.
  • Simple link
  • link wychodzacy,
  • wiaze dokladnie 2 zasoby 1 lokalny i 1
    zewnetrzny,
  • jeden luk z zasobu lokalnego do zewnetrznego.

18
Simple link przyklad
  • ltosoba xmlnsxlink"http//www.w3.org/1999/xlink"gt
    ltnazwiskogtKopernik, Mikolajlt/nazwiskogtltbiogramgtW
    ybitny polski astronom, matematyk, lekarz,
    prawnik, tlumacz poezji wloskiej i ekonomista,
    pochodzil z rodziny wywodzacej sie z mieszczan
    krakowskich. Urodzony w ltgeogr xlinktype"simple"
    xlinkhref"Torun.xml"gtToruniult/geogrgt.lt/biogramgt
    lt/osobagt

19
Extended link - przyklad
  • ltfikcja xmlnsxlink"http//www.w3.org/1999/xlink"
    xlinktype"extended"gt ltwypowiedz
    xlinktype"resource"gtKopernik byla
    kobieta!lt/wypowiedzgt ltfilm xlinktype"locator"
    xlinkhref"seksmisja.xml"
    xlinktitle"Seksmisja"/gt ltosoba
    xlinktype"locator" xlinkhref"kopernik.xml"
    xlinktitle"Kopernik, Mikolaj"/gt
    ltpojecie xlinktype"locator"
    xlinkhref"kobieta.xml"
    xlinktitle"kobieta"/gtlt/fikcjagt

20
Przyszlosc XLink
  • Zastosowania
  • organizowanie, kojarzenie zasobów, nawet gdy nie
    mamy prawa zapisu,
  • dostarczanie wartosci dodanej zbiorów linków.
  • Zasieg
  • lokalny serwery linków operujace na bazie
    linków,
  • Internet?
  • Problemy
  • wizualizacja extended links,
  • synchronizacja zasobów i linków (Internet).

21
XForms zaawansowane formularze
  • Odpowiedz na ograniczenia formularzy w HTML-u
  • kontrola dziedziny wprowadzanych danych po
    stronie klienta,
  • specyfikowanie pól obowiazkowych i opcjonalnych,
  • zaleznosci miedzy polami, np.
  • wartosc pola jest funkcja wartosci innych pól,
  • pole jest widoczne tylko przy okreslonej
    zawartosci innych pól
  • wyzwalacze aktywowane zdarzeniami interfejsu
    uzytkownika,
  • bogaty zasób kontrolek, np.
  • powtórzenia, grupy, wielopoziomowe wybory,
  • suwaki do wyboru wartosci z zakresu,
  • kontrolki wyboru plików.
  • Status
  • rekomendacja W3C z 14 pazdziernika 2003 r.,
  • mozliwosc zanurzania w XHTML-u.

22
XForms prosty formularz
  • lthtml xmlns"http//www.w3.org/1999/xhtml"
    xmlnsxf"http//www.w3.org/2002/xforms"gt
    ltheadgt ltxfmodel id"model1"gt
    ltxfinstancegt ltdane xmlns""gtltimie/gtltnazwi
    sko/gtlt/danegt lt/xfinstancegt
    ltxfsubmission id"submit" method"post"
    action"http//xformstest.org/test"/gt
    lt/xfmodelgt lt/headgt ltbodygt lth1gtWpisz
    swoje danelt/h1gt ltxfinput model"model1"
    ref"imie"gt ltxflabelgtImielt/xflabelgt
    lt/xfinputgt ltxfinput model"model1"
    ref"nazwisko"gt ltxflabelgtNazwiskolt/xflabel
    gt lt/xfinputgt ltxfsubmit
    submission"submit"gt ltxflabelgtSavelt/xflabe
    lgt lt/xfsubmitgt lt/bodygt lt/htmlgt

23
XForms przyklad (program X-Smiles)
Zródlo Kazienko, P.,Co tam panie w XML-u?,
Software 2.0, 6/2003
24
Gdzie szukac 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

25
Gdzie szukac 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 wiazanie XML-a w
    Javie
  • Software 2.0, nr 6/2002, Wydawnictwo Software
  • Plechawski, M., Nie pozwól sie popychac
  • Software 2.0, nr 6/2003, Wydawnictwo Software
  • Czarnik, P., Alternatywne zródla zdarzen SAX
  • Software 2.0, nr 6/2004, Wydawnictwo Software

26
Gdzie szukac 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.ht
    ml
  • 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
Write a Comment
User Comments (0)
About PowerShow.com