Introduktion till XSLT

Relevanta dokument
Föreläsning 3 i kursen: Monica Langerth Zetterman Uppsala universitet. Extensible Style Language (XSL) är en språkfamilj

Vad är XSLT XSLT extensible Stylesheet Language Transformations

XSLT. Extensible Stylesheet Language Transformations

<sid nr="1" av="2" /> Stackenföreläsning: XML & XSLT: Intro. XML och XSLT

XML. Extensible Markup Language

En snabb titt på XML LEKTION 6


Metaspråket XML Mika Suonvieri

Uppmärkningsspråk. TDP007 Konstruktion av datorspråk Föreläsning 4. Peter Dalenius Institutionen för datavetenskap

Konstruktion av datorspråk

Informationsmodellering och e-infrastrukturer

Kompletterande exempel till XSLT

Hantera informationspaket i system för bevarande

Vad är XLink. XLink/XPointer/XSLT-FO. Namespace. Simple Links

extensible Markup Language

XML och C#.NET Att hantera XML-dokument

JavaScript. Innehåll. Historia. Document object model DHTML. Varför Javascript?

Laboration 1 XML, XPath, XSLT och JSON

Översikt. Mer om XML & TEI Kurstillfälle 2. Grundläggande principer 1. Grundläggande principer 2. Hierarkisk dokumentmodell. XML & flexibilitet

Föreläsning 4. CSS Stilmallar för webben

Delrapport DP3. FGS för paketstruktur för e-arkiv Bilaga 1 METS

Vad är XML XML. Exempel - SMIL. Exempel - XHTML. extensible Markup Language

HTML och CSS. Eric Elfving Institutionen för datavetenskap. 18 augusti 2015

CSS- Cascading Stylesheets

Strukturering med XML och DTD

729G74 IT och programmering, grundkurs. Tema 2. Föreläsning 3 Jody Foo,

HTML och CSS. Eric Elfving Institutionen för Datavetenskap (IDA)

Kursplanering Utveckling av webbapplikationer

XML. XML is a method for putting structured data in a text file

Anvisningar för ifyllning av Excelark för databaser (xml-filer)

Anvisning för Svensk Livfaktura

Heldag om FGS FGS:er och deras tekniska regelverk. Karin Bredenberg, FGS funktionen. Standarder. FGS:er och deras tekniska regelverk 1

Uppmärkningsspråk. TDP007 Konstruktion av datorspråk Föreläsning 3. Peter Dalenius Institutionen för datavetenskap

Paketstruktur. Karin Bredenberg /

Övning (X)HTML 2. Sidan 1 av

729G74 IT och programmering, grundkurs. Tema 2. Föreläsning 3 Jody Foo,

emopluppen Användning av "Ant" Niklas Backlund Version: 1.4 ( 2002/04/26 07:27:52 UTC)

Webbens grundbegrepp. Introduktion till programmering. Ytterligare exempel. Exempel på webbsida. Föreläsning 5

Beskrivning av xml-produkten FirmagranskningSokord(F34) version 2.00

XML Lars Celander en effektiv introduktion m n skonsam E

Lektion 2 Del 1 Kapitel 6

DP7 Kompletterande information

Vad är en databas? Exempel på databaser: Databas = Organiserad samling och lagring av information.

ITK:P2 F1. Hemsidor med HTML HTML. FTP, HTTP, HTML, XML och XHTML

XML. Dagens föreläsning. Vad är XML extencible Markup Language. Exempel - XHTML

Innehåll Introduktion... 3 InteractiveScene.config... 3 Scener <scenes>... 3 Typsnitt <fonts>... 3 Övergångar <transitions>...

Lektion 8 Del 1 XML, Kapitel 20

Dagens föreläsning. Vad är XML. Exempel - XHTML. extencible Markup Language

Objektbaserad programmering

ÖrebroCupen. Institutionen för Ekonomi, Statistik och Informatik, ESI Informatik, Klientprogrammering för webbsystem, 5 poäng

Abstrakta datatyper. Primitiva vektorer. Deklarera en vektor

Word-guide Introduktion

Uppmärkningsspråk. TDP007 Konstruktion av datorspråk Föreläsning 3. Peter Dalenius Institutionen för datavetenskap

Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor

Guide för Innehållsleverantörer

Kursledare och övriga föreläsare och övningsassistenter. Antal undervisningstimmar uppdelat på föreläsningar, övningar och andra undervisningsformer

Förkunskaper: Tim Berners Lees vision webbläsarkriget W3C strukturtagg <h1> layout-tagg <font size="6">

