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

Relevanta dokument
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

En snabb titt på XML LEKTION 6

Strukturering med XML och DTD

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 3. Peter Dalenius Institutionen för datavetenskap

Vad är XSLT XSLT extensible Stylesheet Language Transformations

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

XML. Extensible Markup Language

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

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

XSLT. Extensible Stylesheet Language Transformations

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


Hantera informationspaket i system för bevarande

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

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

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

CSS- Cascading Stylesheets

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

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

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

Introducerande övningar i HTML

Informationsmodellering och e-infrastrukturer

TNMK30. Elektronisk publicering

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

Web (html+xhtml), CSS. Dagens föreläsning. Web - grundprinciper. Syfte Ge er grunderna för att skapa och publicera websidor.

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

F02 En första sida. Dagens agenda

Klassdeklaration. Metoddeklaration. Parameteröverföring

Bilder. Bilder och bildformat

Tillämpningsanvisningar

Internet A. HTML Grunder Maximilien Chiang 1

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

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 8 Del 1 XML, Kapitel 20

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

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

Kompletterande exempel till XSLT

TENTAMEN I INTRODUKTION TILL MEDIEPRODUKTION, 5p

WEBBUTVECKLING Kursplanering

TNMK30. Elektronisk publicering

! Katerina Vrotsou! Medieteknik. 2004! Informationsvisualisering, visuell data analys

extensible Markup Language

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

Användarhandledning Version 1.2

DP7 Kompletterande information

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

JAVASCRIPT. Beteende

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

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

Parameteröverföring. Exempel. Exempel. Metodkropp

Språk för webben introduk4on 4ll HTML

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Inför prov 1 i webbdesign

Labora&on 7 Syfte med laborationen:

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

Metaspråket XML Mika Suonvieri

Webbdesign vt Innehållsförteckning

Fass webbtjänster Fass Vet.- texter

Övning (X)HTML 2. Sidan 1 av

Fass webbtjänster Veterinära Fass-texter

Post- och telestyrelsens författningssamling

21/01/2016. Stilmallar. styra utseendet av webbplatsen DEL 1. Karin Fahlquist. index.html. recept.html frukt.html grönsaker.html

Programmering A. Johan Eliasson

FältGIS. Utfört av Patrik Fundberg. Mälardalens Högskola, IDt. Handledare John Kessler, LandFocus IS AB Christer Norström, Mälardalens Högskola

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

Webbdesign vt Innehållsförteckning

Laboration 3 HTML och struktur samt frågorna A - C övningar/uppgifter

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

ORDLISTA WEBBDESIGN 100P

En grundkurs i hemsidor och hur de är uppbyggda

En bortsprungen katt

F07 Stilmallar Dagens agenda

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

Objektorienterad Programmering (TDDC77)

XML Lars Celander en effektiv introduktion m n skonsam E

Introduk+on +ll programmering i JavaScript

Arbetsmaterial HTML pass 1 - Grunder

Kursplanering Utveckling av webbapplikationer

XML och C#.NET Att hantera XML-dokument

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

Introduktion till programmering

Webbstandarder för fler än en plattform

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

Lektion 3 HTML, CSS och JavaScript

GRUNDER I VHDL. Innehåll. Komponentmodell Kodmodell Entity Architecture Identifierare och objekt Operationer för jämförelse

Kommunikation. Dator med webbläsare Förfrågan: Webserver. Returnerar HTML-kod

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

<script src= "

20/01/2016. html och css

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

Översikt och tillämpning av XML

Lektion 2 Del 1 Kapitel 6

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

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

HTML. Introduktion till HyperText Markup Language

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

Objektorienterad Programmering (TDDC77)

Transkript:

