HTML har blivit det mest framgångsrika dokumentformatet i historien. Men det räckte inte. Redan år 1996 var det uppenbart att HTML varken var flexibelt eller kraftfullt nog för att tillfredsställa dåtidens önskemål och ännu mindre framtidens. Även om man introducerade en mängd nya element i HTML skulle dessa fortfarande vara i förväg bestämda samt statiska och enbart beskriva elementens struktur utan att ens nämna vilka data de innehåller.
En lista kan till exempel innehålla information om ingredienserna som behövs i ett matrecept medan en annan lista kan innehålla stolpar som kommer att användas som minnes-anteckningar i ett tal. Data i de båda listorna har inget med varandra att göra, ändå kan de vara innehållet i samma element, LI.
LI-element beskriver sitt innehåll som "jag är en post i listan". Det säger ingenting om denna post är en talstolpe eller en ingrediens i matreceptet. LI-element ger inte någon mening åt sitt innehåll.
| Data utan mening | |
|---|---|
|
<ul> |
<ul> |
För att kunna åtskilja datas innebörd behövs det ett språk som kan utvidgas, ett språk som kan ge data en mening.
| Data med mening | |
|---|---|
|
<ingredienser> |
<tal> |
| Data utan mening | Data med mening |
|---|---|
|
<p>Eva von Pepel<br> |
<adress> |
Grunderna och konceptet till ett nytt språk har då fötts. En stund lekte man med tanken att använda SGML. Men denna tanke begravde man nästan så fort som den uppstod. SGML gör nytta i industriella applikationer men för Webben var det för komplex. Det språk man strävade efter skrev man i sin nu klassiska "mållista".
|
|
Arbetet med det nya språket resulterade i ett utkast som publicerades i november 96 (http://www.w3.org/TR/WD-xml-961114.html). Språket döpte man till XML.
Extensible Markup Language är en annan typ av SGML-dokument. Språket skapades just för att återfå det som HTML offrade, nämligen flexibilitet och kraftfullhet, och det lämpar sig därför för strukturering av komplexa dokument.
I likhet med HTML är XML en applikation av SGML. Till skillnad från HTML är XML även en delmängd av SGML. Det innebär att XML tillåter att man definierar andra applikationer. Detta i sin tur öppnar en möjlighet för "import" av andra språk in i XML. Rent praktiskt betyder det att ett XML-dokument (delvis) kan struktureras enligt regler (DTD) som är definierade för detta språk samtidigt som man kan strukturera en annan del av dokumentet enligt regler definierade i DTDn för ett annat språk. Och det andra språket behöver inte nödvändigtvis vara ett annat markeringsspråk.
DOM (Document Object Model), är till exempel ett plattformsoberoende gränssnitt som med hjälp av skript eller olika applikationer tillåter uppdatering av XML- och HTML-dokument så fort informationen är tillgänglig (http://www.w3.org/DOM).
Uppbyggbarheten är språkets styrka. Var och en kan skapa sitt eget markeringsspråk, ett markeringsspråk som bäst passar för just den textmassa som ska struktureras. Denna möjlighet ger företag ett redskap att på det mest optimala sättet strukturera sina databaser eller annan information. Då språket är plattformsoberoende kan den strukturerade datan med fördel överföras via Webben eller användas för att uppdatera andra databaser. Det sistnämnda skapar en möjlighet till informationsutbyte mellan t ex databaser. Redan idag önskar sig e-handel ett sådant utbyte. Och man jobbar hårt för att möjliggöra det i andra branscher, t ex inom nyhetsbranschen. För att man ska kunna byta dokument med varandra utarbetas gemensamma DTDer, dvs man använder sig av samma element och skapar gemensamt regler för deras förekomst.
Ett annat användningsområde kan helt enkelt vara lagring av data på ett strukturerat sätt. Med tanke på livslängden på dagens disketter och CD-skivor har man en god chans att med hjälp av XML säkra framtiden av nutiden.
Trots denna flexibilitet är språket ett rent SGML-språk och giltiga XML-dokument är även giltiga SGML-dokument. (Se validering nedan.)
Dokument av typen XML är objektorienterade, en klass av dataobjekt som kallas XML-dokument, där både rotelementet och andra element definieras av dokumentets skapare i en DTD eller DTDer som han/hon kan skriva själv. DTDer eller DTD-snuttar kan moduliseras. Därför säger man att XML är en metod för att lägga strukturerade data i en textfil. Med strukturerade data menas allt från vanliga textfiler till databaser. Observera att all information, inkl den som finns i "vanliga" textfiler, betraktas som en databas. Detta är därför möjligt att data och informationen om hur den ska presenteras ligger i två separata filer.
XML är en applikation av SGML och är därmed (i likhet med HTML) ett beskrivande språk som åtskiljer struktur från presentation/stil. Det gör att XML-dokument kan återanvändas (helt i enlighet med dagens återvinningssamhälle). Då man endast arbetar med strukturerad information kan ett och samma dokument, en del av det eller olika delar från ett antal separata dokument användas för olika ändamål, t ex Webb-publicering eller papperstidskrifter eller även i olika applikationer.
Till dokumentens presentation använder man stilmallar (layoutmallar). Fördelen med stilmallar är att:
XML definierar inte element i förväg, ej heller dess funktion.
| HTML | XML |
|---|---|
<h1>Rubrik på nivå 1</h1> Element och deras funktioner är fördefinierade. |
<rubrik>Rubrik på nivå 1</rubrik> Man skapar själv både element och bestämmer vilken funktion de ska ha. |
Just det faktum att man bestämmer själv över elementen och deras funktioner kan en detaljerad strukturering av data utföras. KnowWares bokdatabas skulle kunna se ut så här:
| HTML | XML |
|---|---|
<h1>HTML-bibel</h1> |
<bok> |
I detta sammanhang betyder inte elementen h1, dl, dt, dd någonting alls. Inte heller går det att bygga upp en databas av dem. Ur XML-element däremot kan ett databasprogram skapa fält utan något som helst problem och därmed underlätta sökningen av innehållet.
Den 10 februari 1999 blev första versionen av XML, XML 1.0, W3Cs rekommendation (http://www.w3.org/TR/REC-xml). All information om XML kan hittas på http://www.oasis-open.org/cover/ och http://xml.org/.