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

Relevanta dokument
XML. Extensible Markup Language

XSLT. Extensible Stylesheet Language Transformations

Vad är XSLT XSLT extensible Stylesheet Language Transformations

Kompletterande exempel till XSLT

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

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


Introduktion till XSLT

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

Fass webbtjänster Fass Vet.- texter

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

Konstruktion av datorspråk

Strukturering med XML och DTD

CSS- Cascading Stylesheets

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

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

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

extensible Markup Language

Metaspråket XML Mika Suonvieri

En snabb titt på XML LEKTION 6

Vad är XML Schemas. XML Schemas. Varför XML Schmas. Namespace

Hantera informationspaket i system för bevarande

Fass webbtjänster Veterinära Fass-texter

DP7 Kompletterande information

Informationsmodellering och e-infrastrukturer

Introduk+on +ll programmering i JavaScript

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

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

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

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

F02 En första sida. Dagens agenda

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

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

Tillgänglighetskrav på teknik Dessa krav baseras på WCAG 2.0,

Lektion 8 Del 1 XML, Kapitel 20

Tentamen Nätverksprogrammering Lösningsförslag

Namn: (Ifylles av student) Personnummer: Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel

Övning (X)HTML 2. Sidan 1 av

Laboration 1 XML, XPath, XSLT och JSON

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

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

Användarhandledning Version 1.2

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

Märkspråk, HTML, XHTML, CSS & JavaScript: kort intro med pekare till till mer information Föreläsning 4

HTML-Standarder. CT3620 Vetenskapsmetodik för teknikområdet Magnus Heglert

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

Cascading Style Sheets (CSS) An Introduction. Nayeb Maleki

E-pliktleverans via RSS-feeds

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

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

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

Karusell med länkade omslagsbilder

Generering av XSLT-dokument

Sätt att skriva ut binärträd

JAVASCRIPT. Beteende

Föreläsning 7: Syntaxanalys

Leverans-API för nedladdning av geodata v1.0 - teknisk beskrivning

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

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

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

Fass webbtjänster Bipacksedlar

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

Tillämpningsanvisning för årsredovisningar i ixbrl-format. Version 1.0

24-timmarswebben. Riktlinje Förklaring Så uppfyller vi den

XML och C#.NET Att hantera XML-dokument

KFF Beskrivning av KFF-handläggningsprocessen 1 (10) Gällande Mikael Andersson REGISTERKARTE-GML

Föreläsning 7 Innehåll. Rekursion. Rekursiv problemlösning. Rekursiv problemlösning Mönster för rekursiv algoritm. Rekursion. Rekursivt tänkande:

Beskrivning av xml-produkten FirmagranskningSokord(F34) version 2.00

Generiska konstruktioner. Kursbokens kapitel 13

I den här labben ska vi använda oss av en trevlig nyhet i HTML5: Local Storage, för att implementera en sorts lokal gästbok.

Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel

Fass webbtjänster Veterinära bipacksedlar

Tillämpningsanvisningar

HTML, SGML, CSS, XML, XHTML, MIME, HTTP

Extensible Stylesheet Language Transformations (XSLT) och XML Path Language (XPath)

WEBBUTVECKLING Kursplanering

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

(reviderad , , ) Riksarkivet IT-avdelningen. Anvisningar för ifyllning av Excelark för webbleveranser

Webbplats analys cofra.it

F02 HTML. Föreläsning 2, HT2013 HTML. Kurser: Klientbaserad Webbutveckling 1DV435. Johan Leitet

Bilaga 3. En redogörelse kring metadata och XML. Status Slutlig. Sid 1 (7) Dokumenttyp. Versionsdatum

Exempel. Arrayer. Lösningen. Ett problem. Arrayer och hakparanteser. Arrayer

<header> </header> <footer> </footer>

Validering av XML, Svensk geoprocess Guide för validering av XML, Svensk Geoprocess

Fass webbtjänster Veterinära bipacksedlar

Djup/ytlig kopiering av containrar med referensobjekt. Allmänt. Vad ska container innehålla?

Tryckning från Internet En översikt av standarder

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

UC API Teknisk referens för UC:s svenska personinformation

Generering av Universella Editorer

