Hva er XML-filformatet?
.xml-filer lagrer data i formatet Extensible Markup Language, en tekstbasert standard utviklet av W3C. XML-filer kan representere enhver datastruktur i ren tekst, noe som gjør dem egnet for lagring, deling og transport av data mellom applikasjoner over internett.
XML bruker markeringsstrukturer - nøstede tagger og attributter - som definerer reglene en kodingsprosess må følge for å produsere dokumenter som er både maskinlesbare og menneskelesbare. Det ble designet som en mer tilgjengelig implementering av SGML (Standard Generalized Markup Language), forenklet for bruk på web. Filer begynner vanligvis med deklarasjonen <?xml version="1.0" encoding="UTF-8"?>, og MIME-typen er application/xml.
XML-filer bruker Unicode-koding (UTF-8 som standard) og kan åpnes og redigeres med alle standard tekstredigeringsprogrammer. Fordi formatet er selvbeskrivende - hvert element er navngitt og nøstet i et tydelig hierarki - kan dataene inspiseres uten dedikert programvare, selv om prosessering eller spørring programmatisk krever en parser eller et spørrespråk som XPath.
XML ligner på mange måter på .HTML, da begge formatene bruker markeringsspråk for å representere strukturert innhold. HTML er fokusert på presentasjon og interaksjon på nettsider, mens XML beskriver innholdet i forhold til selve dataene. De to formatene brukes sammen i mange webapplikasjoner. XML fungerer også som fundament for relaterte standarder som .XSD valideringsskjemaer, .XSL transformasjonsstiler og .RSS syndikeringsstrømmer.
Sikkerhet og trygghet
RISIKO: MEDIUMEn XML-fil er ren tekst og inneholder ingen kjørbar kode, så det er trygt å lese en. De reelle risikoene ligger hos PARSEREN, ikke filen: XML External Entity (XXE)-angrep misbruker <!DOCTYPE>/<!ENTITY>-deklarasjoner for å lese lokale filer eller utløse nettverksforespørsler, og «billion laughs»-entitetsutvidelse kan tømme minnet (tjenestenekt). Disse betyr bare noe når programvare parser upålitelig XML med eksterne entiteter og DTD-prosessering aktivert - moderne parsere deaktiverer disse som standard. For en sluttbruker som bare åpner en .xml for å lese den, er det ingen fare; advarselen er for utviklere som behandler upålitelig XML. Vær også oppmerksom på filer som ser ut som «data.xml», men som egentlig er noe annet som har fått nytt navn.
Formatdetaljer
i et nøtteskallProgrammer som åpner XML-filer
Tekniske detaljer
dyp spesifikasjon| Filkoding | Kun Unicode; UTF-8 er standard når ingen deklarasjon er til stede; UTF-16 og UTF-32 støttes og må deklareres i XML-prologen |
| MIME-type | `application/xml` (primær, per RFC 7303); `text/xml` akseptert for bakoverkompatibilitet; spesifikke dialekter kan registrere sin egen type (f.eks. `application/rss+xml`) |
| Filsignatur | Ingen fast binært magisk tall; filer åpnes vanligvis med den valgfrie XML-deklarasjonen `<?xml` (hex `3C 3F 78 6D 6C`); en UTF-8 BOM (`EF BB BF`) eller UTF-16 BOM (`FF FE` / `FE FF`) kan gå foran den |
| Dokumentstruktur | Strengt hierarki: nøyaktig ett rotelement; ubegrenset nøsting av barneelementer; åpningstagger kan bære navngitte attributter i anførselstegn; hele treet må være velformet |
| Regler for velformethet | Alle tagger må lukkes eller selvlukkes; elementer må ikke kryssnøstes; attributtverdier må stå i anførselstegn; fem forhåndsdefinerte entiteter (&, <, >, ", ') håndterer reserverte tegn |
| Valideringsmekanismer | DTD (Document Type Definition - innebygd eller ekstern `.dtd`-fil, eldre standard) og XSD (XML Schema Definition - en `.xsd`-fil selv skrevet i XML, med et rikere typesystem); Schematron tilbyr regelbasert validering |
| Støtte for navnerom | `xmlns` og `xmlns:prefix`-deklarasjoner binder element- og attributtnavn til en URI, noe som forhindrer kollisjoner når man kombinerer vokabularer fra flere kilder |
| CDATA-seksjoner | `<![CDATA[...]]>`-blokker lar råtekst som inneholder <, >, og & vises uten entitets-escaping; nyttig for å bygge inn HTML-fragmenter eller skriptkode |
| Prosesseringsinstruksjoner | `<?target instruction?>`-syntaks bygger inn applikasjonsspesifikke direktiver (f.eks. `<?xml-stylesheet type="text/xsl" href="style.xsl"?>`) utenfor XML-datamodellen |
| Spørrespråk | XPath 1.0/2.0/3.1 adresserer individuelle noder inne i et dokument; XQuery gir SQL-lignende spørring over XML-datasett; begge er W3C-standardiserte |
| XSLT-transformasjon | `.xml`-filer kan transformeres til HTML, ren tekst eller andre XML-vokabularer ved kjøretid av en XSLT-prosessor som slår sammen kildedokumentet med et `.xsl`- eller `.xslt`-stilark |
| Kommentarsyntaks | `<!-- tekst -->` kommentarer kan vises hvor som helst utenfor en tag; doble bindestreker er forbudt inne i kommentaren; kommentarer er ekskludert fra XML-datamodellen |
| Normalisering av linjeskift | Samsvarende parsere normaliserer \r\n og bare \r-sekvenser til \n før prosessering, noe som sikrer konsistent oppførsel for linjeavslutninger på tvers av plattformer |
| Entitetsdeklarasjoner | Navngitte entiteter (&navn;) og numeriske tegnreferanser (&#nnnn; desimal eller &#xHHHH; hex) bygger inn ethvert Unicode-kodepunkt; egendefinerte entiteter kan deklareres i en DTD |
| Prolog-struktur | Et XML-dokument består av en valgfri XML-deklarasjon, en valgfri DOCTYPE-deklarasjon, valgfrie prosesseringsinstruksjoner og kommentarer, etterfulgt av nøyaktig ett rotelement |
| Økosystem av dialekter | XML er basesyntaksen for XHTML, SVG, RSS, Atom, DOCX (Office Open XML), EPUB, KML og konfigurasjonsformater brukt av Android, Maven, Spring og Java EE |
| Utgitt | 1998 (XML 1.0 W3C Recommendation, February 10, 1998) |
| Åpen standard | Ja · royalty-fri |
| Spesifikasjon | www.w3.org |
XML-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om XML-filer.