XSLT 2 Digitalisering av kulturarvet.

Slides:



Advertisements
Liknande presentationer
BAS-M Hur du på ett enkelt sätt administrerar din båtklubbs register.
Advertisements

Intagningssystemets databas Ögonblicksbild Kopia av intagningsdatabasen Uppdateras 3 ggr per dag 07:15 – 12:15 – 15:15 Roller Skola, kommun Periodiseras.
Några moln tillgängliga gratis på Internet
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
Programmering B PHP Lektion 1
Funktioner och programorganisation
2D1311 Programmeringsteknik med PBL
Textkodning: XML ”Having trouble de-coding the text, Albert?”
Logikprogrammering Ons, 25/9
XHTML 1 Designa din egen webbsida. Idag  Struktur och uppmärkning  Vad är (X)HTML?  Element, taggar och attribut  Validering.
DCV Idéskiss Design Jag tror att jag ska ha en mörk och stilren design på mitt DCV. Det ska finnas dynamisk funktionalitet där designen byts utan att sidan.
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.
Filhantering Grundprincipen för filhantering Öppna filen
Webbteknik En kort introduktion. Innehåll Historisk återblick Tim Berners Lee 1992 Teknisk beskrivning Märkspråk Standardisering Trender.
Andreas Carlsson Barvefjord och Carlsson Datakraft AB Svarkråkev Värnamo Tel: Epost: Databasteknik 2.
Föreläsning 13 Allt om tentan. Sistaminutenhjälp: På fredag 17 december kl 12 sitter Linda i kemi-fiket och svarar på frågor.
Webbteknik lektion 2 Det handlar om stilmallar Per K, 2012.
Föreläsning 2 Datalogi för E1 2D1343
Föreläsning 5 Python: argument från kommando-tolken
Föreläsning 4 Python: Definiering av egna funktioner Parametrar
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:
i olika programmeringsspråk
XSLT – en introduktion Digitalisering av kulturarvet.
Programmering B PHP Lektion 2
Föreläsning 11 Arrayer.
Pekare och speciell programstruktur i inbyggda system
Programmeringsbegrepp
Pointers. int a=5; int f(int b) { a--; b++; return b; } int main() { int a=3; printf("%d,",f(a)); printf("%d",a); return 0; }
Programmering B PHP Lektion 2
DHTML Designa din egen webbsida.
XSLT – en introduktion Elektronisk publicering.
Max start-guide Liten och väldigt snabbt ihopkastad.
TEI Header Mats Dahlström Digitalisering av kulturarvet April 2007.
CSS del 3 Kvarnbrinkx Medietyper En XHTML-sida kan ha olika CSS-filer för olika medier! Definieras med attributet “media” i link- taggen,
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
EXtensible Markup Language Digitalisering av kulturarvet
Namnrum, räckvidd och rekursion Linda Mannila
XHTML & CSS Introduktion Erik Nahkala
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Tabeller -Villkorssatser -Repetitionssatser.
F4 - Funktioner & parametrar 1 Programmeringsteknik, 4p vt-00 Modularisering ”svarta lådor” Väl definierade arbetsuppgifter Enklare validering Enklare.
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
Styrteknik 7.5 hp distans: SFC med GX IEC SFC_B:1
XSLT 1 Digitalisering av kulturarvet.
1 Mönstermatchning och rekursion Nr 4. 2 Förenklad notation val fnname = fn name => expression Förenklas till fun fnname name = expression Exempel fun.
Karl-Henrik Hagdahl, 11 november Repetition Logikprogrammering: måndag 11 november 2002.
CSS del 2 Kvarnbrink Mer elementreferens ID refererar man till med #-tecken #content { width: 600px; } Klassnamn har en punkt före.newsitem.
CSS del 1 Kvarnbrink I början… Bakgrunden var det enda man kunde byta färg på Allt var satt i Times Texten flödade över hela webbläsarfönstrets.
ITM1 Kapitel 8 Datastrukturer Grundläggande datavetenskap, 4p Utgående från boken Computer Science av: J. Glenn Brookshear.
OOP F5:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 5 Klasser och objekt Skapa objekt - new Referenser Konstruktorer Inkapsling.
Copyright, Mahmud Al Hakim, Lektion 3 Ramar, Navigeringsfält, Lager Mahmud Al Hakim
XHTML & CSS 2 del 1 Elektronisk publicering. Idag  Repetition  Teckenuppsättningar  Metadata  Mer om klasser och ID:n  CSS.
Programmeringsteknik för K och Media
Procedurellt potpurri Dagens samtalsämnen –Klipp (Cut) –If-then-else –fail/0 –repeat/0 Att läsa –The Art of Prolog, kapitel 11 –Relevant avsnitt i Learn.
Textkodning 1 Dokumentrepresentation. Idag  Struktur och uppmärkning  Vad är (X)HTML?  Element, taggar och attribut  Standarder.
CASCADING STYLE SHEETS Digitalisering av kulturarvet.
1 Föreläsning 6 Repetition på metoder Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
1 Föreläsning 4 Metoder & parametrar Array API och klassen ArrayList.
Webbteknik En kort introduktion. Innehåll Historisk återblick Tim Berners Lee 1992 Teknisk beskrivning Märkspråk Standardisering Trender.
KPP053, HT2015 MATLAB, Föreläsning 4
Presentationens avskrift:

