W3C homepage architecture domain

Grattis på födelsedagen, XML!

xml birthday cake

(XML fyller fem år den 10:e februari 2003)

av Dave Hollander och C. M. Sperberg-McQueen

även om det är svårt att tro att det redan gått fem år, så var det faktiskt den 10:e februari 1998 som World Wide Web Consortium (W3C) publicerade XML 1.0 som en Recommendation, vilket gör att XML är fem år gammal idag. Alltsedan den först introducerades har Extensible Markup Language blivit allmänt förekommande varhelst information hanteras. Tillsammans med anknytande och uppföljande standarder , XML Namespaces, XML Information Set, XSL Transformations (XSLT), XML Schema, XML Linking, och så vidare, har XML förändrat inte bara sättet som man publicerar webbdokument på, utan också det sätt som information hanteras i internt i företag.

I egenskap av två av medlemmarna i den ursprungliga arbetsgruppen för XML (XML Working Group), så har vi sett många förändringar, några bra, andra mindre bra. Efter vårt sju-åriga arbete med att definiera XML är det dags att reflektera en smula över de förhoppningar som låg till grund för XML, vad som hänt sedan dess, och vad som borde hända härnäst.

I begynnelsen...

Innan XML ännu fått ett namn samlades tolv personer, av ett mycket enkelt skäl, och med återhållsamma förhoppningar. Vi var alla yrkesmänniskor, med en avsevärd gemensam erfarenhet av både webben och av att använda datorer för att behandla och hantera information med hjälp av SGML, XML:s direkta anfader.

Webben var på väg att bli "allerstädes närvarande" — vi ville använda den för att publicera vår SGML-representerade information. SGML, då tio år gammal, gjorde informationen återanvändbar, dess styrka var dess förmåga att beskriva information på ett sätt som var oberoende av det system det var tänkt att användas i. Men det fanns problem med SGML — det var svårt att lära sig, det var bara anammat av dokumentationsspecialister, och det var mycket svårt att använda SGML tillsammans med det nya medium som kallades webben. Vår arbetsgrupp formerades kring den gemensamma uppfattningen att de två teknologierna skulle kunna arbeta tillsammans, för att göra det lättare att dela och återanvända information.

Vi startade vårt arbete, som bedrevs inom W3C (World Wide Web Consortium), genom att komma överens om tio mål, vilka fortfarande uppräknas i det första kapitlet i XML-specifikationen. Den ännu namnlösa delmängden av SGML som vi utvecklade, skulle vara lätt att använda på Internet, stödja en bred uppsättning applikationer, vara kompatibel med SGML, o.s.v. Målet att viga samman de två kraftfulla ideerna, webben och beskrivande uppmärkning, stimulerade vår grupp och fick oss att arbeta kvällar och nätter, och att träffas på telefonkonferenser, inte bara på tisdagar, utan även på lördagmornar. Närhelst vi kände oss förvirrade så var det alltid någon som frågade: “är det här en egenskap som är nödvändig för att vi ska nå målet?” Gruppen arbetade med att forma om våra ideer och vår erfarenhet till ett formellt språk, ett språk som konstrueras för att möjliggöra att återanvändbar information blir åtkomlig överallt.

Målet: Att få SGML att fungera på webben

På samma sätt som utbytbara delar var en drivkraft i den industriella revolutionen, så är det återanvändbar information som ger kraft åt vårt informationssamhälle. Vår delade erfarenhet av SGML hade lärt oss att information ökar i värde när den kan delas och återanvändas. Och webben låter oss dela information med allt fler andra användare. Vi visste att SGML var den bästa ansatsen för att återanvända den typ av information som vi ville arbeta med, men vi var tvungna att göra SGML lättare att lära sig, att förstå och att implementera, samtidigt som vi måste behålla SGML:s kärna — i korthet, göra SGML anpassat för webben.

Den kärna av SGML som vi ville bygga in i det som blev XML, är dess beskrivande uppmärkning. Uppmärking är information som läggs in i de dokument som behandlas av datorer — i fallet SGML yttrar sig uppmärkning som märken i dokumentet, märken som anger dess struktur. Beskrivande uppmärkning använder märken för att påvisa struktur och andra egenskaper hos informationen, på ett sätt som är oberoende såväl av det system som den skapas på, som av det system som senare behandlar informationen.

