Start / Artiklar / Vad är XML?

Vad är XML?


Gustaf Liljegren <gustaf.liljegren@xml.se>

2001-07-30: Många har önskat sig en fortsättning på artikeln Varför XML? som beskrev behovet av en ny syntax och jämförde med två andra vanliga filformat. Det kom dock att handla mer om bristerna i dessa format än om värdet av XML, och därför publicerar vi nu en annan artikel, som svarar på rätt frågor: vad är XML, och vad ska man ha det till? Ett kodexempel finns i slutet av artikeln.

Den här artikeln publicerades i februarinumret av tidningen eVärlden, som kort därefter absorberades av IDG, som tyvärr inte hade något intresse av att driva tidningen vidare. Innan denna publicering har texten reviderats på sina håll, för att hållas ajour med utvecklingen.

Innehåll

1 XML gör det möjligt
2 Programmering mot XML
3 Att lagra i XML
4 XML-familjen
5 XML färdigt i år

XML gör det möjligt

Ända sedan datorerna flyttade in på kontoren har man sökt efter ett universiellt format för lagring och överföring av information. XML kan bli den teknik som uppfyller drömmen. XML är som den fasta punkten från vilken man kan rubba världen.

XML baseras på en vision som är svår att motstå. Det är drömmen om ett universiellt, standardiserat filformat. Ett format som är helt oberoende av hårdvara och mjukvara, oberoende av skriftspråk, ja till och med oberoende av själva informationen. Ett format för alla slags branschspecifika data, webbsidor, sekundsnabba transaktioner, överföringsprotokoll, bilder och långa textdokument. Ett format som inte ägs av ett kommersiellt bolag och som ser likadant ut om 10-20 år.

Det är just detta universalformat man försöker skapa med XML, och närmare drömmen har vi aldrig varit. Med sitt odelade stöd från mjukvarujättarna kan XML på sikt komma att förändra minst lika mycket i datorvärlden som HTML eller Java. Webbläsare och mobiltelefoner är bara toppen på isberget; XML passar nära nog överallt. Ordbehandlare, kalkylprogram, databaser, ekonomisystem och ordersystem är andra exempel på produkter som idag anpassas för XML.

XML, eller Extensible Markup Language, är en standard som liksom HTML utvecklats hos W3C. När HTML fick långt större spridning än man från början kunnat ana, såg man behovet av en mer branschspecifik uppmärkning. Det räcker inte med listor och tabeller, när vi egentligen menar belopp, kundnummer, namn och ort. Framförallt handlar det inte enbart om att presentera data, utan om att göra den tillgänglig för automatisk bearbetning oavsett var den finns.

Trots namnet är XML inget märkspråk vid sidan av HTML. XML är ett regelverk för att skapa märkspråk, ett så kallat metaspråk. Uppmärkningen ger innehållet sammanhang och struktur. Den gör det möjligt för program att hitta rätt och göra smarta saker. Därför kan man i större utsträckning än tidigare automatisera processer som tidigare varit flaskhalsar. Ju fler processer, desto större behov av ett enhetligt format. Därför passar XML ofta bra i arbetsflöden där informationen passerar genom och förgrenar sig i olika format. XML är i sin enkelhet den minsta gemensamma nämnaren som knyter ihop system som tidigare varit oåtkomliga för varandra.

Programmering mot XML

Grundläggande för alla programspråk och filformat är att det finns ett program som läser, tolkar och kontrollerar syntaxen. XML är inget undantag; specifikationen som definierar XML är i första hand en beskrivning på hur en XML-tolk ska fungera.

Ordet XML-tolk är så nära en begriplig svensk översättning av XML parser och XML processor vi kommer.

Överallt där XML ska kunna tas emot och bearbetas måste det finnas en XML-tolk. Webbläsare och mobiltelefoner är bara toppen på isberget. Den stora nyttan finner man i de system där informationen inte syns; där den ligger gömd i en databas tills någon plockar fram den. Tack vare XML kommer överföringar mellan olika system i långt större utsträckning än tidigare att kunna skötas med automatik. Överföringarna kan ske i kablar eller genom luften, via överföringsprotokoll som i sig själva kan vara XML.

Att knyta ihop två olika system idag kräver ofta dyr programmering. Affärskritiska system följer helt andra format, som utvecklats under lång tid. Tack vare att man kan använda samma format överallt går det snabbare att skapa fungerande lösningar. För att underlätta de flesta återkommande uppgifter har det utvecklats programmeringsgränssnitt.

Att lagra i XML

XML passar inte enbart som överföringsformat för att knyta ihop system, utan också som lagringsformat. Det pågår ett flertal projekt runtom i stora mjukvarubolag för att erbjuda XML som ett alternativ till sitt eget format. Det finns redan exempel på XML i vanliga kontorsprogram, i ekonomisystem, i ordersystem, som exportformat i relationsdatabaser och i själva operativsystemet. Fördelen i att inte behöva konvertera informationen till ett annat format innan den överförs till ett annat program är uppenbar.