XSLT 2 Digitalisering av kulturarvet

Idag Repetition XSLT och TEI Referenser Läsa in XSLT- och XML-dokument i XHTML-dokument Skicka med variabler och argument

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

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

XML, XSLT, XHTML och CSS XML XSLT CSS XHTML Transformation (XSLT-processor)

Transformation Sker med en XSLT-processor Finns inbyggd i Internet Explorer… …men inte i alla webbläsare Därför använder vi JEdits XSLT- processor XALAN

XPath - noder The Life and Opinions of Tristram Shandy, Gentleman, by Laurence Sterne Dokumentnod (rotelement) Textnod Attributnoder Elementnoder

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 /TEI2 – Pekar ut rotelementet TEI2 TEI2/text – Pekar ut alla text-element som är barn till TEI2 text//* – Pekar ut alla noder inuti elementet text //p – pekar ut samtliga p-element, oavsett var de befinner sig i hierarkin text//p – Pekar ut samtliga p-element som är ättlingar till text, oavsett var de befinner sig i hierarkin – Pekar ut samtliga attributnoder med namnet n

Exempel: peka ut alla p som är barn till div1 Gör att vi är säkra på att rätt p hämtas, dvs det som är barn till div1, som i sin tur är barn till div, som i sin tur är barn till body

En annan variant

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 Anropar alla barn (och ättlingar) till body Matchar noder med namnet div, dock endast de som är barn eller ättlingar till body Matchar noder med namnet p, dock endast de som är barn eller ättlingar till body

Exempel, templates med villkor

Exempel, templates med villkor

apply-templates När processorn stöter på apply- templates undersöker den det första elementet och ser om det finns ett template som matchar den Så länge det finns ett template som matchar aktuellt element kommer processorn att fortsätta på samma sätt till nästa element

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

pekar här ut attributet id hos heads förälder: <div1 id="OTS1" n="I" type="book"> Notera krullparenteserna som används när man vill använda ett värde i ett icke xsl-element

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 Jodå, det funkar faktiskt

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 Även detta funkar

XSLT och TEI Källan kan ses som en linjär sekvens Det TEI-kodade innehållet är mer likt en databas Flera olika outputs är möjliga

Varför transformera TEI med 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

Rendering av TEI-text Kopiera element Utesluta element Flytta element Generera element

Kopiera element Navigationssystem Till exempel kan alla head-element kopieras och placeras i en lista i början av texten Listans element kan sedan länkas till respektive head-element För kopiering kan for-each användas med fördel

Exempel: kopiera element

Matchande template Länkar varje head-element tillbaka till index Exempel 4

Utesluta element TEI Header innehåller enbart metadata Vi kanske inte vill visa texten på bokens baksida Redaktionella noter bör inte visas Eller varför inte enbart visa vissa element för vissa läsare och andra element för andra läsare?

Utesluta element, exempel

Utesluta element, exempel To the Right Honourable <rs type="person" key="mrpitt">Mr Pitt. <note place="end" type="editorial">Sex tecken används för attributet key Sir, Never poor Wight of a Dedicator had less hopes from his Dedication, than I have from this of mine; for …