public och private Obs: private inte skyddar mot access från andra objekt i samma klass.

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 "?

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

E12 "Evil is going on"

Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad

Nätet. Uppgiften. Nivå

Systembeskrivning.

XML - Vad är det? Hur vet jag vad som är vad - End Note? Publikationsreferens. XML för bibliotekarier. Anders Ardö.

Ett problem. Kontrollstrukturer och arrayer. Arrayer. Lösningen. Arrayer och hakparanteser. Exempel int[] results; results = new int[10]; // 0..

Laboration A Objektsamlingar

Transkript:

Intro

Stackenföreläsning: XML & XSLT: Intro <sid nr="1" av="2" /> XML och XSLT Rasmus Kaj, Stacken <kaj@kth.se> http://www.stacken.kth.se/~kaj/ Intro Korrekt XML? Alternativ till XSL? XSLT Funktioner Exempel / Problem

Stackenföreläsning: XML & XSLT: Intro <sid nr="2" av="2" /> XML XML är en syntax för markup, inte ett specifikt markupspråk. 1969: http://www.sgmlsource.com/history/ 1981: SGML, SIGPLAN 1990: HTML, CERN / Tim Berners Lee 1996: XML draft 1998: XML 1.0 I dag används XML "överallt".

Korrekt XML?

Stackenföreläsning: XML & XSLT: Korrekt XML? <sid nr="1" av="7" /> Välformad XML? Syntaxmässigt korrekt XML, utan hänsyn till vilka taggar som förekommer. <?xml version="1.0" encoding="utf8"?> <rootnode...> <!-- kommentar... --> <foo/> <bar type="important" color="red">... </bar>... text... </rootnode>

Stackenföreläsning: XML & XSLT: Korrekt XML? <sid nr="2" av="7" /> Validerad XML "Korrekta" taggar enligt någon instans: xhtml DocBook... Instansen specificeras i något formellt språk: DTD W3C Schema RelaxNG

Stackenföreläsning: XML & XSLT: Korrekt XML? <sid nr="3" av="7" /> Namnrymder Flera namnrymder kan anges med prefix: <foo xmlns="http://example.org/foo" xmlns:html="http://example.com/bar"> <html:p class="example" xml:lang="sv">... <bar/>... </html:p> </foo>

Stackenföreläsning: XML & XSLT: Korrekt XML? <sid nr="4" av="7" /> Entitys Inbyggda < & > ቧ ቧ Unicodenummer (oavsett dokumentets teckenuppsättning). Övriga ä &foobar; Godtyckligt, måste definieras i angiven DTD. Används allt mindre.

Stackenföreläsning: XML & XSLT: Korrekt XML? <sid nr="5" av="7" /> Whitespace Godtycklig mängd whitespace är ekvivalent med. Whitespace "först och sist" kan tas bort En omgivning kan vara whitespacebevarande

Stackenföreläsning: XML & XSLT: Korrekt XML? <sid nr="6" av="7" /> DTD Document type definition Måste anges explicit i dokumentet, antingen pekas ut eller inkluderas helt. <?xml?> <!DOCTYPE foo PUBLIC "-//KTH//Example//EN" "http://example.org/example.dtd"> <foo>... </foo>

Stackenföreläsning: XML & XSLT: Korrekt XML? <sid nr="7" av="7" /> RelaxNX Pekas inte ut från dokumentet. Man anger schema när man validerar. Man kan validera samma dokument med olika scheman (t ex vanlig html och en privat begränsad variant).

Alternativ till XSL?

Stackenföreläsning: XML & XSLT: Alternativ till XSL? <sid nr="1" av="2" /> CSS - Varför XSL när det finns CSS? CSS beskriver bara rendrering (utseende) XSL kan göra godtyckliga omvandlingar. Exempel: innehållsförteckning, index, RSS,... Gör "lagom" markup (t ex xhtml) med XSLT, speca utseende med CSS.

Stackenföreläsning: XML & XSLT: Alternativ till XSL? <sid nr="2" av="2" /> Specifika program - Varför XSL när man kan skriva specifika program? Det är mycket enklare!... men ibland räcker det inte. Om man behöver koppla sin markupöversättning till andra program räcker det inte med XSLT (men man kan göra extensions). Bibliotek: DOM, SAX

