XML

XML (eXtensible Markup Language) er ein måte å strukturere tekst på, ved å definere kva ulike delar av teksten er, ved å nytte tekstkoding eller markeringskodar kalla taggar. XML er tilrådd av W3C som standard for merking av tekst. Det er ein enkel, men svært fleksibel og utbreidd standard. 

Opphavleg var det tenkt brukt for ulike former for elektronisk publisering. Etter XML vart introdusert i 1998, har det vekt stor interesse. Det har vorte ein etablert standard for utveksling av data på Internett. Dei seinare åra har det blitt det sentrale språket for kommunikasjon i såkalla B2B-applikasjonar (business-to-business), applikasjonar som talar ulike språk internt – men har eit felles språk seg imellom: XML.

Kort om XML 

XML blir ofte kalla semantisk markeringsspråk, i og med at element blir markert etter kva dei er og ikkje etter korleis dei skal sjå ut. Der den grafiske datarevolusjonen gav oss WYSIWYG (det du ser er det du får), er XML-slagordet «det du ser er det det er». I teksthandsamingsformat (eller i wikiformat) bruker vi taggar som <italics>, <bold> og liknande, t.d. viss vi vil forklare ein term eller seie at noko er viktig. Datamaskina vil forstå dette, og vise teksten slik vi vil han skal sjå ut. Men i XML fortel vi heller kva noko er. For å forklare ein term som t.d. fonasjon skriv vi t.d. fonasjon. Viss vi vil at alle termar skal skrivast i halvfeite typar seier vi det ein annan stad. På denne måten er det lett å søke etter termar (eller kva det måtte vere) i ein database.

XML set ingen grenser for kva element ein kan bruke. Dette i motsetnad til HTML og XHTML som er «ferdige» markeringsspråk laga for et gitt føremål: Publisering av tekst m.m. på verdsveven.

XML er ei enklare utgåve av SGML. Et viktig mål er å gjere utveksling av informasjon over Internett lettare. Dokument basert på XML (til dømes gjennom formata RDF, RSS, MathML, XSIL og SVG) er alle skildra på ein formell måte som gjer det mogleg å validere at strukturen er korrekt og at innhaldet har korrekt format.

Styrkar og svakheiter 
Det som gjer XML spesielt veleigna for datautveksling, er:
 Formatet er både menneskelesbart og maskinlesbart.
 Det nyttar teiknsettet Unicode, som representerer alle kjende noverande og historiske teiknsystem.
 Det er eigna til å representere generelle datastrukturar slik som databaseskjema, lister og trestrukturar.
 Formatet er sjølvdokumenterande.
 Det har ein streng syntaks som gjer data enkle å tolke for eit program.

XML vert også ofte brukt til dokumentlagring og prosessering, både over nett og lokalt. Føremonar med XML er her:
 Eit robust, logisk verifiserbart format basert på internasjonale, opne standardar.
 Hierarkisk struktur godt eigna for dei fleste (men ikkje alle) typar dokument.
 XML-dokument er tekstfiler. 
 Plattformuavhengig.
 Markeringsspråk har vore i bruk sidan 1980-talet (SGML) og har støtte i ei stor mengd programvare.

Formatet har i nokre samanhengar nokre bakdelar:
 XML-syntaks er plasskrevjande
 Modellering av overlappande (ikkje-hierarkiske) datastrukturar blir ikkje optimal.
 Mapping av XML til objektorienterte eller relasjons-paradigmar kan vere komplisert.
 Det er ikkje mogleg å bruke dei særnorske bokstavane æ, ø og å i element- eller attributtnamn (i versjon 1.0).

Syntaksreglar for XML 

Eit XML-dokument er normalt ei tekstfil med ei Unicode-basert teiknkoding som UTF-8, UTF-16 eller ISO 8859-1.

