Metaspråket XML Mika Suonvieri



Relevanta dokument
Hantera informationspaket i system för bevarande

XML. Extensible Markup Language


En snabb titt på XML LEKTION 6

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

Konstruktion av datorspråk

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

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

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

WEBBUTVECKLING Kursplanering

Strukturering med XML och DTD

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

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

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

extensible Markup Language

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

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

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

Språk för webben introduk4on 4ll HTML

Kort om World Wide Web (webben)

Webbutveckling Laboration 1: HTML5 och CSS3.

Informationsmodellering och e-infrastrukturer

ATT GÖRA WEBBSIDOR. Frivillig labb

Inlämningsuppgift 2. DA156A - Introduktion till webbutveckling Teknik och samhälle, Malmö högskola Oktober 2012

Introducerande övningar i HTML

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

Laboration 2: Xhtml och CSS.

Introduktion till XSLT

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

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

XML Lars Celander en effektiv introduktion m n skonsam E

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

En grundkurs i hemsidor och hur de är uppbyggda

24-timmarswebben. Riktlinje Förklaring Så uppfyller vi den

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

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll

SICS Swedish Institute of Computer Science

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

Word-guide Introduktion

Tabeller. Lektion 7. en tabellrubrikcell som centrerad och i fetstil.

Övning (X)HTML 2. Sidan 1 av

Kompletterande exempel till XSLT

Projektuppgift: Kalender Martin Hultman marhu002 Patrik Karlsson patka843

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

Arbetsmaterial HTML pass 1 - Grunder

Generering av Universella Editorer

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

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

TNMK30 - Elektronisk publicering

Utseende. Lauri Watts Översättare: Stefan Asserhäll

Introduktion HTML och PHP 732G16 Databaser design och programmering

ÖrebroCupen. Institutionen för Ekonomi, Statistik och Informatik, ESI Informatik, Klientprogrammering för webbsystem, 5 poäng

Ikon Menyalternativ Funktion och beskrivning Sök och ersätt text i arbetsfältet. Ramformatering

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

Kursplanering Utveckling av webbapplikationer

Varför XML? En studie av XML ur ett produktivt perspektiv

XML Internets framtida format?

Tillämpad fysik och elektronik Per Kvarnbrink m.fl. Laboration 2: HTML och CSS.

DP7 Kompletterande information

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.

XML och C#.NET Att hantera XML-dokument

Användning av pdf Vägledningen 24-timmarswebben

Innehålls förteckning

XtraMatLagning. August Ek och Oscar Johnson. TNM065 Dokumentstrukturer

L04.1 Marodören. Inledning. Mål. Genomförande. Uppgift 1 Hello World. Moment I

<script src= "

Laboration 0. Enhetsbokstaven anges med ett kolon efter och man läser ofta ut detta, exempelvis C:(sekolon).

Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor

Content Management System. Publiceringssystem

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

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

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

Webbplats analys google.com

Webbteknik för ingenjörer

emopluppen Användning av "Ant" Niklas Backlund Version: 1.4 ( 2002/04/26 07:27:52 UTC)

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

Laboration 1 XML, XPath, XSLT och JSON

Inlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1

Webbplats analys emreemir.com

Introduktion till programmering

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

Lathund Excel Nytt utseende. Skapa Nytt. Flikar

729G28 Webprogrammering och databaser. Föreläsning 1: Diverse praktiskt om kursen Webprogrammering Databaser, terminologi

Calligra. En allmän inledning. Raphael Langerhorst Jost Schenck Översättare: Stefan Asserhäll

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

Webbprogrammering, grundkurs 725G54

Webbplats analys askgeek.io

Formulär Sida 2 av 12

Web Services. Cognitude 1

CSS-övningar. 1. Grunder

Validering av XML, Svensk geoprocess Guide för validering av XML, Svensk Geoprocess

STRÄNGAR DATATYPEN. Om du vill baka in variabler eller escape-tecken måste du använda dubbla citattecken. strängar

ORDLISTA WEBBDESIGN 100P

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer.

KFF Beskrivning av KFF-handläggningsprocessen 1 (10) Gällande Mikael Andersson REGISTERKARTE-GML

Webbprogrammering TDDD52

WebViewer Manual för administratör Nova Software AB

Vad är XSLT XSLT extensible Stylesheet Language Transformations

Bilder. Bilder och bildformat