Vi ville inte att XML skulle ha en fix uppsättning märken. Vi ville att XML, liksom SGML, skulle vara ett metaspråk. Metaspråk är språk som används för att definiera vokabulärer anpassade för viss typ av information. Användardefinierad, och behandlingsoberoende uppmärkning är lättare att återanvända, och kan bearbetas på nya och ofta överraskande sätt.

Liksom SGML var XML avsedd att göra det möjligt för informationsägare att inte bli inlåst av en speciell produktleverantör. Beskrivande uppmärkning gör information oberoende av enskilda programvarudelar. Systemberoende och proprietära format förhindrar återanvändning av information och gör att informationsägaren blir beroende av de leverantörer vars programvara kan skapa och bearbeta dessa format.

Om vi hade en SGML anpassat för webben, så vore det enkelt och tillförlitligt for datorer (och människor) att använda beskrivande, strukturell uppmärkning i sina dokument. Genom att märka data på ett beskrivande sätt kan en informationsägare producera semantiskt rik information, och undvika den typ av presentationsinriktad uppmärkning som används för att få utseendet snyggt — den typ av uppmärkning som vi brukar kalla “märkes-sallad”.

Till vår förvåning lyckades vi. Den 25-sidiga specifikationen av XML var lätt att lära sig, och kunde implementeras på ett enkelt sätt. XML är ett metaspråk som ger dig möjligheter att skapa uppmärkningsspråk som fångar det som är viktigt för dig. XML tillhandahåller element och attribut för att uttrycka logisk struktur, och möjliggör samtidigt semantisk tolkning av information. I vårt hårt drivna arbete lyckades vi hålla balansen mellan storlek och komplexitet. Vår testfråga: “är det nödvändigt för att vi skall nå vårt mål?” hjälpte oss att skapa ett språk lämpat för webben.

Innan vi visste ordet av hade alla möjliga människor börjat använda XML — och, bäst av allt, börjat göra detta utan att fråga om lov eller fråga efter hjälp av vår arbetsgrupp. Databasmänniskor, transaktionsimplementatörer, systemingenjörer, B2B-utvecklare — alla kastade sig över det vi hade. Till och med lyckades en outsider få en artikel om XML publicerad i Time Magazine!

Människor drogs till de presentationer som gavs om XML, verktyg skapades, inte bara av små, utan också av de största mjukvaruföretagen i världen. Massmedia rapporterade om vad som skedde, till en början utan förståelse av vad de talade om, senare med en alltmer växande insikt om vilket fotavtryck XML skulle sätta på vårt informationssamhälle.

XML tar rollen som standardplattform för samordnad användning av information.

Den snabba tillväxten i XML-kulturen visade sig vara lyckosam, eftersom det betydde att det fanns fler verktyg tillgängliga än som annars skulle varit fallet. Men det hade dessutom en ännu viktigare effekt: information som tidigare varit lagrade i dokumenthanteringssystem, ordbehandlare och databaser blev nu plötsligt tillgängliga på ett och samma format, och kunde behandlas med samma uppsättning verktyg. Fantasktiskt nog så blev XML spritt till nästan alla sektorer där textbaserad information hanteras av datorer.

Förändringens krafter. Naturligtvis kom XML:s popularitet att lägga press på arbetsgruppen att rätta till de saker som blivit fel. Erfarenhet med att arbeta med XML har visat att vissa delar av dess design inte fungerar lika bra som andra delar. De mekanismer som införts för att deklarera och använda SGML-inspirerade "entities", regler för hur välformade dokument skall behandlas och de begränsade möjligheterna man har att ha fullständiga XML-dokument inne i ett annat XML-dkument — det är alla exempel på sådant som ibland skapar svårigheter. Eftersom XML var ett så nedbantat språk så var det lätt att anamma och utvidga — eftersom det var så nedbantat så var användare nästan tvungna att utvidga det.

