Hvad er XML-filformatet?
.xml-filer gemmer data i formatet Extensible Markup Language, en almindelig tekststandard udviklet af W3C. XML-filer kan repræsentere enhver datastruktur i almindelig tekst, hvilket gør dem velegnede til lagring, deling og transport af data mellem applikationer over internettet.
XML bruger markup-strukturer - indlejrede tags og attributter - der definerer de regler, en kodningsproces skal følge for at producere dokumenter, der er både maskinlæsbare og menneskeligt læsbare. Det blev designet som en mere tilgængelig implementering af SGML (Standard Generalized Markup Language), forenklet til webbrug. Filer begynder typisk med erklæringen <?xml version="1.0" encoding="UTF-8"?>, og MIME-typen er application/xml.
XML-filer bruger Unicode-kodning (UTF-8 som standard) og kan åbnes og redigeres med enhver standard teksteditor. Da formatet er selvbeskrivende - hvert element er navngivet og indlejret i et klart hierarki - kan dataene inspiceres uden dedikeret software, selvom behandling eller forespørgsel af dem programmatisk kræver en parser eller et forespørgselssprog som XPath.
XML ligner på mange måder .HTML, da begge formater bruger markup-sprog til at repræsentere struktureret indhold. HTML fokuserer på præsentation og interaktion på websider, mens XML beskriver indhold i forhold til selve dataene. De to formater bruges sammen i mange webapplikationer. XML fungerer også som fundament for relaterede standarder såsom .XSD-valideringsskemaer, .XSL-transformations-stylesheets og .RSS-syndikeringsfeeds.
Sikkerhed og tryghed
RISIKO: MEDIUMEn XML-fil er almindelig tekst og indeholder ingen eksekverbar kode, så det er sikkert at læse en. De reelle risici ligger i selve PARSEREN, ikke filen: XML External Entity (XXE)-angreb misbruger <!DOCTYPE>/<!ENTITY>-erklæringer til at læse lokale filer eller udløse netværksanmodninger, og «billion laughs»-entitetsudvidelse kan udtømme hukommelsen (denial of service). Disse betyder kun noget, når software parser upålidelig XML med eksterne entiteter og DTD-behandling aktiveret - moderne parsere deaktiverer disse som standard. For en slutbruger, der bare åbner en .xml for at læse den, er der ingen fare; advarslen er til udviklere, der behandler upålidelig XML. Pas også på filer, der ligner «data.xml», men faktisk er noget andet, der er omdøbt.
Formatdetaljer
kort fortaltProgrammer der åbner XML-filer
Tekniske detaljer
dyb specifikation| Filkodning | Kun Unicode; UTF-8 er standarden, når ingen erklæring er til stede; UTF-16 og UTF-32 understøttes og skal erklæres i XML-prologen |
| MIME-type | `application/xml` (primær, jf. RFC 7303); `text/xml` accepteres for bagudkompatibilitet; specifikke dialekter kan registrere deres egen type (f.eks. `application/rss+xml`) |
| Filsignatur | Intet fast binært magisk nummer; filer åbner typisk med den valgfrie XML-erklæring `<?xml` (hex `3C 3F 78 6D 6C`); en UTF-8 BOM (`EF BB BF`) eller UTF-16 BOM (`FF FE` / `FE FF`) kan gå forud for den |
| Dokumentstruktur | Strengt hierarki: præcis ét rodelement; ubegrænset indlejring af underordnede elementer; start-tags kan bære navngivne attributter i anførselstegn; hele træet skal være velformet |
| Regler for velformethed | Alle tags skal lukkes eller være selvlukkende; elementer må ikke kryds-indlejres; attributværdier skal være i anførselstegn; fem foruddefinerede entiteter (&, <, >, ", ') håndterer reserverede tegn |
| Valideringsmekanismer | DTD (Document Type Definition - indlejret eller ekstern `.dtd`-fil, ældre standard) og XSD (XML Schema Definition - en `.xsd`-fil selv skrevet i XML, med et rigere typesystem); Schematron tilbyder regelbaseret validering |
| Namespace-understøttelse | `xmlns` og `xmlns:prefix`-erklæringer binder element- og attributnavne til en URI, hvilket forhindrer kollisioner, når man kombinerer ordforråd fra flere kilder |
| CDATA-sektioner | `<![CDATA[...]]>`-blokke lader rå tekst indeholdende <, >, og & optræde uden entitets-escaping; nyttigt til indlejring af HTML-fragmenter eller script-kode |
| Behandlingsinstruktioner | `<?target instruction?>`-syntaks indlejrer applikationsspecifikke direktiver (f.eks. `<?xml-stylesheet type="text/xsl" href="style.xsl"?>`) uden for XML-datamodellen |
| Forespørgselssprog | XPath 1.0/2.0/3.1 adresserer individuelle noder i et dokument; XQuery giver SQL-lignende forespørgsler over XML-datasæt; begge er W3C-standardiserede |
| XSLT-transformation | `.xml`-filer kan transformeres til HTML, almindelig tekst eller andre XML-ordforråd ved kørsel af en XSLT-processor, der fletter kildedokumentet med et `.xsl` eller `.xslt` stylesheet |
| Kommentarsyntaks | `<!-- tekst -->` kommentarer kan optræde hvor som helst uden for et tag; dobbelte bindestreger er forbudt inde i selve kommentaren; kommentarer er udelukket fra XML-datamodellen |
| Normalisering af linjeskift | Konforme parsere normaliserer \r\n og bare \r sekvenser til \n før behandling, hvilket sikrer ensartet linjeskift-adfærd på tværs af platforme |
| Entitetserklæringer | Navngivne entiteter (&navn;) og numeriske tegnreferencer (&#nnnn; decimal eller &#xHHHH; hex) indlejrer ethvert Unicode-kodepunkt; brugerdefinerede entiteter kan erklæres i en DTD |
| Prolog-struktur | Et XML-dokument består af en valgfri XML-erklæring, en valgfri DOCTYPE-erklæring, valgfrie behandlingsinstruktioner og kommentarer, efterfulgt af præcis ét rodelement |
| Økosystem af dialekter | XML er basissyntaksen for XHTML, SVG, RSS, Atom, DOCX (Office Open XML), EPUB, KML og konfigurationsformater brugt af Android, Maven, Spring og Java EE |
| Udgivet | 1998 (XML 1.0 W3C Recommendation, February 10, 1998) |
| Åben standard | Ja · royaltyfri |
| Specifikation | www.w3.org |
XML-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om XML-filer.