Laborationer i kursmomentet Datoranvändning E1. Laboration nr 5: Mer om FrameMaker

Transkript:

Metaspråket XML Mika Suonvieri Department of Computer Science Åbo Akademi University, FIN-20520 Åbo, Finland e-post: msuonvie@nospam.abo.fi URL: http://www.abo.fi/~msuonvie/utbildning/seminarium.pdf

Abstrakt Denna uppsats behandlar extensive Markup Langauge (XML) som är ett metaspråk. Syftet med XML är att information ska vara långlivad, återanvändningsbar och oberoende av hårdoch mjukvara. Hypertext Markup Language (HTML) räcker inte för att täcka detta och Standard Generalized Markup Language:s (SGML) egenskaper är för komplicerade, det var därför man utvecklade metaspråket XML. Uppsatsen koncentrerar sig på XML-språkets grunder, dess för- och nackdelar. Klassificering enligt ACM-klass: E.2, I.7.2 Klassificering enligt ACM SIG: SIGKDD

Innehållsförteckning Abstrakt Innehållsförteckning 1. Inledning 2. Bakgrund 3. XML:s byggstenar 3.1 Element 3.2 Attribut 3.3 Entitet 4. XML-gränssnitt 4.1 DOM 4.2 SAX 4.3 JDOM 4.4 JAXP 5. DTD- och XML-schema 6. XML-namnrymder 7. Stilmallar 7.1 CSS 7.2 XSL 8. Länkspråken XLink och XPointer 9. XML-språkets framtid Källor

1. Inledning XML har en vision som är svår att motstå. Det är drömmen om ett universellt och standardiserat filformat som är helt oberoende av hård- och mjukvara. XML formatet ägs inte av ett kommersiellt bolag, det är plattformsoberoende och har brett stöd. Alltsedan XML introducerades för sex år sedan, har det blivit ett allmänt förekommande där information hanteras. Att välja XML är som att välja SQL för databaser, man bygger upp en databas och olika program, som använder olika procedurer för att accessera databasen. XML har inte bara förändrat sättet som man publicerar webbdokument på, utan också det sättet som informationen hanteras internt i ett företag. 2. Bakgrund År 1986 föddes märkspråket SGML [TuKa01]. Det är ett metaspråk som på ett formellt sätt beskriver vilka markeringar är tillåtna, vad de betyder och hur de ska åtskiljas från vanlig text [1]. Av SGML utvecklades år 1992 märkspråket HTML som inte påminner mycket om SGML. HTML utvecklades främst för att presentera hypertext. XML är däremot en förenklad variant av SGML som har utvecklats för att passa World Wide Web (WWW). XML beskriver endast innehållet och strukturen i ett dokument. Den säger inget om hur innehållet ska presenteras, som dess föregångare HTML. XML är uttryckligen ett metaspråk som kan vara till nytta, i synnerhet om man vill att informationen skall leva länge och vara flyttbar [TuKa01]. Idén med XML är simpel. Den försöker svara på de motsättningar som kommer i och med framtidens HTML. Kraven på nya taggar blir större. Till exempel matematikerna behöver taggar för olika formler och likaså behöver kemisterna taggar för sina formler, båda använder egna typer av taggar. Men för att göra saken värre, så vill utvecklare minska på antalet taggar som används. HTML är redan för stort och komplext och det är omöjligt att baka in alla dessa taggar i en handdator eller i en mobiltelefon. HTML är ett språk som tillåter användaren att skriva felaktig kod. Vid en uträkning uppskattades att mer än 50 % av koden i webbläsarna går åt att hanterar alla de felen och slarv som finns i koden skrivet av utvecklare. XML har en mycket strikt syntax, och det möjliggör att webbläsaren kan konstrueras att vara mindre, snabbare och lättare [Mar99]. 3. XML:s byggstenar Om du har varit i kontakt med HTML-dokument, så vet du att man använder olika taggar för att markera en del av ett dokument. En parser består av ett stycke kod som försöker läsa ett dokument och tolka dess innehåll. De flesta HTML-parsers accepterar slarvig kod som oundvikligt leder till att den måste gissa sig fram hur koden ska tolkas. För att bli av med detta problem, beslutade skaparna av XML-språket att från första början upprätthålla en struktur i dokumenten. XML-dokumenten kräver en parser som förkastar alla dokument som inte följer språkets enkla regler [3].