XML Vad är XML extensible Markup Language 2D1525 Programmering för interaktiva medier http://www.nada.kth.se/kurser/kth/2d1525/ Ett meta-märkspråk med vilket man kan bygga märkspråk som xhtml, wml, smil etc. Inget exekverande programspråk, endast för att strukturera data. Rekommendation förvaltad av W3C. XML-familjen = XML + relaterade rekommendationer som xslt, xpath, xlink mm. 2001-09-03 Björn Hedin, NADA/KTH 2001 1 2001-09-03 Björn Hedin, NADA/KTH 2001 2 - XHTML - SMIL <?xml version="1.0"> <?xml-stylesheet type="text/css" href="style.css" type="text/css" /> <!doctype html public "-//w3c//dtd html 4.0 transitional//en"> <html> <title>personlig webbsida för Förnamn Efternamn</title> <body> <p align="center"> <img src="/kth/bilder/nada.gif" alt="nada" width="468" height="68"/> </p> </body> </html> <?xml version="1.0"?> <smil> <layout> <root-layout height="350" width="600" title="universal SMIL Document"/> <region id="w" left="174" top="100" height="47" width="63" z-index="3" /> </layout> <body> <video src="help.mov" begin="0.00s" end="11.00s" /> </body> </smil> 2001-09-03 Björn Hedin, NADA/KTH 2001 3 2001-09-03 Björn Hedin, NADA/KTH 2001 4

- Dataformat Element <?xml version="1.0"?> <imf> <version>3.0</version> <source supplier="printingcompany-1" application="application-1"/> <time>1997-10-06t00:11:00.00+2</time> <body> <object action="modify"> <PrintingJob/> <object_uid> <source supplier="printingcompany-1" application="application-1"/> <local_id>17</local_id> </object_uid> <attributes> <ActualCopies>14322</ActualCopies> </attributes> </object> </body> </imf> Ett element är den grundläggande informationsenheten i en xml-applikation. Ett element har en starttag, ett innehåll och en slut-tag. <title> Start-tag Innehåll </title> Slut-tag 2001-09-03 Björn Hedin, NADA/KTH 2001 5 2001-09-03 Björn Hedin, NADA/KTH 2001 6 Simple-, Complexeller Empty content Attribut Simple content - En tag innehåller endast text. Complext content - En tag innehåller en eller flera andra tags och eventuellt text. Empty content - En tag innehåller inget. <title> </title> <br></br> <br /> har Complex Content <title> har Simple Content <br> har Empty Content Kortversion av <br></br> Attribut innehåller extra information om ett element T.ex. width på bilder, href på länkar Skrivs på formen <elementnamn attributnamn1= värde1 attributnamn2= värde2 > <a href= b.html >Link</a> <img width= 14 src= b.jpg /> Observera att det går att innesluta attributvärdet antingen värde eller värde, men inte värde eller värde. 2001-09-03 Björn Hedin, NADA/KTH 2001 7 2001-09-03 Björn Hedin, NADA/KTH 2001 8

