Plan prezentacji Przedmiot: XML i jego zastosowania Dr inż. Stanisław Polak Akademia Górniczo - Hutnicza w Krakowie, Katedra Informatyki Opis układu graficznego stron http://www.icsr.agh.edu.pl/~polak/ Dr inż. Stanisław Polak 1 Przedmiot: XML i jego zastosowania Dr inż. Stanisław Polak 2 Przedmiot: XML i jego zastosowania Ogólna charakterystyka Przykładowe formatery XSL Formatting Objects Język do formatowania danych XML Rekomendacja W3C Formalna nazwa to XSL (Extensible Stylesheet Language) Apache FOP http://xmlgraphics.apache.org/fop/ Darmowy Napisany w Javie Zawiera przeglądarkę XSL Formaty wyjściowe: PDF, RTF, PCL, PostScript, SVG, PNG,... xmlroff http://www.xmlroff.org/ Darmowy Napisany w C Formaty wyjściowe: PDF, PostScript Inne http://www.w3.org/style/xsl/ Dr inż. Stanisław Polak 3 Przedmiot: XML i jego zastosowania Dr inż. Stanisław Polak 4 Przedmiot: XML i jego zastosowania
Model formatowania Ogólna struktura dokumentu Oparty na prostokątach zwanych obszarami. Obszar posiada obramowania i odstępy Obiekty formatujące, z reguły, tworzą pojedynczy obszar Typy obszarów: 1. Regiony Obszary blokowe 2. Obszary blokowe Obszary blokowe Obszary wierszowe Tekst 3. Obszary wierszowe Obszary inline Tekst 4. Obszary inline Obszary inline Tekst simple-page-master layout-master-set page-sequence-master... root... page-sequence... title static-content flow Dr inż. Stanisław Polak 5 Przedmiot: XML i jego zastosowania Dr inż. Stanisław Polak 6 Przedmiot: XML i jego zastosowania Ogólna struktura dokumentu C.d. Przykład Hello World Użycie szablonu strony 1 <? xml version=" 1.0 " e n c o d i n g="iso -8859-2 "?> 2 <f o : r o o t x m l n s : f o=" http: // www.w3.org /1999/ XSL / Format "> 3 4 <! Opis uk ł adu graficznego stron 5 <f o : layout-master-set> 6 7 <f o : simple-page-master master-name="szablonstrony"> 8 <! Tre ś ć szablonu strony > 9 </ f o : simple-page-master> 10... 11 <f o : page-sequence-master master-name="szablonsekwencji"> 12 <! Tre ś ć szablonu sekwencji > 13 </ f o : page-sequence-master> 14... 15 </ f o : layout-master-set> 16 17 <! Opis t r e ś c i s t r o n > 18 <f o : page-sequence master-reference="szablonstrony"> 19 <! Tre ś ć stron > 20 </ f o : page-sequence> 21 <f o : page-sequence master-reference="szablonsekwencji"> 22 <! Tre ś ć stron > 23 </ f o : page-sequence> 24... 25 </ f o : r o o t> 1 <? xml version=" 1.0 " e n c o d i n g="iso -8859-2 "?> 2 <f o : r o o t x m l n s : f o=" http: // www.w3.org /1999/ XSL / Format "> 3 4 <f o : l a y o u t master s e t> 5 <f o : s i m p l e page master master name=" SzablonStrony "> 6 <f o : region-body margin="1in"/> 7 </ f o : s i m p l e page master> 8 </ f o : l a y o u t master s e t> 9 10 <fo:page sequence master r e f e r e n c e=" SzablonStrony "> 11 <f o : flow flow name="xsl - region - body "> 12 <f o : block>hello, world!</ f o : block> 13 </ f o : flow> 14 </ f o :page s e q u e n c e> 15 16 </ f o : r o o t> Dr inż. Stanisław Polak 7 Przedmiot: XML i jego zastosowania Dr inż. Stanisław Polak 8 Przedmiot: XML i jego zastosowania
Szablon strony Opis układu graficznego stron Układ graficzny strony prostej Szablon strony Opis układu graficznego stron Definiowanie układu graficznego strony prostej Lewy margines strony Górny margines strony region-before region-start region-body region-after Dolny margines strony region-end Prawy margines strony Strona Region wstępny Region początkowy Region końcowy Region treści Region zakończeniowy Czynne pole strony 1 <f o : simple-page-master master-name="a4" 2 page-width=" 297 mm" page-height=" 210 mm" 3 margin-top="" margin-bottom="" margin-left="" margin-right="" 4 reference-orientation="0" 5 writing-mode="lr -tb"> 6 <f o : region-body margin="3cm"/> 7 <f o : region-before extent="" precedence=" false "/> 8 <f o : region-after extent="" precedence=" true "/> 9 <f o : region-start extent=""/> 10 <f o : region-end extent=""/> 11 </ f o : simple-page-master> Tekst główny Dr inż. Stanisław Polak 9 Przedmiot: XML i jego zastosowania Dr inż. Stanisław Polak 10 Przedmiot: XML i jego zastosowania Szablon sekwencji Opis układu graficznego stron Definiowanie szablonu sekwencji Szablon sekwencji Opis układu graficznego stron Bezwzględne odwołanie do szablonu strony o jednokrotnym wywołaniu 1 <f o : page-sequence-master master-name="szablonsekwencji"> 2 <! Bezwzgl ędne lub warunkowe odwo ł ania do szablon ów strony, wywoł ane j e d n o k r o t n i e l u b w s p o s ób p o w t a r z a l n y > 3 </ f o : page-sequence-master> 4... 5 <fo:page sequence master r e f e r e n c e="szablonsekwencji"> 6 <! Tre ś ć strony tytu ł owej oraz pozosta ł ych stron > 7 </ f o :page s e q u e n c e> 1 <f o : s i m p l e page master master name="szablonstronytytulowej"...> 2... 3 </ f o : s i m p l e page master> 4 5 <f o : p a g e sequence master master name="szablonsekwencji"> 6 <f o : single-page-master-reference master-reference ="SzablonStronyTytulowej"/> 7 <f o : r e p e a t a b l e page master r e f e r e n c e master r e f e r e n c e =" SzablonStronyTekstu "/> 8 </ f o :page sequence master> 9... 10 <fo:page sequence master r e f e r e n c e="szablonsekwencji"> 11 <! Tre ś ć strony tytu ł owej oraz pozosta ł ych stron > 12 </ f o :page s e q u e n c e> Dr inż. Stanisław Polak 11 Przedmiot: XML i jego zastosowania Dr inż. Stanisław Polak 12 Przedmiot: XML i jego zastosowania
Szablon sekwencji Opis układu graficznego stron Bezwzględne odwołanie do szablonu strony o powtarzalnym wywołaniu Szablon sekwencji Opis układu graficznego stron Warunkowe odwołanie do szablonu strony o powtarzalnym wywołaniu 1... 2 <f o : s i m p l e page master master name="szablonstronytekstu"...> 3... 4 </ f o : s i m p l e page master> 5 6 <f o : p a g e sequence master master name=" SzablonSekwencji "> 7 <f o : s i n g l e page master r e f e r e n c e master r e f e r e n c e=" SzablonStronyTytulowej "/> 8 <f o : repeatable-page-master-reference master-reference ="SzablonStronyTekstu" maximum-repeats="8"/> 9 </ f o :page sequence master> 10... 11 <fo:page sequence master r e f e r e n c e=" SzablonSekwencji "> 12 <! Tre ś ć > 13 </ f o :page s e q u e n c e> 1 <f o : s i m p l e page master master name="szablonstronypustej"...>...</ f o : s i m p l e page master> 2 <f o : s i m p l e page master master name="szablonstronytytulowej"...>...</ f o : s i m p l e page master> 3 <f o : s i m p l e page master master name="szablonstronynieparzystej"...>...</ f o : s i m p l e page master> 4 5 <f o : p a g e sequence master master name=" SzablonSekwencji "> 6 <f o : repeatable-page-master-alternatives> 7 <f o : conditional-page-master-reference master-reference="szablonstronytytulowej" page-position=" first " /> 8 <f o : conditional-page-master-reference master-reference="szablonstronynieparzystej" odd-or-even=" odd " /> 9 <f o : conditional-page-master-reference master-reference="szablonstronypustej" blank-or-not-blank=" blank " /> 10 </ f o : repeatable-page-master-alternatives> 11 </ f o :page sequence master> 12... 13 <f o : p a g e s e q u e n c e master r e f e r e n c e=" SzablonSekwencji "> 14 <! Tre ść > 15 </ f o :page s e q u e n c e> Dr inż. Stanisław Polak 13 Przedmiot: XML i jego zastosowania Dr inż. Stanisław Polak 14 Przedmiot: XML i jego zastosowania Sekwencje stron 1 <? xml version=" 1.0 " e n c o d i n g="utf -8"?> 2 <f o : r o o t x m l n s : f o=" http: // www.w3.org /1999/ XSL / Format "> 3 <f o : l a y o u t master s e t> 4 <f o : s i m p l e page master master name="szablonstrony""> 5 <!-- Szablony --> 6 </ fo:simple -page - master > 7 </ fo:layout - master -set > 8 9 <fo:page-sequence master-reference="szablonstrony" initial-page-number="1" force-page-count="no f o r c e "... > 10 <fo:title>tytuł strony </ fo:title> 11... 12 <fo:static-content flow-name=" xsl region before " >... </ fo:static-content> 13 <fo:flow flow-name=" x s l r e g i o n body " >... </ fo:flow> 14 </ fo:page-sequence> 15 </ fo:root > Obiekty formatujące bloków 1 <fo:page sequence master r e f e r e n c e=" SzablonStrony "> 2 <f o : f l o w flow name="xsl - region - body "> 3 <f o : block font="72 pt Arial " c o l o r=" black ">1. Polak 4 <f o : block-container position=" absolute " top="10 pt" l e f t="30 pt" height="14 pt" width=" 100% "> 5 <f o : b l o c k f o n t="72 pt Arial " c o l o r=" silver ">1. Stanislaw</ f o : b l o c k> 6 </ f o : block-container> 7 </ f o : block> 8 <f o : b l o c k f o n t="72 pt Arial " c o l o r=" black ">2. Polak 9 <fo: block container position=" fixed " top="10 pt" l e f t="30 pt" height="14 pt" width=" 100% "> 10 <f o : b l o c k f o n t="72 pt Arial " c o l o r=" silver ">2. Stanislaw</ f o : b l o c k> 11 </ f o : b l o c k c o n t a i n e r> 12 </ f o : b l o c k> 13 </ f o : f l o w> 14 </ f o :page s e q u e n c e> 2. Stanislaw 1. Polak 1. Stanislaw 2. Polak Dr inż. Stanisław Polak 15 Przedmiot: XML i jego zastosowania Dr inż. Stanisław Polak 16 Przedmiot: XML i jego zastosowania
Obiekty formatujące tabel Obiekty formatujące list Rysunek : Hierarchia obiektów formatujących Podpis tabeli Komorka 1 Komorka 2 Komorka 3 1 <f o : table-and-caption t e x t a l i g n=" center " s t a r t i n d e n t=" 100 pt"> 2 <f o : t a b l e c a p t i o n s t a r t i n d e n t="0pt" t e x t a l i g n=" start "> 3 <f o : b l o c k>podpis tabeli </ f o : b l o c k> 4 </ f o : t a b l e c a p t i o n> 5 <f o : table width=" 325 pt" t a b l e l a y o u t=" fixed " border width="1mm" border s t y l e=" solid " > 6 <f o : table-column column width=" 100 pt" column number="1"/> 7 <f o : t a b l e column column width=" 150 pt" column number="2"/> 8 <f o : t a b l e column column width="75 pt" column number="3"/> 9 <f o : t a b l e body s t a r t i n d e n t="0pt" t e x t a l i g n =" start "> 10 <f o : t a b l e row> 11 <fo: table c e l l border style=" dotted ">< f o : b l o c k>komorka 1</ f o : b l o c k></ f o : t a b l e c e l l> 12 <fo: table c e l l><fo: block>komorka 2</ f o : b l o c k></ f o : t a b l e c e l l> 13 <fo: table c e l l><fo: block>komorka 3</ f o : b l o c k></ f o : t a b l e c e l l> 14 </ f o : t a b l e row> 15 </ f o : t a b l e body> 16 </ f o : table> 17 </ f o : table-and-caption> Rysunek : Hierarchia obiektów formatujących Rysunek : Określanie geometrii listy 1 <f o : l i s t b l o c k> 2 <f o : l i s t item> 3 <f o : l i s t item l a b e l end i n d e n t=" label - end ()" > 4 <f o : b l o c k>• ;</ f o : b l o c k> 5 </ f o : l i s t item l a b e l> 6 <f o : l i s t item body start indent="body - start ()"> 7 <f o : b l o c k> Element 1</ f o : b l o c k> 8 </ f o : l i s t item body> 9 </ f o : l i s t item> 10 11 <f o : l i s t item> 12 <f o : l i s t item l a b e l end i n d e n t=" label - end ()" > 13 <f o : b l o c k>• ;</ f o : b l o c k> 14 </ f o : l i s t item l a b e l> 15 <f o : l i s t item body start indent="body - start ()"> 16 <f o : b l o c k> Element 2</ f o : b l o c k> 17 </ f o : l i s t item body> 18 </ f o : l i s t item> 19 </ f o : l i s t b l o c k> Element 1 Element 2 Dr inż. Stanisław Polak 17 Przedmiot: XML i jego zastosowania Dr inż. Stanisław Polak 18 Przedmiot: XML i jego zastosowania Obiekty formatujące obszarów inline Inne przykładowe obiekty formatujące 1 <f o : p a g e s e q u e n c e master r e f e r e n c e=" SzablonStrony "> 2 <f o : s t a t i c c o n t e n t flow name="xsl - region - before "> 3 <f o : b l o c k t e x t a l i g n=" start " f o n t s i z e="10 pt" f o n t f a m i l y=" serif " l i n e h e i g h t="1em + 2pt"> 4 Strona (<f o : page-number/> / <f o : page-number-citation r e f i d="end-seq1"/>) 5 </ f o : b l o c k> 6 </ f o : s t a t i c c o n t e n t> 7 <f o : f l o w flow name="xsl - region - body "> 8 <f o : b l o c k> 9 <f o : character c h a r a c t e r="s" f o n t s i z e="16pt" c o l o r=" red "/>tanislaw <f o : inline t e x t d e c o r a t i o n=" underline " >Polak</ f o : inline> 10 </ f o : b l o c k> 11 <f o : b l o c k> 12 <f o : leader leader length. minimum=" 100% " leader length. optimum=" 100% " leader pattern=" rule " rule t h i c k n e s s=" 0.13 mm"/> 13 <f o : external-graphic s r c=" zdjecie. jpg "/> 14 </ f o : b l o c k> 15 <f o : b l o c k i d= end-seq1 /> 16 </ f o : f l o w> 17 </ f o :page s e q u e n c e> Strona (1 / 1) Stanislaw Polak 1 <f o : b l o c k c o l o r=" red "> 2 <f o : footnote> 3 <f o : i n l i n e f o n t w e i g h t=" bold ">Przypis< f o : i n l i n e f o n t s i z e="6pt" v e r t i c a l a l i g n=" super ">1</ f o : i n l i n e></ f o : i n l i n e> 4 <f o : f o o t n o t e body> 5 <f o : b l o c k c o l o r=" maroon ">1. Przypis to tekst umieszczany na dole biezacej lub nastepnej strony.</ f o : b l o c k> 6 </ f o :footnote body> 7 </ f o : footnote>na dole strony. 8 </ f o : b l o c k> 9 10 <f o : b l o c k> Obrazek w formacie SVG. 11 <f o : instream-foreign-object> 12 <s v g : s v g width="20" h e i g h t="20"> 13 <s v g : g s t y l e="fill:red ; stroke: #000000 "> 14 <s v g : r e c t x="0" y="0" width="15" h e i g h t= "15"/> 15 <s v g : r e c t x="5" y="5" width="15" h e i g h t="15"/> 16 </ s v g :g> 17 </ s v g :svg> 18 </ f o : instream-foreign-object> 19 </ f o : b l o c k> Przypis 1 na dole strony. Obrazek w formacie SVG. 1. Przypis to tekst umieszczany na dole biezacej lub nastepnej strony. Dr inż. Stanisław Polak 19 Przedmiot: XML i jego zastosowania Dr inż. Stanisław Polak 20 Przedmiot: XML i jego zastosowania
Źródła Źródła Apache Foundation. Apache FOP. http://xmlgraphics.apache.org/fop/. RenderX. XSL Formatting Objects Tutorial. http://www.renderx.com/tutorial.html. W3C. Extensible Stylesheet Language (XSL) Requirements Version 2.0. http://www.w3.org/tr/xslfo20-req/. W3C. Extensible Stylesheet Language (XSL) Version 1.1. http://www.w3.org/tr/xsl/. Dr inż. Stanisław Polak 21 Przedmiot: XML i jego zastosowania