Ett XML-dokument börjar alltid med en deklaration som anger XML-dokumentets version. Sedan kan man även definiera en mall för dokumentets struktur och presentation [TuKa01]. <!- deklaration --> <?xml version="1.0"?> <!- struktur --> <!DOCTYPE greeting SYSTEM "greeting.dtd"> <!- presentation --> <?xml:stylesheet type="text/css" href="greeting.css"?> 3.1 Element Ett element har alltid en start- och sluttagg och elementens innehåll placeras mellan dessa taggar. Ett element måste börja och sluta mellan samma förälderelement. Men ett element kan också vara tomt och representeras antingen av en tomelementstagg <elementnamn/> eller av en starttagg omedelbart följd av en sluttagg <elementnamn></elementnamn>. Till exempel elementet <bild> är en tom element och kan representeras av tomelementstagget <bild/> [TuKa01]. Ett XML-dokument har endast ett rotelement. Om det finns fler än ett rotelement så kommer dokumentet inte att accepteras av parsern. Några andra saker som kan vara bra att veta är att elementerna inte kan överlappa varandra och att stora och små bokstäver i elementen gör skillnad [3]. En väldigt enkel XML-dokument kan se ut så här: <?xml version="1.0"?> <! ett välformulerat dokument --> <greeting> Hello, World! </greeting> Taggarna och dess relationer beskriver dokumentets struktur, vilken avbildas i form av ett träd. Ett exempel av strukturen i ett XML-dokument kan se ut så här: person namn e-mail telefon Trädet ovan kan beskrivas på följande sätt. En person måste ha ett namn, e-mail och telefon. Elementet namn består i sin tur av två element, förnamn och efternamn. Även elementet f-namn e-namn hem nr. mobil nr. telefon innehåller två element, hem nummer och mobil nummer.

3.2 Attribut Attributens uppgift är att ge mer information om elementen. Ett attribut läses från elementets starttagg och består av ett namn och värde. Värdet ges alltid mellan två citationstecken och ett element kan ha flera olika värden. Ett attribut som name= Bob syns inte i XMLdokumentets utseende, men de används då dokumentet behandlas [TuKa01]. Det finns två olika sätt att ange ett attribut för ett element. Det första är att skriva det in ett element, och det andra är att skapa ett nytt element med samma attributsnamn. Följande exempel förklarar detta. <person name="bob"> <length>180</length> <weight>80</weight> </person> <person> <name>bob</name> <length>180</length> <weight>80</weight> </person> Båda exempel ger samma resultat. Det finns ingen bestämd regel för hur attributen bör skrivas. Enligt vissa är attributen till nytta bara i HTML-språket och att i XML bör man, om möjligt, använda sig av element [8]. 3.3 Entitet XML-dokumentets fysiska struktur består av entiteter. Entiteterna definieras i Document Type Definition (DTD) och de innehåller på förhand bestämda konstanter som har ett namn och ett innehåll. Entiteterna kan beskriva en del av ett dokument, bilder, specialtecken, teckensträngar eller matematiska symboler [TuKa01]. Ett XML-dokument har alltid minst en entitet, nämligen en dokumententitet som man inte behöver referera till i DTD. 4. XML-gränssnitt 4.1 DOM Document Object Model, vanligen kallad DOM, definierar ett antal gränssnitt åt den parsade versionen av ett XML-dokument. Parsern läser hela dokumentet och bygger upp ett träd som sedan DOM-gränssnittet kan manipulera. Man kan söka runt i trädet för att se vad det ursprungliga dokumentet innehåller, man kan radera en del av ett träd, man kan ordna om trädet, man kan addera nya grenar etc. Dessa manipulationer har dock sitt pris. Trädet som läses in lagras i datorns minne. Om dokumentet är väldigt stort, kommer det att förbruka väldigt mycket av datorns minne. DOM skapar objekt av innehållet, såsom element, text, attribut och mellanslag. Om man är ute efter att modifiera bara en liten del av innehållet, så är

