Wat is het XML-bestandsformaat?
.xml-bestanden slaan gegevens op in het Extensible Markup Language-formaat, een standaard voor platte tekst ontwikkeld door het W3C. XML-bestanden kunnen elke gegevensstructuur vertegenwoordigen in platte tekst, waardoor ze geschikt zijn voor het opslaan, delen en transporteren van gegevens tussen applicaties over het internet.
XML maakt gebruik van opmaakstructuren - geneste tags en attributen - die de regels definiëren die een coderingsproces moet volgen om documenten te produceren die zowel machineleesbaar als menselijk leesbaar zijn. Het is ontworpen als een toegankelijkere implementatie van SGML (Standard Generalized Markup Language), vereenvoudigd voor webgebruik. Bestanden beginnen doorgaans met de declaratie <?xml version="1.0" encoding="UTF-8"?>, en het MIME-type is application/xml.
XML-bestanden gebruiken Unicode-codering (standaard UTF-8) and kunnen worden geopend en bewerkt met elke standaard teksteditor. Omdat het formaat zelfbeschrijvend is - elk element heeft een naam en is genest binnen een duidelijke hiërarchie - kunnen de gegevens worden geïnspecteerd zonder speciale software, hoewel het programmatisch verwerken of opvragen ervan een parser of een querytaal zoals XPath vereist.
XML lijkt in veel opzichten op .HTML, aangezien beide formaten opmaaktaal gebruiken om gestructureerde inhoud weer te geven. HTML is gericht op de presentatie en interactie van webpagina's, terwijl XML de inhoud beschrijft in relatie tot de gegevens zelf. De twee formaten worden in veel webapplicaties samen gebruikt. XML dient ook als basis voor gerelateerde standaarden zoals .XSD-validatieschema's, .XSL-transformatie-stylesheets en .RSS-syndicatiefeeds.
Beveiliging & veiligheid
RISICO: MEDIUMEen XML-bestand is platte tekst en bevat geen uitvoerbare code, dus het lezen ervan is veilig. De echte risico's liggen bij de PARSER, niet bij het bestand: XML External Entity (XXE) aanvallen misbruiken <!DOCTYPE>/<!ENTITY> declaraties om lokale bestanden te lezen of netwerkverzoeken te activeren, en „billion laughs” entiteitsuitbreiding kan het geheugen uitputten (denial of service). Deze zijn alleen van belang wanneer software onbetrouwbare XML verwerkt met externe entiteiten en DTD-verwerking ingeschakeld - moderne parsers schakelen deze standaard uit. Voor een eindgebruiker die gewoon een .xml opent om deze te lezen, is er geen gevaar; de waarschuwing is voor ontwikkelaars die onbetrouwbare XML verwerken. Pas ook op voor bestanden die eruitzien als „data.xml” maar eigenlijk iets anders zijn dat hernoemd is.
Formaatdetails
in een notendopProgramma's die XML-bestanden openen
Technische details
diepe specificaties| Bestandscodering | Alleen Unicode; UTF-8 is de standaard wanneer er geen declaratie aanwezig is; UTF-16 en UTF-32 worden ondersteund en moeten worden gedeclareerd in de XML-proloog |
| MIME-type | `application/xml` (primair, volgens RFC 7303); `text/xml` geaccepteerd voor legacy-compatibiliteit; specifieke dialecten kunnen hun eigen type registreren (bijv. `application/rss+xml`) |
| Bestandssignatuur | Geen vast binair magisch getal; bestanden openen doorgaans met de optionele XML-declaratie `<?xml` (hex `3C 3F 78 6D 6C`); een UTF-8 BOM (`EF BB BF`) of UTF-16 BOM (`FF FE` / `FE FF`) kan eraan voorafgaan |
| Documentstructuur | Strikte hiërarchie: precies één root-element; onbeperkte nesting van kind-elementen; openingstags kunnen benoemde, geciteerde attributen bevatten; de gehele boom moet goedgevormd zijn |
| Regels voor goedgevormdheid | Alle tags moeten gesloten of zelfsluitend zijn; elementen mogen elkaar niet kruisend nesten; attribuutwaarden moeten tussen aanhalingstekens staan; vijf vooraf gedefinieerde entiteiten (&, <, >, ", ') verwerken gereserveerde tekens |
| Validatiemechanismen | DTD (Document Type Definition - inline of extern `.dtd`-bestand, oudere standaard) en XSD (XML Schema Definition - een `.xsd`-bestand dat zelf in XML is geschreven, met een rijker typesysteem); Schematron biedt op regels gebaseerde validatie |
| Namespace-ondersteuning | `xmlns` en `xmlns:prefix` declaraties binden element- en attribuutnamen aan een URI, wat botsingen voorkomt bij het combineren van vocabulaires uit meerdere bronnen |
| CDATA-secties | `<![CDATA[...]]>` blokken laten ruwe tekst met <, >, en & verschijnen zonder entiteit-escaping; nuttig voor het insluiten van HTML-fragmenten of scriptcode |
| Verwerkingsinstructies | `<?target instruction?>` syntaxis sluit applicatiespecifieke richtlijnen in (bijv. `<?xml-stylesheet type="text/xsl" href="style.xsl"?>`) buiten het XML-datamodel |
| Querytalen | XPath 1.0/2.0/3.1 adresseert individuele nodes binnen een document; XQuery biedt SQL-achtige querying over XML-datasets; beide zijn W3C-gestandaardiseerd |
| XSLT-transformatie | `.xml`-bestanden kunnen tijdens runtime worden getransformeerd naar HTML, platte tekst of andere XML-vocabulaires door een XSLT-processor die het brondocument samenvoegt met een `.xsl`- of `.xslt`-stylesheet |
| Commentaar-syntaxis | `<!-- tekst -->` commentaren kunnen overal buiten een tag verschijnen; dubbele streepjes zijn verboden binnen de commentaar-body; commentaren zijn uitgesloten van het XML-datamodel |
| Newline-normalisatie | Conforme parsers normaliseren \r\n en kale \r sequenties naar \n vóór verwerking, wat zorgt voor consistent gedrag van regeleinden over verschillende platforms |
| Entiteitsdeclaraties | Benoemde entiteiten (&name;) en numerieke tekenreferenties (&#nnnn; decimaal of &#xHHHH; hex) sluiten elk Unicode-codepunt in; aangepaste entiteiten kunnen worden gedeclareerd in een DTD |
| Proloogstructuur | Een XML-document bestaat uit een optionele XML-declaratie, een optionele DOCTYPE-declaratie, optionele verwerkingsinstructies en commentaren, gevolgd door precies één root-element |
| Ecosysteem van dialecten | XML is de basissyntaxis voor XHTML, SVG, RSS, Atom, DOCX (Office Open XML), EPUB, KML en configuratieformaten gebruikt door Android, Maven, Spring en Java EE |
| Uitgebracht | 1998 (XML 1.0 W3C Recommendation, February 10, 1998) |
| Open standaard | Ja · royaltyvrij |
| Specificatie | www.w3.org |
XML conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over XML-bestanden.