Uteslutning av note Exempel 5

Flytta element Template-anrop utförs i den ordning de är skrivna i: Här kommer body skrivas ut först, sedan back och sist front

Generera element Rahtz exempel något modifierat: –Varje namn ska transformeras till en länk vars titel-attribut får värdet This name occurs x times –Dvs, när muspekaren förs över namnet Toby ska en gul ruta med texten This name occurs 3 times dyka upp

TEI-kod Toby Shandy XSLT-kod Generera element, exempel Exempel 5

TEI-länkar Länkning inom dokumentet –ref och ptr Länkning inom dokumentet och till externa dokument –xref och xptr

ptr TEI XSLT Go to Kräver att det finns ett element med attributet id="preface", detta id måste vara unikt för filen Notera också fyrkanten (#) som gör det möjligt att länka till ett ankare inom ett dokument

Mer ptr ptr kan tilldelas attributet type På så vis kan vi skilja olika typer av länkar ifrån varandra

Matchande template … Go to …

ref TEI Go to preface XSLT Nackdel med denna variant är att man infogar text som inte hör till originalkällan

xptr, tei-kod DOC1 måste definieras i DTD:n:

xptr, xslt-kod

xref, tei-kod The HOMUNCULUS, Sir… /articles/h/homunculus.html

xref, xslt-kod

Notera… att url:en /h/homunculus.html egentligen ska deklareras i DTD:n: /h/homunculus.html /h/homunculus.html

Och i tei-koden… …ska vi istället skriva: HOMUNCULUS … /h/homunculus.html

Bilder (figurer) Elementet figure används: Above: The drawing room… The figure shows… Detta kräver att pullman är definierad i DTD:n:

xslt-kod

Inläsning av XSLT- och XML- dokument i XHTML-dokument Vi kan med ett (hyfsat) enkelt JavaScript läsa in XSLT- och XML- dokument i XHTML-dokument Vi utgår från en skapad.htm-fil Vi skriver sedan ett JavaScript som läser in bägge filerna

tei.htm...lite kod... (följande exempel är omarbetat efter

Skapa variabler och tilldela värden var xslt = new ActiveXObject("Msxml2.XSLTemplate.3.0"); var xsldoc = new ActiveXObject ("Msxml2.FreeThreadedDOMDocument.3.0"); var xslproc;

Ladda filer xsldoc.async = false; xsldoc.load("tei.xsl"); xslt.stylesheet = xsldoc; var xmldoc = new ActiveXObject("Msxml2.DOMDocument.3.0"); xmldoc.async = false; xmldoc.validateOnParse = false; xmldoc.load("tei.xml"); Lägg in denna rad ifall resultatet uteblir (detta beror sannolikt på att validering gentemot DTD:n misslyckas)

Utför transformation xslproc = xslt.createProcessor(); xslproc.input = xmldoc; xslproc.transform(); document.write(xslproc.output); Resultatet av transformationen skrivs ut här

Inläsning xml-filen: tei.xml xsl-mallen: tei.xsl xhtml-dokumentet: tei.htm Resultat

Skicka in parametrar till JavaScriptet Länken abc infogas i tei.htm (kan även konstrueras i tei.xsl) Strängen abc skickas in till tei.htm och kan tas emot av JavaScriptet

Ta emot parameter var str = '' + this.location; str = str.substring((str.indexOf('?')) + 1); Skapar variabeln str och tilldelar den värdet av aktuell url Plockar ut allt som finns efter frågetecknet

Ta emot parameter var str = '' + this.location str = str.substring((str.indexOf('?')) + 1) Variabeln str skapas och tar emot värdet '' (tomma strängen) plus värdet av this.location (url:en till aktuell webbsida) Sedan tilldelas str värdet av allt som befinner sig från ? plus ett tecken och framåt, dvs abc i det här fallet

Vad kan vi göra med det? Till exempel styra vilken stilmall vi ska använda: str += ".xsl"; str tilldelas värdet av sig själv plus.xsl -> abc.xsl xsldoc.load(str); abc.xsl läses in Jämför med tidigare värde: xsldoc.load("tei.xsl");

Flera stilmallar: abc.xsl def.xsl ghi.xsl jkl.xsl