Attribut eller element? Trädstruktur Då man själv gör ett märkspråk ställs man ofta inför valet att koda något som ett attribut eller ett element. Valet är huvudsakligen en smakfråga. <video duration= 2s href= b.jpg /> Eller <video> <duration>2s</duration> <source>b.jpg</source> </video> XML-strukturer bildar alltid en trädstruktur Alla XML-strukturer har ett root-document HTML <html> <title> html </title> head body <body> </body> title </html> Tecken-data root 2001-09-03 Björn Hedin, NADA/KTH 2001 9 2001-09-03 Björn Hedin, NADA/KTH 2001 10 Föräldrar, barn, syskon Reserverade tecken Element som innehåller andra element kallas dessa elements förälder. Omvänd relation kallas barn. Element på samma nivå kallas syskon. HTML <html> <title> </title> <body> </body> </html> head title html body Vissa tecken är reserverade då de har speciell betydelse i XML. De kodas som entitetsreferenser. Även svenska tecken kodas oftast som entitetsreferenser < < (less than) > > (greater than> & & (ampersand) " (quotation) &apos; (apostrophe) Å Ä Ö å ä ö Å Ä Ö å ä ö 2001-09-03 Björn Hedin, NADA/KTH 2001 11 2001-09-03 Björn Hedin, NADA/KTH 2001 12

CDATA och PCDATA PCDATA = Parsed Character Data. Parsern ersätter entitetsreferenser med deras värde. CDATA = Character Data. Entitetsreferenser tolkas ej. Om man har många konstiga tecken som man av lathet eller något annat skäl vill skriva in utan entitetsreferenser kan man innesluta tecknen i en CDATA-sektion. Den inleds med strängen <![[ och avslutas med strängen ]]> <reserved_characters> <![CDATA[ <, > &, och är alla reserverade tecken ]]> </reserved characters> 2001-09-03 Björn Hedin, NADA/KTH 2001 13 Namngivning Namn på tags och attribut måste inledas med en bokstav eller _ Därefter bokstäver och/eller siffror. Svenska tecken OK men bör undvikas i praktiken xml reserverat som inledning Godkända exempel <html> <_my_id_19> <dåligt_namn> <tag_with_xml> Felaktiga exempel <mitt element> <7nde_elementet> <Bjorn s_tag> <xml_tag> 2001-09-03 Björn Hedin, NADA/KTH 2001 14 Well-formed Kommentarer Ett xml-dokument är well formed om det uppfyller ett antal kriterier. Alla xmldokument måste vara well-formed. Varje start-tag måste ha en motsvarande slut-tag (<html></html>) Elementen måste bilda en trädstruktur (t.ex. <i><p></p></i> men EJ <i><p></i></p>) Attributvärden måste omslutas av citattecken eller apostrofer. Observera att många html-editorer inte uppfyller något av ovanstående krav. Fullständig lista i kapitel 18 av XML in a nutshell, något mer lättbegripligt på sid 23 i samma bok. Kommentarer omsluts med <!-- kommentar --> Får EJ finnas i en tag. Får EJ innehålla strängen -- Godkänt exempel <html> <!-- min kommentar --> </html> Felaktiga exempel <html <!-- en html-tag -->> <!-- -- är ej tillåtet --> 2001-09-03 Björn Hedin, NADA/KTH 2001 15 2001-09-03 Björn Hedin, NADA/KTH 2001 16

Processinstruktioner XML-deklarationer Processinstruktioner kan användas för att skicka vidare information till applikationer. Många applikationer har tidigare använt kommentarer i samma syfte, vilket är dåligt. <?xml-stylesheet type= text/xml href= my-stylesheet.xsl?> Denna processinstruktion kan sedan plockas upp exempelvis av en webserver som kan använda informationen till att styra sitt beteende. Processinstruktioner inleds med <? Och avslutas med?> XML-dokument bör inledas med en XMLdeklaration. Den innehåller: XML-version Teckenkodning Om en extern dtd används <?xml version= 1.0 encoding= ISO-8859_1 standalone= yes?> Teckenkodning (t.ex. ascii, iso-8859_1 eller unicode kan väljas med encoding ) standalone= no används om en extern DTD finns. Förklaring av DTD kommer senare. 2001-09-03 Björn Hedin, NADA/KTH 2001 17 2001-09-03 Björn Hedin, NADA/KTH 2001 18 Dokumenttypdeklaration Tag-set XML-dokument kan även innehålla en Document Type Declaration som anger en eventuell DTD. <!DOCTYPE imf SYSTEM http://www.aa.com/imf.dtd > imf är i ovanstående fall root-elementet SYSTEM används om det inte är en officiell DTD, annars används PUBLIC URLen är urlen till DTDn Kan även innehålla en så kallad public ID, t.ex. -//W3C//DTD XHTML 1.0 Transitional//EN" Tags och deras attribut för ett visst område kallas tag-set, xml application eller xml vocabulary. <br> ingår i den tag-set som finns för xhtml men inte för SVG <apply-templates> ingår i den tag-set som finns för xsl men inte för xhtml <p> ingår i både xhtml s tagset och wml s tag-set. 2001-09-03 Björn Hedin, NADA/KTH 2001 19 2001-09-03 Björn Hedin, NADA/KTH 2001 20

DTD Valid I en Document Type Definition (DTD) definierar man en tagset och de inbördes relationer som ska gälla. Samma sak kan idag göras med t.ex. XML Schemas. <html>, och <body> är alla definierade i DTDn för XHTML. I den DTDn anges att ett element ska innehålla exakt et element följt av exakt ett <body>element. Detta uttrycks genom följande rad i DTDn <!ELEMENT html (head, body)> Om ett XML-dokument är well-formed och uppfyller alla de begränsningar som ges av dess DTD är det valid. Processen att kontrollera detta kallas validering xhtml-dokument kan valideras på http://validator.w3.org/ En generell valideringstjänst som klarar andra vokabulärer än xhtml finns på http://www.stg.brown.edu/service/xmlvalid XML Schemas kan valideras på http://www.w3.org/2001/03/webdata/xsv 2001-09-03 Björn Hedin, NADA/KTH 2001 21 2001-09-03 Björn Hedin, NADA/KTH 2001 22 DTD - Element DTD - Repeterande element Element definieras enligt syntaxen <!ELEMENT elementnamn (barnelement) > Sekvenser separeras med kommatecken <!ELEMENT e1 (e3,e4) > Teckendata skrivs #PCDATA <!ELEMENT e4 (#PCDATA) > <!ELEMENT html (head,body)> <!ELEMENT title (#PCDATA)> Default är att ett element förekommer exakt en gång. Vill man ange något annat finns *, + och? OBS!! Fel på sidan 35 i boken, korrekt till höger. * betyder 0, 1 eller flera gånger + betyder 1 eller flera gånger? betyder 0 eller 1 gång Definition <!ELEMENT a (b?)> <!ELEMENT b (c+))> <!ELEMENT c (d*))> <!ELEMENT d (#PCDATA)> Instansdokument <a> <b> <c> <d>hej</d> </c> <c> </c> </b> </a> 2001-09-03 Björn Hedin, NADA/KTH 2001 23 2001-09-03 Björn Hedin, NADA/KTH 2001 24

DTD - Grupperingar DTD - Val Parenteser kan användas för att gruppera element. Sedan kan *, + och? appliceras på hela parentesen som en grupp. <!ELEMENT a (b,(c+,d?)*)+> För att ange valmöjlighet mellan en mängd element kan operatorn användas. <!ELEMENT boolean (true false)> 2001-09-03 Björn Hedin, NADA/KTH 2001 25 2001-09-03 Björn Hedin, NADA/KTH 2001 26 DTD - Tomma element DTD - Blandat innehåll Tomma element, alltså element utan innehåll deklareras med EMPTY <!ELEMENT br EMPTY> I vissa fall är det önsvärt att kunna blanda teckendata med element. Typexemplet är web. #PCDATA måste vara först i en val-lista. Deklaration <!ELEMENT mixedelement (#PCDATA p br em strong)*> Instansdokument <mixedelement> <em>hej</em> hopp <p>tjoho</p> </mixedelement> 2001-09-03 Björn Hedin, NADA/KTH 2001 27 2001-09-03 Björn Hedin, NADA/KTH 2001 28

DTD - Godtyckligt innehåll DTD - Övningar Ibland (mycket sällan) är det önskvärt att deklarera ett element som kan ha godtyckligt innehåll. Det görs med ANY. <!ELEMENT everything ANY> Elementet everything kan nu innehålla godtycklig well-formed xml och text blandat. Skriv ett instansdokument som kan valideras mot följande DTD (a är root-elementet): <!ELEMENT a (b,c?)> <!ELEMENT b (d+, e*)> <!ELEMENT c (#PCDATA)> <!ELEMENT d EMPTY> <!ELEMENT e (#PCDATA)> 2001-09-03 Björn Hedin, NADA/KTH 2001 29 2001-09-03 Björn Hedin, NADA/KTH 2001 30 DTD - Övningar DTD - Övningar Skriv ett instansdokument som kan valideras mot följande DTD (a är root-elementet): <!ELEMENT a (b c)+,(c,b)+)> <!ELEMENT b (#PCDATA)> <!ELEMENT c (#PCDATA)> Skriv en DTD som kan validera följande instansdokument. <a> <b/> <b/> <c/> <d> <b/> </d> </a> 2001-09-03 Björn Hedin, NADA/KTH 2001 31 2001-09-03 Björn Hedin, NADA/KTH 2001 32

DTD - Attribut Attribut - Datatyper Ett eller flera attribut kan associeras med ett element. Ett attributnamn kan förekomma i flera element, men ett element kan inte ha två attribut med samma namn <!ATTLIST img src CDATA #REQUIRED width CDATA #REQUIRED height CDATA #IMPLIED> img är elementet attributen ska associeras med. src, width, height är attributnamn CDATA är attributens datatyp #REQUIRED betyder att attributet måste finnas med, #IMPLIED att det kan finnas med Mycket begränsade datatyper finns. De viktigaste är: CDATA NMTOKEN NMTOKENS ENUMERATIONS ID IDREF IDREFS CDATA - Minst begränsade datatypen. NMTOKEN - Alfanumeriska tecken, _, -,. och :. Inte mellanslag. NMTOKENS - En eller flera NMTOKEN separerade av mellanslag (whitespace) Enumerations - Endast ett av en enumerering värden kan antagas. Definieras exempelvis <!ATTLIST book published (true false) #REQUIRED> ID - Unika värden inom XML-dokumentet. Som NMTOKEN men kan inte inledas med en siffra IDREF - Används för interna länkar till attribut av ID-typ. Måste alltså antaga ett värde som ett ID-attribut har. IDREFS - En eller flera IDREF 2001-09-03 Björn Hedin, NADA/KTH 2001 33 2001-09-03 Björn Hedin, NADA/KTH 2001 34 Entitetsdeklartioner Parameterentiteter Entitetsdeklarationer kan användas för att skapa alias för långa eller svåra strängar. Deklareras i en DTD, används i instansdokumenten. I en DTD <!ENTITY mtgp Medieteknik och Grafisk Produktion > I ett instansdokument som använder den DTDn <p>kursen ges av &mtgp ;</p> Slutresultat <p>kursen ges av Medieteknik och Grafisk Produktion </p> I #PCDATA-sektioner går parsern igenom texten och ersätter entiteter med dess värden. Entitetsdeklarationer skrivs i en DTD och används i instansdokument. Parameterdeklarationer både skrivs och används i DTDer. <!ELEMENT person (fname, lname)> <!ELEMENT employee (fname, lname)> <!ELEMENT student (fname, lname)> Istället kan man deklarera en parameterentitet <!ENTITY % name fname, lname > <!ELEMENT person (%name;)> <!ELEMENT employee (%name;)> <!ELEMENT student (%name;)> 2001-09-03 Björn Hedin, NADA/KTH 2001 35 2001-09-03 Björn Hedin, NADA/KTH 2001 36

Interna/Externa DTDer Interna/Externa DTDer Vanligtvis ligger DTDdeklarationerna i en extern fil. extern DTD Filen student.dtd <!ELEMENT student (fname, lname)> <!ELEMENT fname (#PCDATA)> <!ELEMENT lname (#PCDATA)> Filen student.xml (instansdokumentet) <?XML version= 1.0?> <!DOCTYPE student SYSTEM student.dtd > <person> <fname>bjorn</fname> <lname>hedin</lname> </person> Det går dock även att inkludera deklarationerna i själva instansdokumentet. intern DTD <?XML version= 1.0?> <!DOCTYPE student [ <!ELEMENT student (fname, lname)> <!ELEMENT fname (#PCDATA)> <!ELEMENT lname (#PCDATA)> ]> <person> <fname>bjorn</fname> <lname>hedin</lname> </person> 2001-09-03 Björn Hedin, NADA/KTH 2001 37 2001-09-03 Björn Hedin, NADA/KTH 2001 38 Problem med DTDer Begränsade datatyper (inga int, long, date ) Begränsade repetitionsalternativ (endast?, * och +) Endast en betydelse för ett element per DTD DTDer är själva inte XML-dokument. Inga möjligheter till arvsmekanismer. Försök till lösning med XML Schemas, men mer om det nästa gång. 2001-09-03 Björn Hedin, NADA/KTH 2001 39