XSLT – en introduktion Digitalisering av kulturarvet.

Slides:



Advertisements
Liknande presentationer
Strukturerad dokumentation och XML
Advertisements

Introduktion till XML.
HTML - grunder. Program •Html kan skrivas i anteckningar, eller vilket annat textbehandlingsprogram som helst. Mitt tips: Notepad ++ Notepad ++ •Grafiska.
Datavalidering med JavaScript
G RUNDLÄGGANDE XML OCH CSS Mikael Gunnarsson och Helena Francke TLS, HyrData, Stockholm mars 2003.
XML och frågespråk nikos dimitrakas Rum 6626
XHTML.
FTP, HTTP, HTML, XML och XHTML
1 MSPEL Föreläsning 1 DSV Peter Mozelius XML, XHTML, CSS och Java applets.
”Ett sätt att distribuera Business Objects via webben”
Textkodning: XML ”Having trouble de-coding the text, Albert?”
Föreläsning 3 Repetition Operatorer Styrstrukturer Deklaration och anrop av metoder.
XHTML 1 Designa din egen webbsida. Idag  Struktur och uppmärkning  Vad är (X)HTML?  Element, taggar och attribut  Validering.
Programmering?. Förslag till innehåll programmeringens grundläggande teori webbredigering, webbprogrammering html xml wml (wap 1) xhtml css javascript.
HEAD – HUVUDET I huvudet hittar du information om dokumentets titel, sökord, referenser till stildokument och annan information som normalt inte visas.
Programmeringteknik Webbdelen. HTML H yper T ext M arkup L anguage Märker upp sidans innehåll så att webbläsaren kan avgöra hur innehållet ska visas.
Föreläsning 2 Datalogi för E1 2D1343
Stilark: CSS Digitalisering av text April 2005 Mats Dahlström.
Textkodning: XML ”What’s the matter, Albert? Having trouble decoding the text? ”
Först lite addenda till gårdagen …. (tomt element) eller (med elementinnehåll) attributet target för att identifiera ett mål Korsreferenser See especially.
Databaser i B2KUNO Johan Eklund. Hur går jag vidare? Avancerade tillämpningar:  Analysera data  Generera information Utveckla följande färdigheter:
DAV B04 - Databasteknik Indexering (kap 14).
Flödeskontroll Satser i ett program utförs en och en efter varandra. Detta kallas sekvensiell flödeskontroll. Ofta är det dock nödvändigt att modifiera.
Programmering B PHP Lektion 2
Pekare och speciell programstruktur i inbyggda system
Programmering B PHP Lektion 2
Källor! Hur gör man egentligen?
Föreläsning 4 Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö.
Programmering B PHP Lektion 3
DHTML Designa din egen webbsida.
XSLT – en introduktion Elektronisk publicering.
- digital avverkningsanmälan
TEI Header Mats Dahlström Digitalisering av kulturarvet April 2007.
1.Välj en nod vilken som helst och markera den som öppen. Låt den bli rot. A R B F C D E G
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 4 ( ) INNEHÅLL: -Logiska opertorer -Poster.
1 Föreläsning 3 programmeringsteknik och Matlab 2D1312/ 2D1305 Matlab fortsättning Funkioner, styrstrukturer, manipulering av matriser.
CSS del 3 Kvarnbrinkx Medietyper En XHTML-sida kan ha olika CSS-filer för olika medier! Definieras med attributet “media” i link- taggen,
Nikos dimitrakas Rum 8522 IV1023 ht2013 Avancerad Datahantering med XML Introduktion till kursen Semistrukturerade data och XML.
Databashantering MS Access 2003 Lektion 2
Frågor. Vad är en Fråga? -En fråga är ett urval av information från ett eller flera fält i en eller flera tabeller. - Du använder frågor för att selektera.
EXtensible Markup Language Digitalisering av kulturarvet
XHTML & CSS Introduktion Erik Nahkala
Dokument Författare namn Mål Sökord Beskrivning Tidsbruk Utbildningsområden Nivåer Program
Logikprogrammering 21/10 Binära träd
Introduktion till klasser, objekt och BlueJ Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling.
Dokumentarkitektur 29 augusti 2007 Standard, boring Mats Dahlström Kunskapsorganisation Dokumentrepresentation.
Informationsteknologi - Lektion 2 Trådlöst nätverk (WLAN) Trådlöst nätverk (WLAN) Filarkivet: Filarkivet:
IV1023 ht2013 nikos dimitrakas KTH/ICT/SCS 1 IV1023 ht2013 Avancerad Datahantering med XML XSLT nikos dimitrakas Rum 8522 Läsanvisningar.
XHTML 1 Elektronisk publicering. Idag  Struktur och uppmärkning  Vad är (X)HTML?  Element, taggar och attribut  Klasser och.
XHTML – Dokumentets grundstruktur Body - head. Grundläggande dokument
XSLT 2 Digitalisering av kulturarvet.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 2: Variabler och datatyper Variabler Bindning Typkontroll Några viktiga datatyper.
XSLT 1 Digitalisering av kulturarvet.
Karl-Henrik Hagdahl, 11 november Repetition Logikprogrammering: måndag 11 november 2002.
Lennart Edblom & Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 2: Variabler och datatyper Variabler Bindning Typkontroll Några viktiga datatyper.
Logikprogrammering 23/10 Binära träd In- och uthantering David Hjelm.
ITM1 Kapitel 8 Datastrukturer Grundläggande datavetenskap, 4p Utgående från boken Computer Science av: J. Glenn Brookshear.
IV1023 ht2013 nikos dimitrakas KTH/ICT/SCS 1 IV1023 ht2013 Avancerad Datahantering med XML Frågespråk för SSD och XML nikos dimitrakas
XHTML & CSS 2 del 1 Elektronisk publicering. Idag  Repetition  Teckenuppsättningar  Metadata  Mer om klasser och ID:n  CSS.
Sid period2CD5250 OOP med C++ Mats Medin MDH/IDT Funktionsmall template void myfunc(Type * arr, int n) { // kod; // objekt av typ Type kan deklareras.
Textkodning 1 Dokumentrepresentation. Idag  Struktur och uppmärkning  Vad är (X)HTML?  Element, taggar och attribut  Standarder.
© Björn Hedin, NADA/KTH XML/XSLT 2D1553 Medieproduktion
Informationsinfrastruktur Välkommen till ett samarbete för att effektivisera åtkomst till dokument mellan och inom organisationer.
Litteraturhistoria – epoker och analys av textutdrag
Välkommen! Internetprogrammering III
A R B F C D E G Välj en nod vilken som helst och markera den som öppen. Låt den bli rot.
IT Databas Göran Wiréen
Operativ informationshantering, databaser
SQL Structured Query Language Frågespråk för att används för Kommandon
SQL Structured Query Language Frågespråk för att används för Kommandon
Presentationens avskrift:

XSLT – en introduktion Digitalisering av kulturarvet

Idag Vad är XSLT? Hur fungerar XSLT? XPath och noder XSLT:s notation Templates, repetitioner och villkor TEI

XSL-språk XSLT –Ett språk för att transformera XML- dokument X-PATH –Ett språk för att navigera i XML-dokument XSL-FO –Ett språk för att formatera XML-dokument

Vad är XSLT? Står för eXstensible Stylesheet Language for Transformation Ett programmeringsspråk för att transformera XML-dokument En W3C-standard XSLT transforms an XML source- tree into an XML result-tree

Den röda tråden… DATALOGIKGRÄNSSNITT XMLXSLTXHTML(+CSS)

XML, XSLT, XHTML och CSS XML XSLT CSS XHTML Omvandling

Hur fungerar XSLT?

En post i XML-filen Sue Grafton L som i laglös Deckare 20

XSLT-kod <xsl:stylesheet version="1.0" xmlns:xsl=" xmlns=" Författare: Titel: Kategori:

XPath Ett språk för att navigera i XML- dokument En syntax för att definiera delar av ett XML-dokument En W3C-standard XSLT använder XPath för att navigera i XML-dokument

XPath - noder XML-dokument behandlas som träd bestående av noder Typer av noder –Element –Attributes –Text –Namespaces –Processing instruction –Comment –Document node (dokumentets rotelement)

XPath - noder Sue Grafton L som i laglös Deckare 20 Dokumentnod (rotelement) Textnod Attributnod Elementnod

XPath – Relationer mellan noder Varje element och attribut har en och endast en förälder Elementnoder har noll till många barn Noder med samma förälder kallas syskon –Det första syskonet är äldst, det näst första är näst äldst och så vidare… En förfader är en förälders förälder En ättling är ett barns barn

XPath – Peka ut noder Nodnamn – Pekar ut samtliga barn till noden / - Pekar ut från rotelementet // - Pekar ut noder i dokumentet från den aktuella nod som matchar utpekningen. – Pekar ut aktuell nod.. – Pekar ut föräldern till aktuell - Pekar ut attribut

XPath – Peka ut noder boksamling – Pekar ut samtliga barn till noden boksamling /boksamling – Pekar ut rotelementet boksamling boksamling/bok – Pekar ut alla bok-element som är barn till boksamling //bok – pekar ut samtliga bok-element, oavsett var de befinner sig i hierarkin boksamling//titel – Pekar ut samtliga titel-element som är ättlingar till boksamling, oavsett var de befinner sig i hierarkin – Pekar ut samtliga attributnoder med namnet currency

Exempel: template-anrop Gör att vi är säkra på att rätt eNamn hämtas, dvs det som är barn till forfattare som i sin tur är barn till bok

En annan variant Gör att vi är säkra på att rätt eNamn hämtas, dvs det som är ättling till bok

En tredje variant Gör att vi är säkra på att rätt eNamn hämtas, dvs det som är barn till forfattare

En fjärde variant Fungerar om eNamn finns på endast en nivå i trädet Skulle eNamn finnas på flera nivåer förväxlar tolken noderna med varandra Att ha samma namn på noder på olika nivå i XML-trädet är dock ingen optimal lösning

Exempel: anropat template Pekar ut aktuell nod (eNamn) Pekar ut eNamns förälders (forfattare) barn (fNamn) (enkelt uttryckt: eNamns syskon) Pekar ut eNamns förfäders barn

Operatorer A=A (A är ekvivalent med A) A!=B (A är inte ekvivalent med B) A>B (A är större än B) A<C (A är mindre än C) A>=D (A är större än eller lika med D) A<=E (A är mindre än eller lika med E) Ett uttryck av detta slaget är antingen sant (true) eller falskt (false)

Operatorer A=A and B!=C –Sant om och endast om A är ekvivalent med A och B inte är ekvivalent med C A=A or B=C –Sant om A är ekvivalent med A eller om B är ekvivalent med C –Om första påståendet är sant kollas inte fler påståenden not (A=B) –Sant om och endast om A inte är ekvivalent med B

Aritmetiska operatorer + addition5+2 - subtraktion7-2 * multiplikation8*3 div division6 div 3 mod modulus9 mod 2

XSLT Förändra en icke presentabel fil till en webbsida Formatera ett dokument till PDF eller liknande Förändra en XML-vokabulär till en annan Extrahera specifik information från ett dokument och formatera på ett annat sätt

XSLT:s notation Alla element i XSLT innehåller prefixet xsl:

Operatorer i XSLT A=AA är ekvivalent med A A!=BA är inte ekvivalent med B 8 > 68 är större än 6 6 < 86 är mindre än 8 A >= BA är större än eller lika med B B <= AB är mindre än eller lika med A

Operatorer i XSLT AND, OR och AND…! –pris < 10 and kategori = 'Deckare’ –pris < 10 or kategori = 'Deckare’ –pris < 10 and kategori != 'Deckare’

Templates Innehåller regler som appliceras vid matchning av en specificerad nod Syntax: … Samtliga attribut är valfria, men minst ett av attributen name och match måste återfinnas

Exempel, templates

Exempel, templates med villkor

Repetitioner i XSLT: for-each …kod som utförs på varje nod som överensstämmer med X-PATH- uttrycket

Exempel: for-each

Exempel: for-each med villkor

Styrstrukturer i XSLT om (villkor a) utför a annars om (villkor b) utför b annars utför c

Med if …kod som utförs om villkor a är sant …kod som utförs om villkor b är sant …kod som utförs om villkor c är sant

Exempel: if :

Med choose...kod som utförs om villkor a är sant...kod som utförs om villkor b är sant …kod som utförs om varken villkor a eller b är sant

Exempel: choose, är en deckare, är inte en deckare

TEI och XSLT På samma sätt som en XML-fil kan transformeras med XSLT kan text uppmärkt med TEI transformeras Även här används XPath för navigering

Den TEI-uppmärkta texten The Life and Opinions of Tristram Shandy, Gentleman, by Laurence Sterne: Electronic edition …

Ett XSLT-skal

Lite innehåll… <xsl:value-of select="TEI.2/teiHeader/fileDesc/ titleStmt/title"/> <xsl:value-of select="TEI.2/teiHeader/fileDesc/ titleStmt/title"/>

Hämta allt med for-each <xsl:value-of select="TEI.2/teiHeader/fileDesc/ titleStmt/title"/>

OK, men det ser ju inte så lyckat ut… /TEI.2//* matchar alla noder som befinner sig i TEI.2 skriver ut värdet på den nod som XSLT- processorn pekar på Om en nod har fler än ett barn kommer innehållet i denna nod (plus dess barn) att skrivas ut lika många gånger som antalet barn

Templates Skriver ut allt Ytterligare templates och mer styrning behövs

Placering av nytt template

Två templates infogas…

Varför skrivs headern ut igen? Skriver ut allt (inklusive teiHeader- noden) Detta åtgärdas med hjälp av select

Uteslutning av överflödig headerinformation <xsl:value-ofselect ="TEI.2/teiHeader/fileDesc/ titleStmt/title"/>

Att titta på över sommaren Ray, Eric T. (2003). Learning XML. 2. ed. Sebastopol: OReilly. 399 s. Kompendiet Digitalisering av text