Implementacja procesora XSLT w jezyku Ocaml - PowerPoint PPT Presentation

About This Presentation
Title:

Implementacja procesora XSLT w jezyku Ocaml

Description:

Patryk Czarnik Implementacja procesora XSLT w j zyku Ocaml Prezentacja tematu pracy magisterskiej Plan prezentacji Om wienie tematyki XML DOM XSLT i XPath Co ja ... – PowerPoint PPT presentation

Number of Views:123
Avg rating:3.0/5.0
Slides: 38
Provided by: Patry155
Category:

less

Transcript and Presenter's Notes

Title: Implementacja procesora XSLT w jezyku Ocaml


1
Implementacja procesora XSLT w jezyku Ocaml
  • Patryk Czarnik

Prezentacja tematu pracy magisterskiej
2
Plan prezentacji
  • Omówienie tematyki
  • XML
  • DOM
  • XSLT i XPath
  • Co ja chce zrobic
  • Ocaml
  • Czesci skladowe mojego projektu

3
XML - Extensible Markup Language
  • XML to sposób zapisywania w plikach tekstowych
    róznorakich danych z zachowaniem ich struktury
  • XML jest podzbiorem standardu SGML prostszym w
    parsowaniu, przetwarzaniu

4
Przykladowy dokument XML
  • lt?xml version"1.0" encoding"UTF-8"?gt
  • ltdokument data-wydania"2002.10.12"gt
  • lttytulgtPrzykladowy dokument XMLlt/tytulgt
  • lttrescgtNajwiekszym miastem w ltkraj
    sym'pl'gtPolscelt/krajgt jest ltmiastogtWarszawalt/mias
    togt.
  • lt/trescgt
  • lt/dokumentgt

5
Przykladowy dokument XML
  • lt?xml version"1.0" encoding"UTF-8"?gt
  • ltdokument data-wydania"2002.10.12"gt
  • lttytulgtPrzykladowy dokument XMLlt/tytulgt
  • lttrescgtNajwiekszym miastem w ltkraj
    sym'pl'gtPolscelt/krajgt jest ltmiastogtWarszawalt/mias
    togt.
  • lt/trescgt
  • lt/dokumentgt

deklaracja XML
6
Przykladowy dokument XML
  • lt?xml version"1.0" encoding"UTF-8"?gt
  • ltdokument data-wydania"2002.10.12"gt
  • lttytulgtPrzykladowy dokument XMLlt/tytulgt
  • lttrescgtNajwiekszym miastem w ltkraj
    sym'pl'gtPolscelt/krajgt jest ltmiastogtWarszawalt/mias
    togt.
  • lt/trescgt
  • lt/dokumentgt

element glówny dokument
7
Przykladowy dokument XML
  • lt?xml version"1.0" encoding"UTF-8"?gt
  • ltdokument data-wydania"2002.10.12"gt
  • lttytulgtPrzykladowy dokument XMLlt/tytulgt
  • lttrescgtNajwiekszym miastem w ltkraj
    sym'pl'gtPolscelt/krajgt jest ltmiastogtWarszawalt/mias
    togt.
  • lt/trescgt
  • lt/dokumentgt

elementy tytul, tresc
8
Przykladowy dokument XML
  • lt?xml version"1.0" encoding"UTF-8"?gt
  • ltdokument data-wydania"2002.10.12"gt
  • lttytulgtPrzykladowy dokument XMLlt/tytulgt
  • lttrescgtNajwiekszym miastem w ltkraj
    sym'pl'gtPolscelt/krajgt jest ltmiastogtWarszawalt/mias
    togt.
  • lt/trescgt
  • lt/dokumentgt

atrybuty data-wydania, sym
9
Inne przyklady
  • ...
  • ltposition-xgt120lt/position-xgt
  • ltposition-ygt213lt/position-ygt
  • ltshow-window-content/gt
  • ltstylesheet href"default.css"/gt
  • ...

ustawienia programów
10
Inne przyklady
  • ...
  • ltrowgtltidgt63982lt/idgtltnamegtSmithlt/namegt...lt/rowgt
  • ltrowgtltidgt63987lt/idgtltnamegtMorganlt/namegt...lt/rowgt
  • ltrowgtltidgt63988lt/idgtltnamegtMorganlt/namegt...lt/rowgt
  • ...

