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

XML. Extensible Markup Language

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

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

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

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

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

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

Introducerande övningar i HTML

Deklarativ programmering

WEBBUTVECKLING Kursplanering

F02 En första sida. Dagens agenda

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

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

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

Nätet. Uppgiften. Nivå

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

Mer om språk och Ruby

Deklarativ programmering


Introduktion till programmering

Konstruktion av datorspråk

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

Webbaserad kommunikationsklient för Radarspot KRISTOFER LÖFGREN

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

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

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

Mer om språk och Ruby

extensible Markup Language

Beskrivning av xml-produkten FirmagranskningSokord(F34) version 2.00

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

Konstruktion av datorspråk

Digital inlämning av årsredovisning

Metaspråket XML Mika Suonvieri

Digital inlämning av årsredovisningar

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

Paketstruktur. Karin Bredenberg /

Språk för webben introduk4on 4ll HTML

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

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

DP7 Kompletterande information

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

Systembeskrivning.

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

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

Lösningsförslag, tentamen i Databaser

TDP007 Konstruktion av datorspråk Hemtentamen

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

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

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

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

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

Android översikt. TDDD80 Mobila och sociala applikationer

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

Dagens föreläsningar

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

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

HTML. Introduktion till HyperText Markup Language

Beskrivning av xml-produkten Dokumentleverans (D4) version 2.04

Tentamen TEN1 HI

Laboration 1 XML, XPath, XSLT och JSON

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

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

ORDLISTA WEBBDESIGN 100P

Övning (X)HTML 2. Sidan 1 av

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

Digital inlämning av årsredovisning

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

Lektion 8 Del 1 XML, Kapitel 20

En bortsprungen katt

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

Xhtml och CSS.Tillämpad fysik och elektronik Per Kvarnbrink (redigering Ulf Holmgren 2011)

Dagens föreläsningar

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.

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

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

XML-produkter. -Registret över verkliga huvudmän (RVH) Teknisk handledning för webbtjänst mot RVH (Web Services) Datum: Version: 1.

Snabbguide för publicering i Drupal för ki.se

Tentamen, EDAA20/EDA501 Programmering

Övningar i XML och DTD

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

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

Tillämpningsanvisningar

Fass webbtjänster Fass Vet.- texter

Användarhandledning Version 1.2

XML och C#.NET Att hantera XML-dokument

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

Institutionen för datavetenskap

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

Rapportera via fil. - Två sätt att rapportera studerandeuppgifter via fil till CSN. Gäller rapportering av studerandeuppgifter för:

Transkript:

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

2 Vad handlar det andra seminariet 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 än de som finns i uppgiften

3 Översikt över föreläsning 3-4 Uppmärkningsspråk Struktur och specifikation av XML-dokument Parsning av XML-dokument Strömparsning Trädparsning Mikroformat Inför seminariet

Uppmärkningsspråk 4

Kort historisk översikt 5 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

6 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

7 Exempel på XML <?xml version="1.0"?> Well-formed <note> (grundnivå) <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>

8 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 (nästa nivå) Detta är en DTD (Document Type Defintion), men det finns även andra sätt att specificera strukturen för XML-data. Mest populärt nuförtiden är bl.a. XML Schema.

9 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>

10 Ytterligare exempel på DTD <!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"> ]>

11 Ö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="utf-8"?> <?xml version="1.0" encoding="iso-8859-1"?>

12 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 (strömparsning) och ett nästa föreläsning (trädparsning).

13 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>

14 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 15 require'rexml/streamlistener' class MyListener include REXML::StreamListener >> require rexml/document def tag_start(name, attrs) => true puts "Start of#{name}." >> lst = MyListener.new end => #<MyListener:0x2f8d188> def tag_end(name) >> src = File.new "c:/lab/ruby/code/note2.xml" puts "End of#{name}." => #<File:c:/lab/ruby/code/note2.xml> end >> REXML::Document.parse_stream(src,lst)... def text(text) puts "Tag contains the text '#{text}'." end end

16 Ö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