Schematransformation SLU

Layoutbegränsningar i XSL-FO Layout restrictions in XSL-FO. Per Töyrä. EXAMENSARBETE Grafisk Teknologi Nr: E 3677 GT

F07 Stilmallar Dagens agenda

ORDLISTA WEBBDESIGN 100P

Att skriva dokumentation i DocBook för Proview

L0009B. Moment. Introduktion till geografiska databaser: G:\L0009B\Allmänt\IntroGeoDB.pdf (F)

Introduktion till programmering

Inlämningsuppgift 2. DA156A - Introduktion till webbutveckling Teknik och samhälle, Malmö högskola Oktober 2012

Lektion 2 - CSS. CSS - Fortsätt så här

Informationshanteringsssytem till en existerande portallösning

Användarberoende vyer av XML-data (HS-IDA-EA )

EDA095 HTML. Per Andersson. April 26, Lund University Innehåll: HTML, CSS, DOM, JavaScript

CSS-övningar. 1. Grunder

Digital inlämning av årsredovisningar

Övning 1 Vi börjar med en vanlig html-fil där html används för både innehåll och utseende:

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer.

Webbteknik. Innehåll. Historisk återblick Teknisk beskrivning Märkspråk Standardisering Trender. En kort introduktion

Grafisk presentation av SCDR 1

Förvaltningsgemensam specifikation för leverans av enstaka publikationer till Kungliga biblioteket (FGS-PUBL)

Programmeringteknik. Planering MÅL LABB: MOMENT LAB4 HTML - EXEMPEL HTML. Webbdelen

Hur hänger det ihop? För att kunna kommunicera krävs ett protokoll tcp/ip, http, ftp För att veta var man skall skicka

Sidornas struktur och snabbinstruktion (se också Information om Hanken-stilarna )

Manual för Typo3 version 4.2

Språk för webben introduk4on 4ll HTML

Internet & WWW Laboration 2 VT10 Högskolan Dalarna Hans Rosendahl. Laboration 2 CSS del 1. 1 av 8

JavaScript. DOM Scripting

Generering av Universella Editorer

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll

Webbprogrammering, DA123A, Studiematerial 4

Webbprogrammering TDDD52

Instruktion för att kunna använda Säkerhetstjänsternas administrationsgränssnitt

Introduktion till. (FGS) FGS Paketstruktur. Vägledning och förklaring till de förvaltningsgemensamma specifikationerna. Introduktion FGS Paketstruktur

Skapandet av en databas, produktkatalog och hemsida

Mer information om RefWorks, andra referenshanteringsprogram och hur man refererar hittar du på Linköpings universitetsbiblioteks webbsidor.

JavaScript in SharePoint and not just for Apps. Wictor Wilén

HTML. Introduktion till HyperText Markup Language

Tove Carlsund Systemutvecklare

Nätet. Uppgiften. Nivå

E-pliktleverans via RSS-feeds

Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1.

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

Releaseinformation för Remote Support Platform 3.0

XML+ANT+CVS+DIARY. XML: Exempel. XML: Syntax (1) Genomgång av några av de verktyg som används på kursen. <?xml version="1.0" encoding="iso "?

Transkript:

Introduktion till XSLT

Vad är XSLT? Extensible Style Language (XSL) är en språkfamilj Består av tre delar: 1. extensible Stylesheet Language for Transformations (XSLT) för att transformera xml-dokument 2. XSL FO är ett XML vokabulär för att specificera formattering (XSL Formatting Objects) 3. XPath språk som används av XSLT för åtkomst eller för att referera till delar av XML dokument. Se http://www.w3.org/style/xsl/ för W3C:s specifikationer av XSL-familjen. Introduktion till XSL 2

Varför transformera? Konvertera ett schema till ett annat jag säger p, du säger para Arrangera om data för t ex formatering T ex välja var noterna skall placeras Välja eller projicera delar av dokument visa de stycken som handlar om Kant Bearbeta data i en ny miljö t ex i en xml-databasmiljö, eller i en relationsdatabas Introduktion till XSL 3

En input flera output html pdf xml xml txt databas excel Introduktion till XSL 4

XSL FO Används för att beskriva formatering av XML dokument. W3C rekommendation 2001. Formateringsinstruktioner kan appliceras i resultatträdet W3 schools beskriver processen http://www.w3schools.com/xslfo/xslfo_intro.asp Introduktion till XSL 5