Och det gjorde vi. Och andra gjorde det också. Den ursprungliga lilla arbetsgruppen med sina likartade erfarenheter efterföljdes av en hel mängd grupper med skilda mål och bakgrunder. XML växte sig allt starkare. Vi har nu XML + XLINK + XSL + Namespaces + Infoset + XML Linking + XPointer Framework + XPointer namespaces + XPointer xptr() + XSLT + XPath + XSL FO + DOM + Sax + stylesheet linking PI + XML Schema + XQuery + XML Encryption + XML Canonicalization + XML Signature + DOM Level 2 + DOM Level 3.

Och varefter XML växte blev det mer komplext och förvirrande. Det som började som en behändig 25-sidors specifikation, SGML nedbantat för webben, har nu blivit en stor uppsättning av specifikationer, hundratals och åter hundratals sidor med text. Alla dessa sidor beskriver kraftfulla teknologier, men vem skulle kalla denna mängd som liten eller nedbantad? För fem år sedan kunde XML-verktyg utvecklas av en bra programmerare på en vecka, nu krävs det en projektgrupp med heltidsanställda experter för att hålla jämna steg med utvecklingen. Användbarheten har blivit lidande.

Och nu då, nu när XML har fyllt fem, vartåt reser vi nu?

Hur kan vi se till att XML bibehåller sin användbarhet? Ska vi lägga till ännu mer komplexitet och beskriva denna med hundratals sidor av komplicerad text? Om vi gör det så riskerar vi att upptäcka att allt färre människor kan förstå alla subtiliteter i XML.

Borde vi slå ihop de viktigaste XML-specifikationerna till en enda, men större, specifikation som berättar hela sanningen om XML, dess infoset, dess datamodell, och som också innhåller XML-vokabulär för länkning, schemavalidering, frågespråk, transformation etc? En sådan specifikation skulle vara mer entydig, men samtidigt mer utmanande. Den skulle, ovedersägligt, bli mindre modulär och mer svår att vidareutveckla.

Borde vi fortsätta att bryta ut delar av funktionalitet till andra specifikationer? Detta skulle göra de enskilda bitarna i det stora pusslet mer hanterbara. Om vi skulle göra det, borde vi tänka om vad gäller det sätt som XML-specifikationerna beror på varandra? Borde vi reparera eller ändra detaljer i hur entiteter deklareras, eller kanske helt ta bort behovet av den gamla DTD-syntaxen? Borde vi ändra på de regler som styr hur struktur kan deklareras, så att det blir lättare att bädda in information i annan information? Borde vi ta bort eller definiera om attributen? Eller kanske måste vi dela upp alltihop i två olika format, ett för maskinell bearbetning och ett annat som människor använder? Sådant som nu nämnts skulle förbättra XML, men skulle det verkligen ge en lösning till grundläggande problem vi skapat — komplexiteten?

Hela vår IT-plattform är stadd i förändring. Inte nog med att datorer förändras, även nätverksbaserad databehandling driver på utvecklingen av webben, av gridteknologi, av P2P. Allmer distribuerade processer ger oss såväl nya utmaningar som nya möjligheter att göra informationssörjan mer hanterbar.

Med dessa nya IT-paradigmer följer ett ökat behov av att interagera med data. Stora grupper av människor behöver ha djup kunskap om information och om hur man bygger system för att hantera information. Om dessa människor har svårt att förstå XML och dess näraliggande specifikationer, så kanske de hittar något annat som de kan använda, något som inte är så tungt.

När vi nu ser tillbaka på vad vi ansträngde oss så starkt för att uppnå, så måste vi vara beredda att besvara frågan om vi, den kultur som definierade XML och byggde de verktyg som använder XML, om vi kan dra nytta av våra erfarenheter från de senaste fem åren, och ånyo ställa oss den fråga som vi så många gånger under de tidigare åren konfronterats av — “är detta nödvändigt för att nå vårt mål?”


Om författarna

Dave Hollander C.M. Sperberg-McQueen

Dave Hollander (ovan till vänster), CTO för Contivo, och Michael Sperberg-McQueen (ovan till höger), ledare för W3C:s Architecture Domain, var bägge medlemmar i den arbetsgrupp (W3C Working Group) som utvecklade XML 1.0-specifikationen. De är nu vice ordförande i W3C XML Coordination Group respektive W3C XML Schema Working Group.

översatt av Olle Olsson (Svenska W3C-kontoret) från engelsktspråkigt orginaldokument