Sidst opdateret: 21 maj, 2025

Hvad er XML?
XML (Udvidelsesbart mærkningssprog) er et mærkningssprog og filformat, der bruges til at gemme, overføre og rekonstruere data. Det giver en struktureret tilgang til kodning af information, så den både er menneskelig læsbar og maskinlæsbar.
Nøglefunktioner ved XML
1. Defineret af åbne standarder
- Etableret af World Wide Web Consortium (W3C) i 1998 under XML 1.0 Specification.
- Følger strenge regler for at sikre, at data er struktureret og let at fortolke.
2. Designmål
- XML er designet med simplicitet, generel anvendelighed og brugervenlighed på tværs af forskellige platforme.
- Bruger et tekstbaseret format, hvilket gør det nemt at læse og redigere.
3. Unicode-understøttelse
- XML understøtter Unicode, så det kan gemme og behandle tekst på flere sprog.
4. Alsidighed
- Oprindeligt oprettet til dokumenter, men XML bruges nu bredt til datapræsentation på tværs af mange domæner, herunder webtjenester, API’er og konfigurationsfiler.
5. Skema og API’er
- XML‑strukturer kan defineres ved hjælp af Document Type Definition (DTD), XML Schema (XSD) eller Relax NG.
- Forskellige API’er, såsom DOM (Document Object Model) og SAX (Simple API for XML), muliggør XML‑behandling.
6. Almindelige anvendelser af XML
- Dataudveksling mellem forskellige systemer (f.eks. webtjenester, API’er).
- Konfigurationsfiler i softwareapplikationer.
- Opbevaring af struktureret information (f.eks. RSS feeds, SVG grafik, dokumentformater som DOCX).
- Webudvikling (f.eks. XHTML, SOAP, AJAX‑baserede applikationer).
Nu hvor du ved, hvad XML er, kan du lære at læse og redigere XML‑filer med denne nybegyndervenlige vejledning.
XML‑oversigt
1. XML’s hovedformål: Serialisering
Serialisering i XML betyder:
- Gemning af data i et struktureret format.
- Overførsel af data mellem forskellige systemer.
- Genskabelse af data i en brugbar form.
Når to systemer skal udveksle information, giver XML et standardiseret filformat for interoperabilitet. Det fungerer som en “lingua franca” for struktureret dataudveksling.
2. XML som et mærkningssprog
XML er et mærkningssprog, hvilket betyder, at det:
- Mærker data med tags for klar struktur.
- Organiserer information hierarkisk.
- Kategoriserer data med metadata.
Eksempel:
<book>
<title>XML Basics</title>
<author>John Doe</author>
</book>
Her er <book>, <title> og <author> tags, der definerer dataelementer.
3. XML‑skema (XSD) og validering
Et XML‑skema (XSD) definerer strukturelle regler for XML‑dokumenter.
XML‑dokumenter kan være:
- Well‑formed → Overholder grundlæggende syntaksregler (korrekt indlejring, korrekte afsluttende tags).
- Valid → Overholder skemaregler (obligatoriske elementer, korrekte datatyper).
Eksempel på en XSD‑regel:
<xs:element name="title" type="xs:string"/>
Dette sikrer, at <title> skal indeholde en strengværdi.
4. XML‑medietyper (RFC 7303)
IETF RFC 7303 definerer XML‑medietyper for dataoverførsel:
- application/xml → Standard XML‑data.
- application/xml-external-parsed-entity → Parsede XML‑enheder.
- application/xml-dtd → XML‑DTD‑dokumenter.
For XML‑baserede formater bruges +xml‑suffikset (f.eks. image/svg+xml for SVG‑billeder).
5. XML i netværksapplikationer (RFC 3470 / IETF BCP 70)
IETF BCP 70 (RFC 3470) beskriver bedste praksis for brug af XML i netværksbaserede applikationer, hvilket sikrer problemfri data‑interoperabilitet på tværs af systemer.
For at arbejde med XML programmatisk, udforsk de bedste XML‑parsers til Python, Java og JavaScript.
1. Anvendelser af XML
XML er et fleksibelt mærkningssprog designet til dataudveksling over internettet. Dets syntaks har påvirket talrige dokumentformater og kommunikationsprotokoller, hvilket gør det til en grundlæggende teknologi i mange industrier.
Almindelige XML‑baserede formater:
- Web‑feeds: RSS, Atom
- Kontordokumenter: Office Open XML, OpenDocument
- Grafik og 3D‑modeller: SVG, COLLADA
- Web‑teknologier: XHTML
- Dataudvekslingsprotokoller: SOAP, XMPP
- AJAX: Bruger XML til asynkron dataudveksling
Standarder i industrien, der bruger XML:
- Sundhedssektoren: HL7 (Health Level 7)
- Rejsebranchen: OpenTravel Alliance
- Finans: FpML (Financial products Markup Language)
- Ejendoms‑ og realkredit: MISMO
- Offentlig dataudveksling: National Information Exchange Model
XML i videnskaben:
Inden for meteorologi bruges XML til operationel vejrinformationsrepræsentation i overensstemmelse med IWXXM‑standarderne. På samme måde er Darwin Information Typing Architecture (DITA) en XML‑standard, der er udbredt i udgivelsesbranchen.
For praktisk implementering, se vores vejledning om hvordan man læser og redigerer XML i Python, Java og JavaScript.
2. Nøgleterminologi i XML
Forståelse af den grundlæggende terminologi i XML er afgørende for effektivt at arbejde med XML‑dokumenter.
Tegn
Et XML‑dokument er en sekvens af Unicode‑tegn. XML 1.1 tillader næsten alle Unicode‑tegn, bortset fra Null‑tegnet (U+0000), som er strengt forbudt.
Processor og applikation
- XML‑processoren (eller parseren) læser og analyserer XML‑mærkningen.
- Applikationen modtager struktureret data fra processoren og handler på den.
Markup og indhold
XML opdeler tegn i markup og indhold:
- Markup: Omfatter elementer, attributter og entiteter (f.eks.
<tag>og&). - Indhold: De faktiske data inden i elementerne.
- CDATA‑sektioner: Tillader tekst, der ikke skal parses som markup, omsluttet af
<![CDATA[ ... ]]>.
Tags og elementer
- Tags: Markup‑konstruktioner omsluttet af
< >.<section>(Start‑tag)</section>(Slut‑tag)<line-break />(Tom‑element‑tag)
- Elementer: Logiske komponenter defineret af tags.
- Eksempel:
<greeting>Hello, world!</greeting>
- Eksempel:
Attributter
Attributter giver metadata for elementer ved hjælp af navne‑værdi‑par. Eksempel:
<img src="image.jpg" alt="Description" />
src="image.jpg"ogalt="Description"er attributter for<img>‑elementet.
3. Tegn og escapning i XML
Gyldige Unicode‑tegn i XML
XML‑dokumenter tillader kun specifikke Unicode‑tegn for at sikre korrekt parsing.
Tilladte tegn i XML 1.0:
- Kontroltegn:
U+0009(Tab)U+000A(Line Feed)U+000D(Carriage Return)
- Teksttegn:
U+0020–U+D7FFU+E000–U+FFFDU+10000–U+10FFFF
XML 1.1‑forbedringer:
- Tillader alle U+0001–U+001F kontroltegn, men de skal escapes.
- U+0000 (Null‑tegn) forbliver forbudt.
Almindelige XML‑kodninger:
XML understøtter Unicode‑baserede kodninger, herunder:
- UTF-8 (anbefalet som standard)
- UTF-16 (skal understøttes af alle XML‑parsers)
- ASCII, ISO-8859-X (ældgamle kodninger)
Kodningsdeklaration i XML:
XML‑headeren kan specificere kodning:
<?xml version="1.0" encoding="UTF-8"?>
- Hvis ingen kodning er angivet, antages UTF-8.
- UTF-16 kræver et BOM (Byte Order Mark) for korrekt detektion.
4. Escapning af specialtegn i XML
Da XML‑syntaks reserverer visse tegn, skal de escapes for at undgå konflikter.
Foruddefinerede XML‑entiteter:
| Tegn | Escaped form | Eksempel |
|---|---|---|
< (Mindre end) | < | I <3 XML → I <3 XML |
> (Større end) | > | x > y → x > y |
& (Ampersand) | & | AT&T → AT&T |
' (Enkelt citationstegn) | ' | "O'Reilly" → O’Reilly |
" (Dobbelt citationstegn) | " | She said "hello" → She said “hello” |
Numeriske tegnreferencer:
For specialtegn, der ikke kan indtastes, anvendes numeriske referencer:
- Decimal:
中 <!-- Chinese character "中" --> - Hexadecimal:
中 <!-- Chinese character "中" --> - Eksempel:Vises som: I <3 Jörg
<message>I <3 Jörg</message>
Håndtering af binære data:
XML understøtter ikke rå binære data. Brug i stedet Base64‑kodning.
5. Kommentarer i XML
XML‑kommentarsyntaks:
<!-- This is a valid XML comment -->
Regler for XML‑kommentarer:
- Må ikke forekomme før XML‑deklarationen.
- Må ikke indeholde
--(dobbelt bindestreg) inde i kommentaren. - Entitetsreferencer ignoreres i kommentarer.
Eksempel:
<!-- This is a comment with < and & symbols -->
Konklusion
XML er en essentiel teknologi for struktureret dataudveksling, der driver web‑feeds, kontordokumenter, videnskabelige data og industristandarder. Forståelse af nøgle‑XML‑terminologi, kodningsregler og escapningsmekanismer sikrer vel‑formede XML‑dokumenter, der fungerer korrekt på tværs af forskellige systemer.
Ved at følge bedste praksis for tegnkodning og escapning kan udviklere undgå parse‑fejl og sikre kompatibilitet i XML‑baserede applikationer.