Til skilnad frå t.d. HTML må XML ha korrekt struktur og innhald for å bli handtert korrekt..
For at eit dokument skal bli rekna for «velforma» (W3C Recommendation XML 1.0 (Third Edition)), må det som minimum oppfylle følgjande:

 Det må ha eitt og berre eitt rotelement.
 Ikkje-tomme element kan berre vere ein starttagg og ein sluttagg. Tomme element kan merkast med ein lukka tagg.
 Alle attributtverdiar må settast i hermeteikn (anten eit enkelt, rett hermeteikn (') eller eit dobbelt, rett hermeteikn (")). Ein attributtverdi må byrja og avslutta med same type hermeteikn. Den typen hermeteikn som blir brukt til å omslutte attributtverdien kan brukast som ein del av attributtverdien.
 Element kan innehalde andre element, men ikkje overlappe kvarandre. 
 Det er skilnad på store og små bokstaver i elementnamn. Til dømes er <Eksempel> og </Eksempel> eit velforma par, medan <Eksempel> og </eksempel> ikkje er det.

Gode val av elementnamn gjer at ein kan byggje inn semantikk (meining) i data som ein del av strukturen. Dette gjer at XML-dokument lettere blir forstått av menneske samstundes som dei er tolkbare av dataprogram.
 
Her er et døme på eit XML-dokument, ei oppskrift på eit brød:

 <?xml version="1.0" encoding="UTF-8"?>
 
    Vanleg brød
 
   Kveitemjøl
 
   Gjær
 
   Varmtvatn
 
   Salt
 
        Bland alle ingrediensane og kna grundig.
 
     Dekk over med eit klede og sett til heving i eit varmt rom.
 
     Kna på nytt, legg i ei form, og steik ved 200 grader Celsius i 1 time.
   
 

Elementnamna kan brukast for alle moglege matoppskrifter, medan det aktuelle innhaldet (instansen) uttrykker éi brødoppskrift.

Ved å gi logiske namn til element og attributt vert det lettare for andre å forstå XML-dokumentet utan å ha lese ei forklaring av formatet først.

Eit XML-dokument som er velforma og i tillegg oppfyller krava i eit tilknytt XML-skjema-dokument eller ein DTD, blir kalla gyldig (engelsk: valid). Slike valideringsdokument for XML blir på norsk kalla XML-skjema (eng. XML schema; liten s).

Sjå òg 

 Abstract syntax tree (AST)
 CSS, XSL
 DocBook
 Dokumenttypedefinisjon, XML-skjema, DSDL, Relax NG
 DOM, SAX
 Enamel (NML)
 RSS, Atom, OPML, OML
 Keyhole Markup Language, KML
 S-expression, XML query language
 SGML, HTML, XHTML
 SVG, MathML, CML, SMIL, FpML, XBRL
 The Z Format
 UIML, XUL, XBL, XAML
 Web Service, SOAP, ebXML, UDDI, WSDL, WSFL
 XRI, XDI

Bakgrunnsstoff 

 XML-spesifikasjon
 Annotated XML Specification
 World Wide Web Consortium sin nettstad
 World Wide Web Consortium XML nettstad
 Spesifikasjonen av XML 1.1
 Spesifikasjonen av XML 1.0
 Skylde standardar
 Relax NG heimeside
 Progamvare
 Open XML Editor
 Open XML Library for Delphi/Kylix
 Online XML validator
 XML Document Authoring Tools   
 Utviklarressursar
 XeML.net 
 The XML FAQ
 xml.com
 Cafe con Leche - XML-nyhende og ressursar
 XML Cover Pages
 XML On Target  - populær XML-weblog
 IBMs developerworks XML nettsted
 XMLHack – ein ny nettstad for XML-utviklarar
 XML-L Epost-liste
 XMLPatterns.com - Utvikle effektive DTD-ar og XML Schema-dokument med XML ved å bruke strukturelle designmønster.
 Xml Sucks – problem med XML
 XML: A Language To Manage the World Wide Web 
 XML Linking: State of the Art
 Markup of XML contents  - et XSLT-verktøy som nyttar eksterne ordlister for å lage semantisk markering
 XML-DEV Mailing List 

W3C-standardar
Markeringsspråk