det helt onödigt att slösa minne åt objekt som inte kommer att användas. DOM har alltså en del svagheter, men det är ändå ett väldigt användbart sätt att parsa XML-dokument. 4.2 SAX Simple API for XML (SAX) skapades för att bli av med DOM-gränssnittets svagheter. SAX parsern berättar när den hittar början av ett element, slutet av ett element, text, början av texten, slutet av texten osv. Parsern skapar inga objekt, den levererar endast händelser till en applikation. Man kan alltså bestämma vilka händelser är viktiga och spara endast dessa. De händelser som inte sparas specifikt, kommer att raderas. Parsern kommer att leverera händelser omedelbart, som sedan ett applikationsprogram kan generera till resultat. Man behöver alltså inte vänta på att parsern går igenom hela dokumentet. Men såsom DOM, har SAX också sina svagheter. När SAX parsern hittar text i ett XML-dokument, kommer en händelse att skickas till ett applikationsprogram. Men händelsen innehåller bara texten som söktes, elementet som innehåller texten kan inte enkelt skickas till applikationen. SAX styrs inte av en organisation. En del utvecklare tycker att det vore bekvämare om SAX utvecklades av en organisation, t.ex. W3C. 4.3 JDOM Jason Hunter och Brett McLauglin blev frustrerade över vissa saker med DOM- och SAX -modellerna. De skapade JDOM-paketet som är Java baserad med öppen källkod. Den strävar efter att följa 80/20-regel. Leverera 80 % av användarnas behov med 20 % av funktionen i DOM och SAX. JDOM är implementerad som en serie av Java klasser. Klasserna är relativt små eftersom de fungerar med SAX- och DOM-parsern. Främsta egenskapen för att använda JDOM är att den reducerar markant kodens längd. En JDOM applikation är typiskt 1/3 av DOM applikationens längd, och 1/2 av SAX applikationens längd. 4.4 JAXP Fast DOM, SAX och JDOM förser användbara gränssnitt för de vanligaste jobben, finns det ändå en del saker som de inte kan göra. Sun har släppt en Java API för att korrigera detta. API:n förser användbara gränssnitt åt XML-dokumenten med hjälp av DOM, SAX och XSLT [3]. 5. DTD och XML schema För att en dator ska kunna tolka innebörden av ett träd så kodar man det i en så kallad dokumenttypsdefinition (DTD) eller i ett XML schema. En viktig egenskap med strukturerade dokument är att man kan tvinga dokumentets logiska struktur enligt en viss bestämd mall. Att kunna bestämma elementerna och dess följd, kan vara till hjälp vid uppbyggnad av ett dokument. Till exempel vetenskapliga artiklar, lagtexter och manualer är oftast skrivna enligt

en viss mall. När ett dokument bifogas med definitionen DTD så skrivs dokument enligt dessa regler. Om man t.ex. ger en person uppgiften att skriva dokumentet i enlighet med DTD så kan man vara säker på att dokumentet inkluderar en framsida, sammanfattningssida, innehållsförteckning och referensregister. World Wide Web Consortiums (W3C) XML scheman är en annan metod för att definiera XML-dokumentets uppbyggnad. Med scheman kan man ge en mer specifik definition och de kan även innehålla annan nyttig information om dokumentet. [TuKa01]. Det är helt klart att XML scheman har blivit en stor framgång. De används av många stora utvecklingsmiljöer, från finans- till intelligensmiljöer. Men det kan hända att schemans normala egenskaper inte räcker till att lösa ett problem. W3C lämnade dörren öppen för schema extensions. Man kan använda elementet annotation för att lägga till egen information i scheman [4]. Fördelarna med en XML scheman jämfört med DTD är att man kan skapa egna datatyper. Det finns två olika datatyper, simpletype och complextype. En simpletype används bara då man vill definiera egna typer utifrån de inbyggda datatyper som redan finns i XML scheman. En complextype används då man definierar en typ som beskriver ett element och som har barnelement och/eller attribut [5]. 6. XML-namnrymder I XML finns det inga begränsningar på hur man namnger elementer. Om två eller flera identiska element- eller attributsnamn förekommer i olika ställen så kan det leda till semantiska konflikter [TuKa01]. Genom ett prefix ger man elementet en universell betydelse så att elementerna inte riskerar att blandas ihop. Principen för XML-namnrymder används av nästan alla viktiga applikationer i XML-familjen [2]. XML-namnrymder har dock sina problem, de inför en kolossalt stor komplexitet i API:n (application program interface) och XML skrivar-/läsar-implementationer. Om man använder XML-namnrymder, så belastar man även parsern med en signifikant komplexitet eftersom parsern måste gå igenom hela starttaggen innan textinformation kan returneras [7]. 7. Stilmallar XML beskriver som bekant endast innehållet och strukturen i ett dokument, den säger inget om hur innehållet ska presenteras. Med stilmallar beskriver man dokumentets utseende [TuKa01]. 7.1 CSS Cascading Style Sheets (CSS) är ett väldigt bra och enkelt sätt att presentera informationen i XML-dokumenten. Det flesta stilar som finns i CSS är bekanta från ordbehandlingsprogram. Man kan t.ex. välja teckensnitt, dess storlek och tjocklek, bakgrundsfärg, ramarnas utseendet kring elementerna och mycket mer. En viktig och bra egenskap med CSS är att