dane z bazy danych
11
Dowolna struktura - zaleta czy wada?
Dowolnosc w nazywaniu elementów, atrybutów oraz
ich strukturze, zagniezdzaniu... Latwo pisac,
trudniej analizowac Do konkretnego zastosowania
warto ustalic strukture dokumentu XML, stworzyc
pewna klase dokumentów ("zastosowanie XML")
12
DTD - Document Type Definition
  • okresla dopuszczalne nazwy elementów
  • okresla typ zawartosci elementów
  • dla danego elementu okresla atrybuty, ich typ
    zawartosci, wartosc domyslna, ...
  • definiuje encje, które mozna wstawiac w dokumencie

13
Przyklad DTD
  • lt!DOCTYPE dokument
  • lt!ELEMENT dokument (tytul?, autor?, tresc)gt
  • lt!ATTLIST dokument
  • data-wydania CDATA IMPLIEDgt
  • lt!ELEMENT tytul PCDATAgt
  • lt!ELEMENT tresc (PCDATAmiastokrajbr)gt
  • lt!ELEMENT miasto PCDATAgt
  • lt!ELEMENT kraj PCDATAgt
  • lt!ATTLIST kraj sym CDATA "pl"gt
  • lt!ELEMENT br EMPTYgt
  • lt!ENTITY RP "Rzeczpospolita Polska"gt
  • gt

14
DOM - Document Object Model
O dokumencie mozna myslec jak o drzewie, którego
wezlami sa elementy, atrybuty, wezly
tekstowe Formalnie okresla to DOM - rekomendacja
W3C (IDL i opis dzialania) Najnowsza obowiazujaca
wersja DOM level 2 (13.11.2001) sklada sie z
jadra i niezaleznych modulów
15
DOM - fragment IDL
interface Node const unsigned short
ELEMENT_NODE 1 readonly attribute DOMString
nodeName attribute DOMString nodeValue
raises(DOMException) on setting readonly
attribute unsigned short nodeType readonly
attribute Node parentNode readonly attribute
NodeList childNodes readonly attribute Node
firstChild readonly attribute Node
previousSibling readonly attribute NamedNodeMap
attributes Node insertBefore(in Node newChild,
in Node refChild)
raises(DOMException) ...
16
Prezentacja danych XML
Czesto XML zawiera dane, które chcielibysmy
prezentowac ludziom. XML sam w sobie to tylko
struktura, a nie znaczenie czy wyglad. Ta sama
tresc mozna chciec prezentowac na wiele róznych
sposobów. Dobrze by bylo móc dodawac informacje o
prezentacji "obok" dokumentów XML.
17
CSS - Cascading Style Sheets
Dosc prosty system przypisujacy elementom
dokumentu obiekty wizualne i dajacy duze
mozliwosci ich formatowania. Nie pozwala na
zmiane kolejnosci, wielokrotne uzywanie tych
samych fragmentów dokumentu itp. Skladnia rózna
od XML utrudnia parsowanie. Zaimplementowany w
wiekszosci przegladarek internetowych.
18
Transformacje dokumentów
A
a
B
C
d
b
e
c
D
E
19
XSL XSLT FO
Extensible Stylesheet Language zostal
zaprojektowany z mysla o prezentacji danych z
dowolnych dokumentów XML. Formating Objects to
zastosowanie XML stworzone z mysla o prezentacji.
Zawiera elementy typu "blok", "tabela", ... XSL
Transformation - jezyk transformacji
umozliwiajacy przeksztalcenie dowolnego dokumentu
XML do FO.
20
XSLT
XSLT pozwala na przeksztalcenia nie tylko do FO,
ale do dowolnego dokumentu XML. Wynik
przeksztalcenia mozna zapisywac jako XML, HTML
lub plaski tekst. Arkusz XSLT jest dokumentem
XML, nie trzeba specjalnych parserów. XSLT jest
jezykiem deklaratywnym.
21
Budowa arkusza XSLT
Arkusz XSLT sklada sie z szablonów. Kazdy szablon
mówi jak zamieniac jakis wezel (wezly) dokumentu
wejsciowego na fragment dokumentu
wyjsciowego. Predefiniowany szablon przepisuje na
wyjscie zawartosc tekstowa elementu i wywoluje
szablony dla podelementów. Tranformacja polega na
wywolaniu szablonu dla elementu glównego.
22
Budowa arkusza XSLT
ltxslstylesheetgt ltxsloutput method"html"/gt
ltxsltemplate match"bold"gt ltbgt
ltxslapply-templates/gt lt/bgt lt/xsltemplategt
ltxsltemplate match"//_at_id"gt ID ltxslvalue-of
select"."/gt lt/xsltemplategt lt/xslstylesheetgt
23
Tworzenie wezlów wyjsciowych
  • wpisanie ich po prostu w tresc szablonu
  • elementy tworzace dokument wyjsciowy
  • ltxslelement name"elem"gt wartosc lt/xslelementgt
  • ltxslattribute name"att"gt wartosc
    lt/xslattributegt
  • ltxsltextgt tekst lt/xsltextgt