XSLT - Transformeringens delar Ett källdokument, dvs xml-fil Ett resultatträd i form av xml html txt Själva transformeringen görs genom olika metoder: DOM (Document Object Model) se http://www.w3.org/dom/ SAX ( Simple API for XML) se http://sax.sourceforge.net/ Introduktion till XSL 6

Träd & Noder Med XSLT tänker man inte i termer av dokument Ett träd representeras av data i dokumentet som noder Noder är element, attribut, kommentarer mm i en hierarki Introduktion till XSL 7

Typ av noder Rot: starten av dokumentet OBS! inte samma som rotelementet i en xml-fil Attributnoder Kommentarnoder Namnrymder PI:s ( t ex xml deklarationen) (Processing Instructions) textnoder Introduktion till XSL 8

XPath En standard för identifikation och specifikation av plats och områden i XML-dokument genom ID:n och XML:s hierarkiska struktur. Utformad för XSL/XSLT, XPointer, XQL och vilka andra specifikationer som behöver identifiera märkning i XML-dokument Adresserar specifika delar av XML dokumentet för att sedan tillåta transformering av dem Manipulering av textsträngar, Booelska uttryck, nummer Introduktion till XSL 9

XPath grundläggande syntax. aktuell nod // var som helst i dokumentet / Roten.. Föräldranoden @ attribut [1] position /steg/steg/steg = absolut referens steg/steg/steg = relativ referens Se http://www.w3.org/tr/xpath#section-location-steps Se: http://www.w3schools.com/xpath/xpath_syntax.asp Introduktion till XSL 10

Stilmallar Stilmallar byggs upp av templates Templates innehåller XSL element & XPath uttryck suffix =.xsl måldokumentet måste vara välformad XML XSLT har en uppsättning fördefinierade element (funktioner) som utför vissa bestämda transformationer Se: http://www.w3schools.com/xsl/xsl_w3celementref.asp Introduktion till XSL 11

Repetition TEI är endast ett märkningsschema i XML. Det är inte specificerat hur de olika TEI-elementen presenteras i html eller i pdf-formatet. Alla webbläsare har stöd för (X)HTML och en möjlig lösning är att transformera TEI-kodningen till (X)HTML. En sådan presentationen är då ett derivat av originalet (TEI-källan). XSLT och XSL-FO är tekniker för att transformera och presentera XML-dokument.

Åtkomst av XML-strukturen X Rotelement Y XPath i kombination med XSLT gör det möjligt att precisera vad i xmlträdet som skall bearbetas, dvs vilka noder som det skall hända något med. X1 X1 X2 X3 Som regel vill man att ett visst 1) x1, x2, x3 är barn (child) till X 2) X är förälder (parent) till x1, x2, x3 3) x1, x2, x3 är syskon (sibling) 4) x1 är äldre syskon (precedingsibling) till x2 5) Rotelementet är förfader (ancestor) till x1, x2, x3 6) x1, x2, x3 är ättlingar (desendant) till Rotelementet och till X XPath-uttryck tillsammans med ett xslt-element antingen 1) grabba tag i en uppsättning noder, och/eller 2) generera innehåll utifrån källdokumentet.

Dokumentträd bibliography Exempel från bibl.xml som används i xsltövning bibl bibl bibl bibl title author title author title author title author m w m w lastname firstname lastname firstname lastname firstname lastname firstname Kay Micael Hocke y Susan Aarset h Espen Ide Nancy bibl, title, author = elementnoder m & w = attributnoder (<author type= m >), OBS! attributnoder ingår inte i själva dokument hierarkin utan betecknar egenskaper som ett visst element besitter Författarnamnen = textnoder

Traversering XSL förutsätter en xml-processor eller tolk (MSXML, XALAN, Saxon etc) ett program som kan traversera xml-trädet och göra något med de noder det stöter på, exempelvis omvandla ett tei-element till ett html-element. Dessa tolkar finns inbyggda i Oxygen och där kopplar man ihop xmldokumentet med en stilmall i t ex XSLT för att transformera texten (se särskild handledning i Studentportalen för att koppla en stilmall till ditt xml dokument: xslt-övning.zip ) Givetvis måste detta ske i en speciell ordningsföljd: xml-processorn gör en på-djupet-först (depth-first) sökning med t ex DOM (Document Object Model) En XML DOM används för att komma åt och uppdatera innehållet, formatet och strukturen i XML-dokument via ett gränssnitt. Gränssnittet har formen av en objektmodell som består av objekt, egenskaper, metoder och händelser som kan representera och ändra komponenterna i ett XML-dokument. En DOM lagrar data för ett XML-dokument i en hierarkisk trädstruktur som efterliknar strukturen i dokumentet.

