extensible markup language
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 PresentationTRANSCRIPT
eXtensible Markup Language
Digitalisering av [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
• 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
XML-teknik• XML• Xlink & XPointer• XSL:
–XSLT–XPath–XSL-FO
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
XML• Ingen "äger" XML –
plattformsoberoende• Stöd (dvs XML-parser) i yngre
webbläsare, fr.a. MS IE• W3C: HTML, XHTML, XML, CSS,
validering
"barn" till SGML
• TEI (1988) (språkvet., litteraturvet.)
• EAD (arkiv o museer)• DocBook (akademiska texter)• HTML• XML
SGML - HTML, XML - XHTML
specificitet
generalitet
SGML (1986)
HTML (ca 1992)
XML (1998)
XHTML (2000)
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
Grundläggande komponenter i ett XML-dokument
• Prologen• Element• Attribut och attributvärden• Entiteter• (CDATA i kommentarer)
Processinstruktioner,dokumenttypsdeklarationer
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/css" href="stil.css"?>
<!DOCTYPE anthology SYSTEM "anthology.dtd">
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>…
Element
• Par: <title> </title>• Undantag tomma element: <pb/>• Versaler / gemener
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>…
ett eller flera attribut
•<element attribut="värde">
•<title type="journal">
•<name who="David" reg="GunnarssonD">
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é par les haleurs:</line> <line> Des Peaux-rouges criards les avaient pris pour cibles, </line> <line> Les ayant cloués nus aux poteaux de couleurs. </line> </stanza>…
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 (<)
Entitetsexempel• é = é = é• ü = ü = ü• &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 "é"><!-- small e, acute accent
-->• <!ENTITY kontakt "Pelle Johansson, tel. 0709-
308673264">• <!ENTITY introduktion SYSTEM "intro.xml">• <!ENTITY allc SYSTEM "graphics/allc.gif" NDATA gif>
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>
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>
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>
Ett XML-dokument kan vara välformat
eller giltigt
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
Välformad XML
• <?xml version="1.0" ?>
<name>
<firstname> Philip </firstname >
<lastname> Larkin </lastname >
</name>
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
1.<name> Philip Larkin </name>
2.<name> Philip Larkin <Name>
3.<name> Philip Larkin <name />
4.<name> Philip Larkin </Name>
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>
1.<name type=personname> Philip Larkin </name>
2.<name type="personname" type="straightorder"> Philip Larkin </name>
3.<name type="personname"> Philip Larkin </name>
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
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
*
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
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)>
Innehållsmodellen
• #PCDATA • EMPTY • andra element• blandat innehåll
Notation i DTD:n<!ELEMENT lista (produkt+)><!ELEMENT produkt (kvantitet?,namn)>
<!ELEMENT namn (#PCDATA)><!ELEMENT kvantitet (#PCDATA)>
Se övningsmaterialet, bl.a. en bilaga
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
Verktyg
• Kommersiella redigeringsverktyg• "Fria" verktyg
– Anteckningar (ingen validator)– JEdit (validator)– Emacs m fl
• MS IE Explorer (parsern "validerar")