stilinformationen, eller rättare sagt layoutmallen, inte är placerad i samma dokument som XML-informationen. Man har alltså separerat informationen om källdokumentet och informationen om utseendet från varandra genom att placera dessa i separata filer. Olika stilar kan lätt skapas för samma XML-fil och det kan spara både arbete och tid. En nackdel med stilar är att olika webbläsare presenterar CSS på olika sätt. Somliga kanske fungerar bra med HTML och CSS men inte alls med XML och CSS. Ännu värre är att de implementerar olika delar av specifikationen som gör det svårt att presentera XML-dokument likadant i alla webbläsare. Det finns tre olika CSS standarder, CSS Level 1 (CSS1), CSS Level 2 (CSS2) och CSS Level 3 (CSS3). CSS1 stöder endast HTML-taggar. CSS2 stöder XML-dokument och det möjliggör att man kan skilja på innehållet och presentationen. CSS3 är under utveckling men det kommer att finnas stöd för t.ex. kolumner, paginering, kraftfullare selektorer och bättre stöd för icke-europeiska teckenuppsättningar [Har01]. Det kan hända att CSS egenskaper inte räcker till då man jobbar med strukturerade dokument. Det är därför man har utvecklat stilmallen XSL [TuKa01]. 7.2 XSL XML Style Sheet (XSL) är en mer kraftfullare stilmall än CSS [TuKa01], en bra egenskap är att den kan transformera dokumenten före publicering. Med XSL kan samma dokument presenteras på olika sätt, i olika medium. Några av XSL:s egenskaper är: Konvertera XML till XML (med en annan DTD), HTML och text Publicera en stor mängd av XML-dokument Omorganisera XML-dokumentet så att man skapar en innehållsförteckning W3C har delat XSL i två delar. XSL Transformations (XSLT) och XSL Formatting Objects (XSLFO). XML-dokument XSL Processering Resultat (XML, HTML, data) XSLT-stilmall

För att använda XSL behövs en XSL processor, det är ett mjukvaruprogram som implementerar XSL standarden. XSLT bestämmer XML-dokumentets transformation, det tar in ett XML-dokument och transformerar det till ett annat XML-dokument med hjälp av en annan DTD [Mar99]. XSLT kan bara transformera från ett XML-dokument, det går alltså inte att tranformera från ett PDF-, ett TeX- eller ett Word-dokument. De flesta XSLT- processorer stöder även XML till HTML tranformationer och XML till text tranformationer fast XSLT standarden inte kräver detta. Det går alltså att till en viss grad transformera ett XMLdokument till ett icke-xml format såsom TeX, RTF eller Postscript. [Har01]. XML med XSL kan vara till stor nytta, man kan skriva ett XML-dokument och automatiskt skapa kopior av dokumenten i text och HTML. Eftersom stilen läggs på automatiskt, är det väldigt lätt att ändra utseendet på en webbsida genom att bara ändra på stilmallen [Mar99]. XSLT dokumenten innehåller regler för XSLT-mallar. När en XSLT-processor transformerar ett XML-dokument som använder stilmallar, går den igenom varje nod i trädet börjande från roten. Vid varje nod jämförs den med mönstret av varje mallregel i stilmallen. När en nod matchar med en mallregel, skrivs mallen ut. XSL-FO är den andra halvan av XSL. Den beskriver hur sidorna ska presenteras för läsaren och använder en mer avancerad layoutmodell än HTML+CSS. De formateringar som XSL- FO stöder men inte HTML+CSS stöder är t.ex. fotnoter och sidnumrering. CSS är främst avsedd för Webben, XSL-FO är avsedd för en mer bredare användning, man kan bl.a. ange layouten för en hel bok [Har01]. Några av XSL standardens formatobjekt är block, list-item, table, display-graphic och formategenskaper är border-color, table-width och font-size [TuKa01]. 8. Länkspråken XLink och XPointer Länkarna i HTML kan bara länka till ett enda dokument i taget. För att länka till en paragraf i texten, behöver man använda ett element som kallas för ankare som förser länken med extra information. Länkarna i HTML skapar ingen historik eller relationer mellan varandra och länkarna är one-way, alltså att den länkade dokumenten inte vet vilka dokument som länkar till den. Länkarna i XML är kraftfullare än länkarna i HTML. De är delade i två skilda delar, XLink och XPointer [Har01]. XLink bestämmer hur en resurs länkas till en annan resurs. XPointer definierar hur individuella delar av en resurs pekas ut. XLink möjliggör avancerad hypertextlänkning med egenskaperna: En länk kan leda till flera olika destination En länk kan leda både till och från en resurs Möjligheten att länka och bearbeta andras dokument Skapa länkar som har speciella beteenden Hantera länkar utanför dokumenten i länkdatabaser för enklare administration Vilken som helst element i ett dokument kan göras till en länk

