extensible markup language

38
eXtensible Markup Language Digitalisering av kulturarvet [email protected]

Upload: idola-knowles

Post on 03-Jan-2016

21 views

Category:

Documents


0 download

DESCRIPTION

eXtensible Markup Language. Digitalisering av kulturarvet [email protected]. XML. Utökar begränsningarna för vad som är möjligt, jämfört med SGML (och fr.a. HTML) därigenom ökar förutsägbarheten - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: eXtensible Markup Language

eXtensible Markup Language

Digitalisering av [email protected]

Page 2: eXtensible Markup Language

XML• Utökar begränsningarna för vad som är

möjligt, jämfört med SGML (och fr.a. HTML)– därigenom ökar förutsägbarheten

• Beskrivna dokumentmodeller (dvs DTDer) inte längre absolut nödvändiga -> ett dokument är giltigt (valid) eller välformat.

• Har genererat en stor mängd nya tillämpningar

Page 3: eXtensible Markup Language

XML-teknik• XML• Xlink & XPointer• XSL:

–XSLT–XPath–XSL-FO

Page 4: eXtensible Markup Language

XML• Egentligen inget eget märkspråk,

snarare syntaktiska regler för konstruktion av märkspråk (eller märkscheman)

• Med XML kan vi själva skapa olika märkscheman för olika syften

• Mer makt åt oss textproducenter

Page 5: eXtensible Markup Language

XML• Ingen "äger" XML –

plattformsoberoende• Stöd (dvs XML-parser) i yngre

webbläsare, fr.a. MS IE• W3C: HTML, XHTML, XML, CSS,

validering

Page 6: eXtensible Markup Language

"barn" till SGML

• TEI (1988) (språkvet., litteraturvet.)

• EAD (arkiv o museer)• DocBook (akademiska texter)• HTML• XML

Page 7: eXtensible Markup Language

SGML - HTML, XML - XHTML

specificitet

generalitet

SGML (1986)

HTML (ca 1992)

XML (1998)

XHTML (2000)

Page 8: eXtensible Markup Language
Page 9: eXtensible Markup Language

XHTML• HTML omdefinierad som en XML-

tillämpning• Skillnader HTML ↔ XHTML

– utbyggbart– egna märken– krav på giltigt, välformat– exakthet i notationen– versaler/gemener– tomma element måste vara stängda

Page 10: eXtensible Markup Language

Grundläggande komponenter i ett XML-dokument

• Prologen• Element• Attribut och attributvärden• Entiteter• (CDATA i kommentarer)

Page 11: eXtensible Markup Language

Processinstruktioner,dokumenttypsdeklarationer

<?xml version="1.0" encoding="ISO-8859-1"?>

<?xml-stylesheet type="text/css" href="stil.css"?>

<!DOCTYPE anthology SYSTEM "anthology.dtd">

Page 12: eXtensible Markup Language

Prologen<?xml version="1.0" encoding="ISO-8859-1"?><?xml-stylesheet type="text/css" href="stil.css"?><!DOCTYPE anthology SYSTEM "anthology.dtd"><anthology> <poem> <title> This Be The Verse </title> <stanza> <line> They fuck you up, your mum and dad.</line> <line> They may not mean to, but they do. </line> <line> They fill you with the faults they had</line> <line> And add some extra, just for you. </line> </stanza>…

Page 13: eXtensible Markup Language

Element

• Par: <title> </title>• Undantag tomma element: <pb/>• Versaler / gemener

Page 14: eXtensible Markup Language

attribut<?xml version="1.0" encoding="ISO-8859-1"?><?xml-stylesheet type="text/css" href="stil.css"?><!DOCTYPE anthology SYSTEM "anthology.dtd"><anthology><poem id="P1" ><title> This Be The Verse </title><stanza><line> They fuck you up, your mum and dad.</line><line> They may not mean to, but they do. </line><line> They fill you with the faults they had

