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.