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

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

Konstruktion av datorspråk

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

Strukturering med XML och DTD

En snabb titt på XML LEKTION 6

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

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

XML. Extensible Markup Language

Parsning. TDP007 Konstruktion av datorspråk Föreläsning 6. Peter Dalenius Institutionen för datavetenskap

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

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

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

Introducerande övningar i HTML

Deklarativ programmering

WEBBUTVECKLING Kursplanering

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


F02 En första sida. Dagens agenda

Domänspecifika språk. TDP007 Konstruktion av datorspråk Föreläsning 5. Peter Dalenius Institutionen för datavetenskap

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

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

Hantera informationspaket i system för bevarande

Mer om språk och Ruby

Introduktion till programmering

Konstruktion av datorspråk

Deklarativ programmering

Webbaserad kommunikationsklient för Radarspot KRISTOFER LÖFGREN

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

Nätet. Uppgiften. Nivå

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

Mer om språk och Ruby

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

Konstruktion av datorspråk

Digital inlämning av årsredovisningar

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

Ö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

Laboration 1 XML, XPath, XSLT och JSON

Metaspråket XML Mika Suonvieri

Språk för webben introduk4on 4ll HTML

extensible Markup Language

2I1073 Föreläsning 1. HTML och XHTML XHTML

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

Beskrivning av xml-produkten FirmagranskningSokord(F34) version 2.00

Systembeskrivning.

Du kan själv följa med i denna steg-för-steg guide i din texteditor.

Lösningsförslag, tentamen i Databaser

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

Paketstruktur. Karin Bredenberg /

Kapitel 10. Dokumentrepresentation Uppmärkt text HTML kommer från SGML

TDP007 Konstruktion av datorspråk Hemtentamen

Arbetsmaterial HTML pass 1 - Grunder

Policy för öppen källkod RIV Tekniska Anvisningar

Om include-filer i PHP

Webbserver och HTML-sidor i E1000 KI

DP7 Kompletterande information

Olika slags datornätverk. Föreläsning 5 Internet ARPANET, Internet började med ARPANET

Android översikt. TDDD80 Mobila och sociala applikationer

Dagens föreläsningar

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

XML och C#.NET Att hantera XML-dokument

Objektorienterad Programkonstruktion. Föreläsning 10 7 dec 2015

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

Digital inlämning av årsredovisning

HTML. Introduktion till HyperText Markup Language

Tentamen TEN1 HI

Mittuniversitetet ITM Telefon RSS. Laborationskompendium för syndikering på Internet. Detta exemplar tillhör:

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

ORDLISTA WEBBDESIGN 100P

Labora&on 2 HTML och validering övningar/uppgi:er

Skicka fil till CSN. - Rapportera via fil i Mina tjänster. Skicka fil till CSN komvux och folkhögskolor, v 1.0

Lektion 8 Del 1 XML, Kapitel 20

Översikt. Installation av EasyPHP 1. Ladda ner från Jag använder Release Installera EasyPHP.

En bortsprungen katt

Tentamen. DD2385 Programutvecklingsteknik vt Torsdagen den 27 maj 2010 kl Hjälpmedel: penna, suddgummi, linjal

Dagens föreläsningar

Repetition. Hypertext. Internet HTTP. Server och klient Text försedd med länkar till andra texter. Många sammankopplade nät

Repetition. Hypertext. Internet HTTP. Server och klient Föreläsning 2. Text försedd med länkar till andra texter. Många sammankopplade nät

Tentamen ITK:P2. Inga hjälpmedel tillåtna förutom penna och papper. Skriv tydligt och texta gärna. 14 st frågor, 70 poäng.

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

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack

Tentamen, EDAA20/EDA501 Programmering

Övningar i XML och DTD

WD406F - Interaktiva medier I 7,5hp Moment: Web Usability Inlämningsuppgift 1ab. Wynona Ekesrydh

Föreläsning 13 och 14: Binära träd

Användarhandledning Version 1.2

Kompletterande exempel till XSLT

XML Lars Celander en effektiv introduktion m n skonsam E

Beskrivning av xml-produkten Dokumentleverans (D4) version 2.04

Del 1 och 2 HTML/CSS. Webbutveckling Laboration 1 Nicklas Bostedt

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.

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

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

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

Allmänna anvisningar: Skriv dina svar på svarsblanketten (se nästa sida) Markera och ange alla svar tydligt och entydigt efter instruktionerna.

Att bygga en korpus. Beáta Megyesi. Uppsala universitet Institutionen för lingvistik och filologi

Objektorienterad Programkonstruktion

2I1073 Föreläsning 3. Säkerhet. Kryptering

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

Transkript:

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

Vad handlar det andra seminaret om? Strukturerad text Uppgifter Hämta information ur en textfil med regexp Hämta information ur en XHTML-fil med hjälp av en parser Hur testar man? Testa delfunktioner Skapa fler testfiler

Översikt över föreläsning 3-4 Uppmärkningsspråk Struktur och specifikation av XML-dokument Parsning av XML-dokument (med hjälp av SAX, DOM, XPath) Mikroformat Inför seminariet