24
Sterowanie
Warunkowe generowanie zawartosci ltxslif
test"warunek"gt zawartosc lt/xslifgt ltxslchoosegt
ltxslwhen test"warunek1"gt...lt/xslwhengt
ltxslwhen test"warunek2"gt...lt/xslwhengt
ltxslotherwisegt...lt/xslotherwisegt lt/xslchoosegt D
la wszystkich wezlów okreslonych przez
sciezke ltxslfor-each select"sciezka"gt
zawartosc lt/xslfor-eachgt
25
XPath - podstawy
XPath to jezyk wyrazen sluzacy do adresowania
czesci dokumentu XML. Wynikiem wyrazenia XPath
jest grupa wezlów (np. jeden element, jeden wezel
tekstowy, lista elementów, lista atrybutów...).
26
XPath - podstawy
Os, adresowanie wezlów w drzewie dokumentu
podobne do adresowania plików w drzewie
katalogów, rodzaj wezla. following/doc/section/p
ara attributestyle descesant-or-selfnode() Moz
liwe sa skróty i napisy wieloznaczne //miasto sec
tion//_at_id ../para
27
XPath - arytmetyka
W wyrazeniach moga byc zapisane warunki
logiczne sectionposition()3
section3 a_at_href XPath zawiera w sobie
arytmetyke /parposition() (count(/par) div
2) Mozliwe sa skomplikowane wyrazenia //table_at_
id lt 10//td_at_t'a' or _at_t'b'/_at_
28
"Funkcje" w XSLT
W arkuszach XSLT mozna deklarowac
"zmienne" ltxslvariable name"x"gt wartosc
lt/xslvariablegt ltxslif test"x gt
7"gt...lt/xslifgt Szablony moga miec nazwy i
parametry ltxsltemplate name"tem1"gt
ltxslparam name"x" select"0"/gt ... lt/xsltemplat
egt
29
"Funkcje" w XSLT
Mozna wywolac szablon z okreslonymi
parametrami ltxslcall-template name"tem1"gt
ltxslwith-param name"x" select"0"/gt lt/xslcall-t
emplategt Dopuszczalna jest rekurencja.
30
Silnia w XSLT
ltxsltemplate name"silnia"gt ltxslparam
name"n"/gt ltxslparam name"res" select"1"/gt
ltxslchoosegt ltxslwhen test"n gt 1"gt
ltxslcall-template name"silnia"gt
ltxslwith-param name"n" select"n-1"/gt
ltxslwith-param name"res" select"n
res"/gt lt/xslcall-templategt lt/xslwhengt
ltxslotherwisegt res lt/xslotherwisegt
lt/xslchoosegt lt/xsltemplategt
31
Ocaml
  • Jezyk programowania funkcyjnego, skladniowo
    podobny do SML, gorliwy.
  • Rozbudowany system modulów (sygnatury, struktury,
    funktory), rozlaczna kompilacja.
  • Efektywny kompilator i optymalizator.
  • Imperatywne i obiektowe rozszerzenia.

32
Podzial na moduly
  • Unicode
  • DOM
  • Parser XML
  • XPath
  • XSLT

33
Unicode
  • Miedzynarodowy standard kodowania znaków. Brak
    wsparcia w Ocamlu.
  • W moim module
  • 16 bitowe znaki i wybrane pary, int ?
  • napisy - tablice lub listy tablic
  • funkcje potrzebne do pracy z napisami
  • odczyt i zapis do UTF-16, UTF-8 i jednobajtowych
    standardów ISO-8859-X

34
DOM
Implementacja DOM level2 Core jak najblizsza
rekomendacji. Model obiektowy - wykorzystam
obiektowe rozszerzenia Ocamla
35
Parser
Oparty o napisy Unicodowe, implementacja od
podstaw. Tworzy obiekt dokumetu DOM
(drzewo). Nalezy pamietac o DTD (inna skladnia od
prostej zawartosci XML).
36
XPath
  • typy dla wartosci wyrazen (bool, number, text,
    node-set)
  • parser wyrazen
  • i obliczanie... (sciezki, warunki logiczne,
    arytmetyka)

37
Procesor XSLT
  • Korzystajac z implementacji DOM i XPath dokonuje
    tranformacji dokumentów.
  • dopasowywanie szablonów
  • parametry i szablony (funkcje)
  • serializer (do XML, HTML, tekstu)
Write a Comment
User Comments (0)
About PowerShow.com