Extensible Markup Language, XML, är ett universellt och utbyggbart märkspråk och en förenklad efterträdare till SGML. XML blev en W3C-rekommendation 10 februari 1998. XML-rekommendationen beskriver både strukturen på XML och vad som krävs av en XML-tolk. Bland annat XHTML, XSL och SMIL, är baserade på XML.
Den här artikeln behöver källhänvisningar för att kunna verifieras. (2020-11) Åtgärda genom att lägga till pålitliga källor (gärna som fotnoter). Uppgifter utan källhänvisning kan ifrågasättas och tas bort utan att det behöver diskuteras på diskussionssidan. |
XML | |
Filändelse | .xml |
---|---|
MIME-typ | application/xml, text/xml (undanbedd) |
Utvecklad av | W3C |
Typ av format | Märkspråk |
Utökad från | SGML |
Utökad till | XHTML, RSS, MathML ... |
Standard | 1.0 (4:e upplagan) |
XML-koden kan inte definiera vilka element eller attribut som kan användas. Denna definition görs av en dokumentmall som antingen är intern eller länkas in i dokumentet. Syftet med XML är att kunna utväxla data mellan olika informationssystem. Detta görs genom att skicka data som ren text; text som även kan förstås av människor.
Den 16 augusti 2006 blev den senaste specifikationen av XML, XML 1.1 (andra upplagan), en W3C-rekommendation[1].
Syntax
Grundsyntaxen för ett element i XML ser ut såhär:
<name attribute="value">content</name>
XML är dessutom skiftlägeskänsligt, således är name
, Name
och NAME
tre olika element.
Genom att kombinera flera element i en hierarki kan man beskriva olika information. Följande exempel är en boksamling beskriven med XML:
<?xml version="1.0" encoding="iso-8859-1"?>
<boksamling>
<bok sprak="engelska">
<titel>XSLT Cookbook</titel>
<forfattare>Sal Mangano</forfattare>
</bok>
<bok sprak="svenska">
<titel>Skriv med XML</titel>
<forfattare>Åsa Blom</forfattare>
</bok>
</boksamling>
Deklaration
Första raden i exemplet ovan är en XML-deklaration. Det är en valfri rad som talar om vilken version av XML som används men kan också innehålla information om teckenkodning samt externa filer.
Element
Element är grunden i ett XML-dokument. Ett element består vanligtvis av en start- och en sluttagg, och kan ha olika attribut och innehåll. Starttaggen består av namnet inom vinkelparenteser, <titel>
, och sluttaggen består av samma namn med vinkelparenteser men med ledande snedstreck, </titel>
. Innehållet i ett element är allt som finns mellan start- och sluttaggen. Det kan vara både text och andra element.
Så här kan ett komplett element, med starttagg, sluttagg och innehåll, se ut:
<titel>Skriv med XML</titel>
Attribut
Förutom innehållet i ett element kan ett element även ha attribut. Ett attribut läggs till i starttaggen och har ett namn och ett värde. Ett attributnamn får bara förekomma en gång i en tagg och värdet måste alltid vara inom enkla eller dubbla citationstecken. Så här kan användandet av attribut se ut:
<bok sprak="engelska">
Här har elementet bok fått ett attribut språk med värdet engelska.
Inkapsling
Element kan innehålla andra element:
<bok sprak="engelska">
<titel>XSLT Cookbook</titel>
<forfattare>Sal Mangano</forfattare>
</bok>
Detta är ett element (bok) som innehåller 2 andra element (titel och författare). XML kräver att element är korrekt inkapslade, de får aldrig överlappa varandra. Därför är denna kod felaktig:
<h1>Här är min <em>Rubrik</h1> <p>Med</em> ett stycke.</p>
Detta skulle istället ha skrivits som:
<h1>Här är min <em>Rubrik</em></h1> <p><em>Med</em> ett stycke.</p>
Rotelement
Alla XML dokument måste ha exakt ett rotelement. I vårt exempel var boksamling rotelementet som innehöll alla andra element i dokumentet. Följande exempel är alltså ett felaktigt XML-dokument:
<?xml version="1.0" encoding="iso-8859-1"?>
<bok>Första boken</bok>
<bok>Andra boken</bok>
Tomma element
Element som inte har något innehåll kan istället för att använda sig av en sluttagg för att stängas skrivas som ett tomt element. Detta görs genom att lägga till ett snedstreck innan den stängande vinkelparentesen i en starttagg. Dessa tre skrivsätt är ekvivalenta:
<bok></bok>
<bok />
<bok/>
Entiteter
En entitet i XML är en bit data som kan representeras med ett alternativt namn och används till exempel när det finns risk för data tolkas om vid skillnader mellan författarens och läsarnas datormiljöer.
Det finns 5 st fördeklarerade entitetreferenser i XML:
- & — (et (ampersand på engelska), &)
- < — (mindre än, <)
- > — (större än, >)
- ' — (apostrof, ')
- " — (citationstecken, ")
Andra entitetsreferenser ska deklareras i dokumentmallen. Referenser kan referera till andra referenser.
Användning
Eftersom XML är utbyggbart så har många olika märkspråk baserats på det. Exempel på tillämpningar av XML är att beskriva webbsidor (XHTML) och multimediasynkronisation (SMIL), och att utväxla information i olika system, exempelvis affärssystem.
XML används för att strukturera och organisera information/data, till skillnad från till exempel HTML som används till att åskådliggöra och visa data. Genom tillägg som XPath och XSLT kan man (utgående från ett XML-dokument) automatgenerera HTML-kod för att visas i till exempel en webbläsare.
För att kunna hantera ett XML-dokument, krävs att sändare och mottagare av informationen har kommit överens om vilka element och attribut som ska kunna användas. Därför måste man ha en gemensam dokumentmall.
Härledda språk
Flera mer eller mindre formellt definierade märkspråk är baserade på XML och har bestämda dokumentmallar som man kan använda sig av. Några av dessa språk är:
- Canonical XML
- CCXML: Voice Browser Call Control
- ebXML: Electronic Business using XML
- ESB: Enterprise Service Bus
- FOAF+DOAC
- MIL Moblet Instruction Language
- RDF: Resource Description Framework
- RSS: Rich Site Summary/Really Simple Syndication
- SRGS: Speech Recognition Grammar Specification
- SSML: Speech Synthesis Markup Language
- SyncML
- UDDI: Universal Description, Discovery, and Integration
- Voice XML
- WML: Wireless Markup Language
- WSDL: Web Service Definition language
- XBRL: eXtensible Business Reporting Language
- XForms
- XHTML: Extensible HyperText Markup Language
- XInclude: XML Inclusions
- XLink
- XMI: XML Metadata Interchange
- XML Schema Languages
- DTD: Document Type Definition
- XML Schema, XSD: XML Schema (W3C)
- RELAX NG
- SOX: Schema för objektorienterad XML
- XOP: XML-binary Optimized Packaging
- XPath
- XPointer
- XQuery: XML Query Language
- XSL: eXtensible Stylesheet Language
- XSLT: XSL Transformation
- XUL: XML User interface Language
Se även
- HTML: HyperText Markup Language
- Web Services
- W3C: World Wide Web Consortium
- Svenska W3C
- OIOXML