XPointer erbjuder möjligheter att: Även om ett dokument är skapat av någon annan så går det att länka till speciella platser inuti ett dokument Adressera element, strängar och delar inuti ett dokument Beskriva element och relationer i strukturer som är tolkbart för människor och maskiner [6] 9. XML-språkets framtid XML börjar bli det säkra alternativet inom dokumentering, datautbyte, programintegration, affärskommunikation och andra områden. XML standarden kommer att möbleras om för att stöda högeffektiv processering och att lägga det mest användbara och viktigaste i kärnan [9]. Aktiviteten är så stor kring XML att det är svårt att säga hur det kommer att se ut om sex månader. Men vi kan åtminstone anta att det kommer att öka e-handeln och att marknaden för trådlösa kommer att öka [11]. Nedan har samlats några av XML-språkets för- och nackdelar: Fördelar: XML är modulärt Nya dokumentformat kan definieras genom att kombinera och återanvända andra format. XML är utan licens och är plattformsoberoende Man kan få en stor uppsättning av verktyg och det finns en massa yrkesmänniskor med erfarenhet av teknologin. XML är en familj av teknologier XML 1.0 specifikationen definierar vad taggar och attribut är. XML-familjen är en växande uppsättning av moduler som erbjuder användbara tjänster. [10] Nackdelar: Tillåtna tecken De flesta databaser tillåter användaren att inkludera alla möjliga tecken i textkolumnen. Vad händer om databasen publiceras i XML och man inkluderar tecken som XML-specifikationen inte tillåter? XML-namnrymder Namnrymder är en källa av problem. Den inför en stor komplexitet i API:n och XML skrivar-/läsar-implementationer [7]. Bristande säkerhet En XML-fil kan krypteras för att öka säkerheten, men en parser kommer inte automatiskt förstå att filen är krypterad. Det finns ännu inte standard för att lösa detta problem, fast flera standarder håller på att utvecklas [12].

Källor [Mar99] XML By example, Benoit Marchal, 1999 [TuKa01] Tommi Tuikka & Sari Kanala, XML Ohjelmoinnin perusteet, 2001 [Har01] XML Bible 2nd Edition, Elliotte Rusty Harold, 2001 [1] SGML Referensbok, http://zoon.se/ref/sgml/sgml.html [2] XML Sweden, http://www.xml.se [3] Introduction to XML, https://www6.software.ibm.com/developerworks/ education/xmlintro/?x=34&y=10 [4] XML Journal, http://pdf.sys-con.com/webservices/wsjoct2004.pdf [5] R.L. Costello XML Schema Tutorial 2001, http://www.xfront.com/ xml-schema.html. [6] Navigera bland dokumentinnehåll, http://www.xmlakademin.nu/ verkstad/navig_dok.htm [7] Where XML goes astray, http://nothing-more.blogspot.com/2004/10/ where-xml-goes-astray.html [8] XML Files, XML Tutorial, XML Syntax, http://www.xmlfiles.com/xml [9] The future of XML, http://www.sys-con.com/xml/article.cfm?id=754 [10] XML i tio punkter, http://w3c.sics.se/resources/office/translations/ XML-in-10-points_sw.html [11] The preset and future of XML, http://www.arches.uga.edu/~jhardman/ The%20Present%20and%20Future%20of%20XML.htm [12] XML for Web services?, http://uk.builder.com/architecture/web/ 0,39026570,20266378,00.htm