I vissa fall kan XML vara ett alternativ till relationsdatabaser. Det mesta man kan hitta i en traditionell databas går att implementera för XML; scheman, frågespråk, programmeringsgränssnitt, index, säkerhet, och så vidare. XML är ett lagringsformat vid sidan om databasens egna binära format, som med programmering kan fås att utföra samma konster. Men för vanliga tabelldata är XML inte speciellt effektivt, annat än då man behöver en standard mellan databasen och ett annat program. Kopplingar där XML blir ett "lingua franca" mellan databaser, servrar och program är något vi kommer att få se betydligt mer av i framtiden.

Idag har de stora tillverkarna av databaser implementerat XML så att vi redan idag kan exportera till XML istället för HTML på en databasdriven webbplats. Vad som ofta glöms bort i sammanhanget är att det kan vara betydligt svårare att importera XML i en databas, på grund av att de komplexa och oregelbundna strukturer som XML är så bra på inte passar i tabeller. Därför kan XML ibland vara ett bra alternativ även för lagring.

XML-familjen

Kring XML har det vuxit fram ett antal nya standarder som är mer eller mindre nödvändiga för att XML ska vara meningsfullt. Många av dessa skrivs i XML-format. Ett par av dem, XLink för länkar och XSL för presentation, planerades redan från början. Att vi kan länka oss från en webbsida till en annan tar vi som självklart; det är webbens essens. Lika självklart är det att vi kan återge informationen på ett snyggt och överskådligt sätt. I XML brukar man lägga båda dessa vitala funktioner utanför själva informationen, i separata filer kort sagt.

Att separera strukturerad information och layout är särskilt intressant om man uppdaterar något löpande. Om informationen dessutom publiceras på olika språk eller till olika användare, med samma innehåll men med olika layout, eller med samma layout men med olika innehåll -- då har man en tillämpning som passar XML perfekt. Chansen är då stor att en övergång till XML kan göra mycket för att effektivisera arbetet.

Förutom länkning och presentation utvecklas det bland annat standarder för integritetsskydd på internet (P3P), digitala signaturer (XML DSign), handelsprotokoll (ebXML och IOTP), avancerade formulär (XForms), webbsidor och mobilt internet (XHTML), frågespråk (XQuery), programmeringsgränssnitt (DOM) och vektorgrafik (SVG). Det har vuxit fram en hel flora av nya förkortningar som baserar sig på tillämpningar av XML.

Experter från olika branscher ser nya möjligheter och börjar tillämpa XML inom sitt eget kunskapsområde. XML är idag det mest tvärvetenskapliga man kan syssla med i datorsammanhang. Det är som en resumé av datorhistorien i ett format: datamodellering, objektorientering, distribuerad databehandling, teckentabeller, regulära uttryck, nätverk, kryptering, publicering och så vidare. XML är genom sina många tillämpningar så omfattande att ingen kan lära sig allt.

Det man kan lära sig är vad XML kan göra för den bransch man själv jobbar i. I enstaka fall kommer XML att skapa nya yrken, men det vanligaste är att tillföra XML-kompetens till befintliga yrkesroller. I många branscher kommer övergången knappt att märkas; programmen byter format men ser likadana ut. Några branscher kommer att revolutioneras, eller slås ut.

XML färdigt i år

Avsaknaden av färdiga standarder och överensstämmande implementationer gör att XML ibland inte fungerar som det är tänkt, men det finns områden där XML redan idag kan göra stor nytta. De viktiga pusselbitarna som är kvar kommer att bli färdiga under året. Vad implementationerna beträffar har det blivit en avgörande konkurrensfördel att hålla sig till standarden. Även profitörer som är mer kända för sina innovativa uppslag än för att göra kompatibla program har bidragit positivt. Utvecklingen underlättas av att det finns gott om gratis program och öppen källkod.

På minussidan är det faktum att XML är ännu en obligatorisk teknik att lära sig, och en mycket omfattande sådan. Inlärningströskeln kommer att vara ett bekymmer under flera år framöver, tills det finns tillräckligt intuitiva och intelligenta användarprogram, som gör XML lika naturligt som el och rinnande vatten. Men ett är säkert: XML förblir ett smart och flexibelt sätt att lagra information, vad än framtiden bjuder på.

<?xml version="1.0" encoding="iso-8859-1"?>
<inbetalning>
  <mottagare>
    <namn>Bosses bokklubb</namn>
    <konto typ="postgiro">123456-1</konto>
  </mottagare>
  <kund>349</kund>
  <belopp valuta="SEK">237.00</belopp>
</inbetalning>