</line><line> And add some extra, just for you. </line></stanza>…

Page 15: eXtensible Markup Language

ett eller flera attribut

•<element attribut="värde">

•<title type="journal">

•<name who="David" reg="GunnarssonD">

Page 16: eXtensible Markup Language

Entitetsreferenser<?xml version="1.0" encoding="ISO-8859-1"?><?xml-stylesheet type="text/css" href="stil.css"?><!DOCTYPE anthology SYSTEM "anthology.dtd"><anthology> <poem id="P1"> <title>LE BATEAU IVRE </title> <stanza> <line>Comme je descendais des Fleuves impassibles,</line> <line>Je ne me sentis plus guid&eacute; par les haleurs:</line> <line> Des Peaux-rouges criards les avaient pris pour cibles, </line> <line> Les ayant clou&eacute;s nus aux poteaux de couleurs. </line> </stanza>…

Page 17: eXtensible Markup Language

entiteter

• En viss teckensekvens har fördefinierats (i DTD:n) och givits ett namn.

• Vanligen för att representera tecken som annars kan "riskeras"

• Ibland även för att generera kortare eller längre text: genom att bara referera till namnet komprimerar man koden och spar arbete

• Refererar till externa data såsom grafik • Behövs inte minst när märkenas och

elementinnehållens notation kolliderar (<)

Page 18: eXtensible Markup Language

Entitetsexempel• &eacute; = &#233; = é• &uuml; = &#252; = ü• &kontakt; = referens till en textsträng i DTD:n, i det här fallet

ett namn på den aktuella kontaktpersonen• &introduktion• <bild src="&allc;">

• I DTD:n:• <!ENTITY eacute "&#233;"><!-- small e, acute accent

-->• <!ENTITY kontakt "Pelle Johansson, tel. 0709-

308673264">• <!ENTITY introduktion SYSTEM "intro.xml">• <!ENTITY allc SYSTEM "graphics/allc.gif" NDATA gif>

Page 19: eXtensible Markup Language

Kommentarer<anthology> <poem> <title>This Be The Verse</title> <stanza> <line> They fuck you up, your mum and dad.</line> <line> They may not mean to, but they do. </line> <line> They fill you with the faults they had </line> <line> And add some extra, just for you. </line> </stanza><!-- en strof borttagen --> <stanza> <line> Man hands on misery to man. </line> <line> It deepens like a coastal shelf. </line> <line> Get out as early as you can, </line> <line> And don't have any kids yourself. </line> </stanza> </poem></anthology>

Page 20: eXtensible Markup Language

Kommentera bort kod<anthology> <poem> <title>This Be The Verse</title> <!--<stanza> <line> They fuck you up, your mum and dad.</line> <line> They may not mean to, but they do. </line> <line> They fill you with the faults they had </line> <line> And add some extra, just for you. </line> </stanza>--> <stanza> <line> Man hands on misery to man. </line> <line> It deepens like a coastal shelf. </line> <line> Get out as early as you can, </line> <line> And don't have any kids yourself. </line> </stanza> </poem></anthology>

Page 21: eXtensible Markup Language

Rotelement<anthology> <poem> <title>This Be The Verse</title> <stanza> <line> They fuck you up, your mum and dad.</line> <line> They may not mean to, but they do. </line> <line> They fill you with the faults they had </line> <line> And add some extra, just for you. </line> </stanza><!- - en strof borttagen - -> <stanza> <line> Man hands on misery to man. </line> <line> It deepens like a coastal shelf. </line> <line> Get out as early as you can, </line> <line> And don't have any kids yourself. </line> </stanza> </poem></anthology>

Page 22: eXtensible Markup Language

Ett XML-dokument kan vara välformat

eller giltigt

Page 23: eXtensible Markup Language

Välformad XML• Versaler / gemener • Minst ett element • Alltid ett rotelement• Elementen bäddas in i strikt hierarkiska

strukturer (OHCO) – tänk träd och filstrukturer• Elementnamnen i start- och slutmärke