XSLT

Stackenföreläsning: XML & XSLT: XSLT <sid nr="1" av="7" /> XSL Består av två delar: XSLT Ett sätt att översätta från ett tagspråk till ett annat. XSL-FO Ett taggspråk specifikt konstruerat för att beskriva hur innehållet ska se ut.

Stackenföreläsning: XML & XSLT: XSLT <sid nr="2" av="7" /> XSLT: Intro En första enkel template <xsl:template match="email"> <a href="mailto:{.}"> <xsl:apply-templates/> </a> </xsl:template>

Stackenföreläsning: XML & XSLT: XSLT <sid nr="3" av="7" /> Stylesheet <xsl:stylesheet version="1.0" xmlns:xsl= "http://www.w3.org/1999/xsl/transform"> <xsl:include href="..."/> <xsl:param name="...">... </xsl:param> <xsl:variable name="...">... </xsl:variable> <xsl:template...>... </xsl:template>... </xsl:stylesheet>

Stackenföreläsning: XML & XSLT: XSLT <sid nr="4" av="7" /> Template <xsl:template match="foo">... </xsl:template> Anropas "automatiskt" när man träffar på en nod som matchar <xsl:template name="bar">... <xsl:template> Anropas explicit med: <xsl:call-template name="bar">

Stackenföreläsning: XML & XSLT: XSLT <sid nr="5" av="7" /> Selectorer match="...", select="..." axel::bar child, attribute, self, ancestor... foo/bar foo//baz foo[@bar = 'baz'] *[not(self::p)] p[last()][@foo='bar'] p[@foo='bar'][last()]

Stackenföreläsning: XML & XSLT: XSLT <sid nr="6" av="7" /> Flödeskontroll <apply-templates select="..."/> <for-each select="...">... </for-each> <if test="...">... </if> <choose> <when test="...">... </when> <otherwise>... </otherwise> </choose>

Stackenföreläsning: XML & XSLT: XSLT <sid nr="7" av="7" /> Bygga resultat "Direkt" resultat eller: <element name="...">...</element> <attribute name="...">... </attribute> <text>... </text> <processing-instruction name="...">... <comment>... </comment> <copy>... </copy>

Funktioner

Stackenföreläsning: XML & XSLT: Funktioner <sid nr="1" av="4" /> Strängfunktioner string(...) concat(x, y, z...) substring(string, number, number?) contains(a, b)

Stackenföreläsning: XML & XSLT: Funktioner <sid nr="2" av="4" /> Numeriska funktioner last() position() count() id()

Stackenföreläsning: XML & XSLT: Funktioner <sid nr="3" av="4" /> Boolska funktioner not(...) true(), false() lang(...)

Stackenföreläsning: XML & XSLT: Funktioner <sid nr="4" av="4" /> document(uri) Retunerar det nodset som representeras av det dokument som pekas ut av parmetern Om uri är relativ så utgår den från den aktuella xslfilen.

Exempel / Problem

Stackenföreläsning: XML & XSLT: Exempel / Problem <sid nr="1" av="3" /> Exempel: copy-all <xsl:template match="@* node()"> <xsl:copy> <xsl:apply-templates select="@* node()"/> </xsl:copy> </xsl:template>

Stackenföreläsning: XML & XSLT: Exempel / Problem <sid nr="2" av="3" /> Vilken kontext? <xsl:template match="abbr"> <acronym title="{$db/str[@abbr=.]}"> <xsl:apply-templates/> </acronym> </xsl:template> Både @abbr och. blir i str-context. Men vi vill ju ha. i abbr-context.

Stackenföreläsning: XML & XSLT: Exempel / Problem <sid nr="3" av="3" /> Vilken kontext? Lösning: <xsl:template match="abbr"> <xsl:variable name="abbr" select="."/> <acronym title="{$db[@abbr=$abbr]}"> <xsl:apply-templates/> </acronym> </xsl:template>

Stackenföreläsning: XML & XSLT <sid nr="7" /> Referens Lite mer att läsa: http://www.w3.org/ http://www.w3.org/tr/xslt http://www.w3.org/tr/xpath http://www.sgmlsource.com/history/ http://exslt.org/ http://www.stacken.kth.se/~kaj/