Traversering av dokumentträd 1 bibliography 2 bibl bibl bibl bibl title author title author title author title author m w m w 3 4 5 6 lastname firstname lastname firstname lastname firstname lastname firstname Kay 7 Micael Hocke y Susan Aarset h Espen Ide Nancy Vid traversering av dokumentträdet läser ett gränssnitt in innehållet i en DOM (Document Object Model) Med en DOM kan man komma åt alla komponenter i ett XML-dokument, inklusive dokumentets element, attribut, textnoder, bearbetningsinstruktioner, kommentarer och enhetsdeklarationer (t ex ä [ä]). Alla XML-dokument kan läsas in i en DOM. När ett XML-dokument läses in i en DOM läses det från början till slut och lagras i DOM:en som en logisk modell av noder. Läs mer vid: http://www.w3schools.com/dom/default.asp

Operatorer Se: http://www.w3schools.com/xpath/ xpath_operators.asp Introduktion till XSL 17

Nodfunktioner Se: http://www.w3schools.com/xsl/ xsl_functions.asp

Vanliga element Observera att man alltid skriver xsl:[namn på elementet], t ex <xsl:template match="div > Läs mer vid: http://www.w3schools.com/xsl/ xsl_w3celementref.asp där finns alla vanliga element listade,klicka på dem, läs exemplen och testa i din egen browser

Men hur går det till då? Vi har en xml-fil <recipe> <title>pasta för nybörjare</title> <ingredients> <item>pasta</item> <item>riven ost</item> </ingredients> <cook>koka pastan and blanda med osten</ cook> </recipe> Vi vill att det ska se bli så här i html: <html><body> <h1>pasta för nybörjare</h1> <p>ingredienser: Pasta, riven ost</p> < p>koka pastan and blanda med osten </p> </body></html> Exemplen finns på Studentportalen (pasta.xml & pasta.xsl)

Stilmall Då använder vi en stilmall som greppar tag i elementen och sedan skriver ut deras innehåll (texten) <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/ Transform"> <xsl:template match="recipe"> <html><body> <h1><xsl:value-of select="title"/></h1> <p>ingredients: <xsl:apply-templates select = "ingredients/item"/> </p> <p><xsl:value-of select="cook"/></p> </body></html> </xsl:template> </xsl:stylesheet> Testa output och ändra i stilmallen! Exemplen finns på Studentportalen (pasta.xml & pasta.xsl) Där finns även flera andra stilmallar som du kan använda som exempel och för att testning

Tre metoder för att tillämpa XSL 1. on-the-fly xsl-mallen appliceras på xml-dokument i samma stund som en webbläsare läser in xml-dokumentet. (fungerar bäst i Internet Explorer som har inbyggd processor MSXML 3.0 el 4.0) 2. batch xsl-mallen associeras med och appliceras på ett xmldokument via en fristående xsl-processor (t ex Xalan m fl i Oxygen). 3. En server hämtar xml-fil och xsl-fil och genererar utdata till en webbläsare (Cocoon) Ni kommer att använda metod 1 och 2. Hur man associerar ett xslt-skript (stilmall) till ett xml-dokument i Oxygen visas i särskild handledning Hur man associerar en xslt till xml-dokumentet visas på nästa slide. XSL-FO ska ni läser och övar själva vid: http://www.w3schools.com/xslfo/default.asp

Associera stillmallen on-the-fly I en html-fil associerar man en stillmall ( till exempel en cssmall) i <head> så här: <link rel="stylesheet" type="text/css" ref= minmall.css"> I en xml-fil placerar man referensen till xsl-mallen direkt efter xml-deklarationen: <?xml version="1.0" encoding="iso-8859-1"?> <?xml:stylesheet type="text/xsl" href= minmall.xsl"?> OBS! Tänk på att om du inte har mallen i samma katalog som xml-filen/html-filen måste du även ange sökväg till den katalog (mapp) där stilmallen/mallarna finns. T ex: href=./mallar/minmall.xsl"

Inlämningsuppgift 3 Utgå från din bild det vill säga den bild du xml-märkt Gör en stilmall (XSLT) som visar: brödtext rubriker en lista över gamla ord (efter brödtexten) överkurs: en lista med de gamla orden och deras moderna stavning Instruktioner finns på Studentportalen. Exempel på stilmallar finns också på Studentportalen. Introduktion till XSL 24