matchar varandra• Attributnamn förekommer blott en gång i

startmärket • Attributvärden inom citattecken • Attributvärden refererar inte till externa

entiteter (annat än till DTD:n)• Entiteter deklareras

Page 24: eXtensible Markup Language
Page 25: eXtensible Markup Language

Välformad XML

• <?xml version="1.0" ?>

<name>

<firstname> Philip </firstname >

<lastname> Larkin </lastname >

</name>

Page 26: eXtensible Markup Language

Giltig XML

•En välformad XML-fil som använder en dokumentypsdeklaration för att referera till en DTD och sedan följer denna DTD

Page 27: eXtensible Markup Language

1.<name> Philip Larkin </name>

2.<name> Philip Larkin <Name>

3.<name> Philip Larkin <name />

4.<name> Philip Larkin </Name>

Page 28: eXtensible Markup Language

1. <name><firstname>Philip<lastname></firstname>Larkin</lastname></name>

2. <name><firstname>Philip</firstname><lastname>Larkin</lastname></name>

3. <name><Firstname>Philip</firstname><lastname>Larkin</Lastname><name>

4. <name><firstname>Philip</firstname<lastname>Larkin</lastname></name>

Page 29: eXtensible Markup Language

1.<name type=personname> Philip Larkin </name>

2.<name type="personname" type="straightorder"> Philip Larkin </name>

3.<name type="personname"> Philip Larkin </name>

Page 30: eXtensible Markup Language

Giltig XML

•En välformad XML-fil som använder en dokumentypsdeklaration för att referera till en DTD och sedan följer denna DTD

Page 31: eXtensible Markup Language

Dokumenttypsdeklaration

• <!DOCTYPE TEI.2 PUBLIC "-//TEI P4//DTD Main Document Type//EN" "http://www.adm.hb.se/~mg/

dig/XMLLab/teilitex.dtd">

• referens till rotelementet TEI.2• publik identifierare + backup• dvs. en referens till en särskild dtd-fil med

deklarationer av TEI-dokumentets element, attribut och entiteter

Page 32: eXtensible Markup Language

*

Page 33: eXtensible Markup Language

Dokumenttypsdeklaration

• <!DOCTYPE TEI.2 PUBLIC "-//TEI P4//DTD Main Document Type//EN" "http://www.adm.hb.se/~mg/

dig/XMLLab/teilitex.dtd">

• referens till rotelementet TEI.2• publik identifierare + backup• referens till en särskild dtd-fil med

deklarationer av TEI-dokumentets element, attribut och entiteter

Page 34: eXtensible Markup Language

En simpel DTD

<?xml version="1.0" ?><name> <firstname>Philip</firstname> <lastname>Larkin</lastname></name>DTD:<!ELEMENT name (firstname, lastname)><!ELEMENT firstname (#PCDATA)><!ELEMENT lastname (#PCDATA)>

Page 35: eXtensible Markup Language

Innehållsmodellen

• #PCDATA • EMPTY • andra element• blandat innehåll

Page 36: eXtensible Markup Language

Notation i DTD:n<!ELEMENT lista (produkt+)><!ELEMENT produkt (kvantitet?,namn)>

<!ELEMENT namn (#PCDATA)><!ELEMENT kvantitet (#PCDATA)>

Se övningsmaterialet, bl.a. en bilaga

Page 37: eXtensible Markup Language

Problem med DTD:er

• annan notation än XML• krångligt, särskilt med externa

entiteter (bilder etc)• emellertid är XML-världen på väg

att lämna DTD:er för XML-scheman• och för er finns också en redan

färdigskriven DTD i TEI Lite

Page 38: eXtensible Markup Language

Verktyg

• Kommersiella redigeringsverktyg• "Fria" verktyg

– Anteckningar (ingen validator)– JEdit (validator)– Emacs m fl

• MS IE Explorer (parsern "validerar")