Uppmärkningsspråk

Kort historisk översikt meta-språk SGML Standard Generalized Markup Language 1986 XML Extensible Markup Language 1998 tillämpningar HTML Hypertext Markup Language 1991 XHTML Extensible Hypertext Markup Language 2000 HTML4 1997 HTML5 2014

Begrepp inom uppmärkning element attribut tomt element starttagg <h2>this is the stuff</h2> <p>lime is a small <font color="green">green</font> fruit. It is <strong>not</strong> an unripe lemon,<br/> whatever you may think.</p> sluttagg entitet

Exempel på XML <?xml version="1.0"?> Well-formed <note> <to>ola</to> <from>peter</from> <heading>öl på fredag?</heading> <body> <paragraph>det har öppnat ett nytt holländskt ställe på S:t Larsgatan. De lär ha en massa sorters holländsk öl på fat. Vad sägs om att vi testar det på fredag kväll?</paragraph> <paragraph>förresten, stället heter De Klomp.</paragraph> </body> </note>

Exempel på DTD <!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to(#pcdata)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading(#pcdata)> <!ELEMENT body(paragraph+)> <!ELEMENT paragraph(#pcdata)> ]> Valid Detta är en DTD (Document Type Defintion), men det finns även andra sätt att specificera strukturen för XML-data.

Koppla ihop XML och DTD Inkludera DTD i XML-filen: <?xml version="1.0"?> <!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)>... ]> <note>...</note> Hänvisa till DTD i separat fil: <?xml version="1.0"?> <!DOCTYPE note SYSTEM "note.dtd"> <note>...</note>

Exempel på DTD (2) <!DOCTYPE RESULTS [ <!ELEMENT RESULTS (ARTICLE+)> <!ELEMENT ARTICLE (HEADLINE,BYLINE,LEAD,BODY,NOTES)> <!ELEMENT HEADLINE (#PCDATA)> <!ELEMENT BYLINE (#PCDATA)> <!ELEMENT LEAD (#PCDATA)> <!ELEMENT BODY (#PCDATA)> <!ELEMENT NOTES (#PCDATA)> <!ATTLIST ARTICLE AUTHOR CDATA #REQUIRED> <!ATTLIST ARTICLE EDITOR CDATA #IMPLIED> <!ATTLIST ARTICLE DATE CDATA #IMPLIED> <!ATTLIST ARTICLE EDITION CDATA #IMPLIED> <!ENTITY NEWSPAPER "Dagens Nyheter"> <!ENTITY COPYRIGHT "Copyright 2008 Dagens Nyheter"> ]>

Övning Kopiera DTD:n från föregående bild från kurswebben. Den finns i filen newspaper.dtd på föreläsningssidan. Skapa en XML-fil som inkluderar denna DTD och hitta på lite innehåll, d.v.s. fejka några nyheter. Validera hela filen mot http://xmlvalidation.com/ när du är klar. (Observera att taggarna måste skrivas med versaler för att denna tjänst ska acceptera dokumentet.) Så här anger man teckenkodning för en XML-fil, men det ska inte behövas: <?xml version="1.0" encoding="iso-8859-1"?>

Användning av XML-dokument Tolka med reguljära uttryck: jobbigt och dåligt Använda en parser: lätt och bra DTD XML Parser någon form av användbar datastruktur Vi ska titta på två olika sätt att parsa XML-dokument, ett idag och ett nästa föreläsning

1. Strömparsning Läser XML-filen som en ström, från början till slut. Varje gång det händer något (t.ex. att man träffar på en starttagg) anropas en viss funktion. Benämns ibland SAX (Simple API for XML) efter den ursprunliga implementationen i Java. <?xml version="1.0"?> <note> <to>ola</to> <from>peter</from> <heading>öl på fredag?</heading>... </note>

Hur strömparsningen går till Start av note Start av to Slut av to --- < n o t e > < t o > O l a < / t o > --- Text (tom rad) Text Ola

Exempel på strömparsning require'rexml/streamlistener' class MyListener include REXML::StreamListener def tag_start(name, attrs) puts "Start of#{name}." end def tag_end(name) puts "End of#{name}." end >> require rexml/document => true >> lst = MyListener.new => #<MyListener:0x2f8d188> >> src = File.new "c:/lab/ruby/code/note2.xml" => #<File:c:/lab/ruby/code/note2.xml> >> REXML::Document.parse_stream(src,lst)... def text(text) puts "Tag contains the text '#{text}'." end end

Övning Filen inventory.xml på kurswebben innehåller en lista med information om kontorsmateriel. Skriv en funktion find_article som tar en XML-fil som den ovan, samt ett kodnummer. Funktionen ska skapa en strömparser med vars hjälp den ska lokalisera och returnera namnet på den artikel som matchar kodnumret. Exempel: >> find_article( inventory.xml, off104 ) => Cable Ties Koden i exemplet på föregående sida finns också på kurswebben. Börja gärna med att testa den.

www.liu.se