Hop til indhold
Udvikling og programmering

XML

eXtensible Markup Language

XML (eXtensible Markup Language) er et tekstbaseret markup-sprog, der bruges til at strukturere, gemme og udveksle data mellem forskellige systemer og programmer. Sproget fastlægger regler for, hvordan data pakkes ind i tags med en start- og sluttag, så både mennesker og maskiner kan aflæse indholdet. I modsætning til HTML har XML ingen foruddefinerede tags — det er op til den, der opretter dokumentet, selv at definere navnene på elementerne, så de passer til den konkrete opgave.

Forestil dig, at en webshop skal sende en ordrebekræftelse videre til virksomhedens lagersystem. Her kan oplysninger om kunde, vare og pris pakkes ind i selvvalgte elementer som <kunde>, <vare> og <pris>, så lagersystemet kan læse og bruge dataene, uden at det behøver kende noget til webshoppens interne databasestruktur. Det er netop denne evne til at beskrive data uafhængigt af det system, dataene kommer fra, der har gjort XML udbredt i mange typer af dataudveksling.

Sådan er et XML-dokument bygget op

Et XML-dokument tager typisk udgangspunkt i et rodelement, som alle andre elementer ligger inden i — lidt som grenene på et træ. Hvert element består af et starttag og et sluttag, og imellem dem ligger enten tekst eller nye underelementer. Et element kan desuden have attributter, som er kortere oplysninger skrevet direkte inde i starttagget, for eksempel et id eller en dato. Et simpelt eksempel kunne se sådan ud:

<bog>
  <titel>Kejserens nye klæder</titel>
  <forfatter>H.C. Andersen</forfatter>
</bog>

Her er <bog> det omsluttende element, mens <titel> og <forfatter> er underelementer med selve dataene. Denne hierarkiske opbygning gør det forholdsvis enkelt at gennemskue, hvad de enkelte dele af dokumentet betyder, selv uden en medfølgende forklaring.

Hvad bruges XML til?

XML anvendes flere steder, hvor data skal flyttes mellem systemer eller gemmes i en struktureret form. Det gælder blandt andet konfigurationsfiler til software, hvor XML bruges til at gemme indstillinger og opsætning på en måde, der er nem at redigere manuelt. Det gælder også webservices, hvor protokollen SOAP bygger direkte på XML til at udveksle beskeder mellem systemer, og det gælder API’er mere generelt, hvor XML historisk har været et af de formater, data kan returneres i.

Inden for søgemaskineoptimering bruges XML desuden til såkaldte XML-sitemaps, som lister en hjemmesides sider op, så søgemaskiner nemmere kan finde og gennemgå dem i forbindelse med indeksering. I brancher som forlagsvirksomhed, sundhedssektoren og jura bruges XML-baserede standarder som DocBook og DITA til at strukturere store mængder dokumenter, så de er lettere at organisere og genfinde. Mange virksomhedssystemer og SaaS-løsninger benytter også XML til at eksportere og importere data, når to platforme skal kunne udveksle oplysninger uden at kende hinandens interne opbygning.

XML sammenlignet med HTML og JSON

XML og HTML kan ved første øjekast ligne hinanden, fordi begge bruger tags omgivet af vinkelparenteser. Forskellen ligger i formålet: HTML er lavet til at vise data i en browser og har et fast sæt foruddefinerede tags som <p> og <table>, mens XML er lavet til at beskrive og transportere data og lader brugeren opfinde sine egne tags efter behov.

XML sammenlignes også ofte med JSON, som i mange moderne webapplikationer og API’er har overtaget en del af den rolle, XML tidligere havde. JSON er som regel mindre pladskrævende og hurtigere at læse for både udviklere og maskiner, mens XML til gengæld har stærkere indbyggede muligheder for validering af dokumentstruktur gennem for eksempel XML Schema (XSD).

Fordele ved XML

  • Læsbarhed: Tag-baseret syntaks gør det muligt for mennesker at læse og forstå indholdet i et XML-dokument uden specialværktøj.
  • Interoperabilitet: XML kan fungere som et fælles format, der gør det muligt for systemer med forskellig opbygning at udveksle data.
  • Fleksibilitet: Fordi elementerne ikke er foruddefinerede, kan XML tilpasses mange forskellige typer af data og datastrukturer.

Ulemper ved XML

  • Omfang: Start- og sluttags omkring hvert element gør XML-dokumenter forholdsvis pladskrævende sammenlignet med mere kompakte formater.
  • Kompleksitet: Begreber som navnerum og skemaer kan gøre det mere krævende at arbejde korrekt med XML, særligt for mindre erfarne brugere.
  • Parsing: Indlæsning og fortolkning af store XML-dokumenter kan kræve mere regnekraft end enklere dataformater, hvilket kan mærkes ved store datamængder eller høje krav til svartider.
Eksempel
En webshop kan sende en ordrebekræftelse videre til et lagersystem som et XML-dokument med elementer som , og .
Ofte stillede spørgsmål
Hvad står forkortelsen XML for?
XML står for eXtensible Markup Language, hvor det "udvidelige" (extensible) netop henviser til, at brugeren selv kan definere sine egne tags og elementer frem for at være låst til et fast sæt.
Hvad er forskellen på XML og HTML?
HTML har et fast sæt foruddefinerede tags og bruges til at vise data i en browser, mens XML lader brugeren opfinde sine egne tags og primært bruges til at beskrive og transportere data mellem systemer.
Er XML det samme som JSON?
Nej. Begge formater bruges til at strukturere data, men JSON er typisk mere kompakt og hurtigere at læse for maskiner, mens XML har mere avancerede indbyggede muligheder for at validere et dokuments struktur, blandt andet via XML Schema.
Hvornår blev XML en officiel standard?
XML blev en W3C-anbefaling (W3C Recommendation) i februar 1998, hvilket gjorde det til en åben, bredt anerkendt standard for dataudveksling.
Skal man kunne XML for at arbejde med webudvikling i dag?
Det afhænger af opgaven. Mange nyere API'er og webapplikationer bruger primært JSON, men XML bruges stadig i en del ældre systemer, konfigurationsfiler, XML-sitemaps og brancher med etablerede dokumentstandarder.
Se hvordan XML og andre dataformater i praksis bruges til at sende og modtage data mellem systemer
REST API →