XSL – przekształcenia XML-a

1 XSL – przekształcenia XML-a ...
Author: Agnieszka Ambroziak
0 downloads 7 Views

1 XSL – przekształcenia XML-a

2 Języki formatowania dokumentów strukturalnychSGML: FOSI (Formatting Output Specification Instance): specyfikacja MIL-PRF-28001, zbyt małe możliwości dla ogólnych zastosowań. DSSSL (Document Style Semantics and Specification Language): ISO/IEC 10179:1996 oparty na podzbiorze języka Scheme bez efektów ubocznych. XML: CSS (Cascading Style Sheets), stosowane m. in. w HTML-u, XSL (Extensible Stylesheet Language): język wysokopoziomowy, deklaratywny, bez efektów ubocznych.

3 XSL – części składowe XSLT (XSL Transformations):język opisu przekształceń dokumentów XML, składnia XML, oparty na dopasowywaniu wzorców, przestrzeń nazw: rekomendacja W3C z 16 listopada 1999 r. XPath (XML Path Language): język opisu referencji do fragmentów dokumentu XML. XSL:FO (XSL Formatting Objects): słownik XML-owy pozwalający definiować formatowanie, przestrzeń nazw: opisany w rekomendacji XSL 1.0 z 15 października 2001 r.

4 XSL a XSLT Źródło: Extensible Stylesheet Language (XSL) Version 1.0,W3C Recommendation 15 October 2001 (http://www.w3.org/TR/xsl/)

5 Arkusze stylów a przekształceniaXSL faktura  PDF przekształcenia arkusze stylów XSLT zamówienie  faktura FOSI XSLT faktura  HTML Omnimark ustawa (RTF)  ustawa (XML) CSS DSSSL

6 Zasada działania przekształcenia XSLTReguła XSLT: ścieżka XPath określająca węzły, dla których reguła obowiązuje, treść "wykonywana" w przypadku uruchomienia reguły: tekst i elementy wypisywane na wyjście, instrukcje XSLT. Sposób przetwarzania: wykonaj regułę dla węzła /, reguła może rekurencyjnie wywołać reguły dla innych węzłów.

7 Arkusz stylów/przekształcenie XSLTElement główny: ... Output methods: xml, html, text. Określanie arkusza stylów dla dokumentu:

8 Podstawy składni – przykład

9 Przekształcenie – przykład aaa bbb ccc ddd ***

aaa

bbb

ccc

ddd

10 Wbudowane reguły

11 Wybór reguły spośród wielu pasującychAtrybut priority elementu xsl:template. Wybór pomiędzy regułami o najwyższym prorytecie – wg rodzaju testu: węzeł określonego typu o określonej nazwie: 0, węzeł określonego typu należący do określonej przestrzeni nazw: , węzeł określonego typu: -0.5, inne (bardziej specyficzne): 0.5.

12 Generowanie dokumentu wyjściowegoElementy i tekst literalnie podane w przekształceniu. Instrukcje generujące:

13 Rodzaje przetwarzania XSLT (1)Przetwarzanie sterowane strukturą dokumentu źródłowego: przechodzimy po strukturze dokumentu źródłowego, generujemy fragmenty struktury dokumentu wyjściowego.

14 Rodzaje przetwarzania XSLT (2)Przetwarzanie sterowane strukturą dokumentu wyjściowego: jedna duża reguła dla węzła root, generujemy strukturę dokumentu docelowego, wyciągamy odpowiednie wartości z dokumentu źródłowego. Expense Report Summary

Company:

Total Amount:

15 Przetwarzanie warunkowe: if yellow

16 Przetwarzanie warunkowe: choose .

17 Pętle

Index

18 Sortowanie Instrukcja sortowania: może występować wewnątrz apply-templates i for-each.

3000xyz2500abc

19 Zmienne Jak w funkcyjnych językach programowania:brak instrukcji przypisania, brak efektów ubocznych. Deklaracja: wartość: atrybut select  wyrażenie odpowiedniego typu, zawartość elementu  fragment drzewa wynikowego, Użycie: w wyrażeniach: $name,

20 Nazwane wzorce i parametry #000000 ... #FFFFFF" ...

21 Użycie zmiennych w wyrażeniachElement XSLT Atrybut apply-templates select value-of number value for-each if test when sort

22 Użycie wyrażeń w atrybutachSzablony wartości atrybutów: mogą zawierać wyrażenia pomiędzy nawiasami {}. Element XSLT Atrybuty literalny element dokumentu wyjściowego dowolny atrybut element name, namespace attribute number level, count, from, format, lang, grouping-separator, grouping-size sort order, lang, data-type, case-order processing-instruction name

23 Modes Atrybut mode elementów: template (tylko z atrybutem match),apply-templates. Możliwość implementacji niezależnych trybów przetwarzania.

24 Wybrane funkcje Node-set reprezentujący inny dokument: document(URI) Unikalny identyfikator węzła: generate-id(node-set) Bieżący węzeł: current() uwaga: różnica między węzłem bieżącym a węzłem kontekstowym:

25 Formatting Objects – przykład drzewa wynikowego Preface This is a simple test document. It shows a partial fo-result tree (page layout missing). ...

26 Formatting Objects – przykłady reguł

27 Narzędzia Procesory XSLT: XT Jamesa Clark’a,Oracle XML Parser for Java / C / PL-SQL LotusXSL (IBM alphaWorks), Microsoft XML Core Services (MSXML 4.0), XML::XSLT (Perl), Procesor XSL:FO: FOP (open source; generuje dokumenty w formacie PDF). Edytory XSLT: IBM XSL Editor (IBM alphaWorks), Inso XSL/CSS Editor, XSL Authoring Studio, Homesite XSL Authoring Toolbar.

28 Rozwój XSL-a XSLT 2.0 Working Draft: wsparcie dla XML Schema,grupowanie węzłów (for-each-group), definiowanie i wywoływanie własnych funkcji, generowanie wielu dokumentów wyjściowych, ...