XML är en standard för att presentera strukturerad information så att den lätt kan hanteras i datorer, dessutom ska koden vara rimligt enkel att skriva och förstå. XML är en förkortning för eXtensible Markup Language. XML-standarden finns tillgänglig på webbplatsen
www.w3.org/XML/
.
XML ger dig ett standardiserat och bekvämt sätt att kategorisera data så att de blir lättare att läsa, hämta och förändra. I XML används en träd- och taggstruktur som påminner om HTML. Här följer ett enkelt exempel på XML-data:
<song>
<title>What you know?</title>
<artist>Steve and the flubberblubs</artist>
<year>1989</year>
<lastplayed>2006-10-17-08:31</lastplayed>
</song>
XML-data kan också vara mer komplext med taggar som kapslas in i andra taggar samt innehålla attribut och andra strukturella komponenter. Här följer ett mer avancerat exempel på XML-data:
<album>
<title>Questions, unanswered</title>
<artist>Steve and the flubberblubs</artist>
<year>1989</year>
<tracks>
<song tracknumber="1" length="4:05">
<title>What do you know?</title>
<artist>Steve and the flubberblubs</artist>
<lastplayed>2006-10-17-08:31</lastplayed>
</song>
<song tracknumber="2" length="3:45">
<title>Who do you know?</title>
<artist>Steve and the flubberblubs</artist>
<lastplayed>2006-10-17-08:35</lastplayed>
</song>
<song tracknumber="3" length="5:14">
<title>When do you know?</title>
<artist>Steve and the flubberblubs</artist>
<lastplayed>2006-10-17-08:39</lastplayed>
</song>
<song tracknumber="4" length="4:19">
<title>Do you know?</title>
<artist>Steve and the flubberblubs</artist>
<lastplayed>2006-10-17-08:44</lastplayed>
</song>
</tracks>
</album>
Observera att detta XML-dokument innehåller andra kompletta XML-strukturer (t.ex. taggen
song
och underordnade taggar). Det visar dessutom andra XML-strukturer som attribut (
tracknumber
och
length
i taggen
song
) och taggar som innehåller andra taggar i stället för data (t.ex. taggen
tracks
).
Komma i gång med XML
För dig som har lite eller ingen erfarenhet av XML följer här en kortfattad beskrivning av de vanligaste aspekterna på XML-data. XML-data skrivs som vanlig oformaterad text med en speciell syntax för att organisera informationen i ett strukturerat format. Vanligtvis kallas en uppsättning med XML-data för ett
XML-dokument
. I XML-format är data organiserade i
element
(vilket är ett enkelt dataobjekt eller en behållare för andra element) med hjälp av en hierarkisk struktur. Alla XML-dokument har ett element som översta nivå eller huvudobjekt. Inom detta rotelement kan det finnas viss information, men det troligaste är att det finns andra element som i sin tur innehåller andra element osv. I XML-dokumentet nedan finns information om ett musikalbum:
<song tracknumber="1" length="4:05">
<title>What do you know?</title>
<artist>Steve and the flubberblubs</artist>
<mood>Happy</mood>
<lastplayed>2006-10-17-08:31</lastplayed>
</song>
Varje element urskiljs av en uppsättning
taggar
. Elementens namn omges av vinkelparenteser (mindre-än- och större-än-tecken). Starttaggen visar var elementet startar och innehåller ett elementnamn:
<title>
Sluttaggen föregås av ett snedstreck:
</title>
Om ett element inte har något innehåll kan det skrivas som ett tomt element. I XML är elementet:
<lastplayed/>
identiskt med detta element:
<lastplayed></lastplayed>
Förutom det som elementen innehåller mellan start- och sluttaggen kan ett element även innehålla andra värden,
attribut
, som definieras i elementets starttagg. Exempelvis definierar nästa XML-element ett attribut med namnet
length
, som innehåller värdet
"4:19"
<song length="4:19"></song>
Varje XML-element har ett innehåll vilket antingen är ett värde, ett eller flera XML-element eller ingenting (för ett tomt element).
Lär dig mer om XML
Det finns ett antal böcker och resurser i ämnet om du vill lära dig mer om hur du arbetar med XML. Du kan dessutom titta på följande webbplatser:
ActionScript-klasser för att arbeta med XML
ActionScript 3.0 innehåller flera klasser som används för att arbeta med XML-strukturerad information. De två huvudklasserna är:
-
XML: Representerar ett enskilt XML-element som kan vara ett XML-dokument med flera underordnade element eller ett element med ett värde i ett dokument.
-
XMLList: Representerar en uppsättning av XML-element. Ett XMLList-objekt används när det finns flera XML-element som är relaterade till varandra (på samma nivå och under samma överordnade element i XML-dokumentets hierarki). En XMLList-instans är exempelvis det enklaste sättet att arbeta med den här uppsättningen av XML-element (förmodligen i ett XML-dokument), som i detta exempel:
<artist type="composer">Fred Wilson</artist>
<artist type="conductor">James Schmidt</artist>
<artist type="soloist">Susan Harriet Thurndon</artist>
För mer avancerade tillämpningar används XML-namnutrymmen. ActionScript innehåller även klasserna Namespace och QName. Mer information om publicering finns i
Använda XML-namnutrymmen
.
Förutom de inbyggda klasserna för att arbeta med XML, innehåller ActionScript 3.0 också flera operatorer som tillhandahåller funktioner för att hämta och arbeta med XML-data. Detta sätt att arbeta med XML genom att använda dessa klasser och operatorer kallas ECMAScript för XML (E4X) och det definieras i specifikationen för ECMA-357, version 2.
Viktiga termer och begrepp
Följande referenslista innehåller viktiga termer som du kan stöta på när du programmerar hanteringsrutiner för XML:
-
Element
-
Ett enskilt objekt i ett XML-dokument som identifieras av innehållet mellan start- och sluttaggen (inklusive taggarna). XML-element kan innehålla textdata eller andra element, eller vara tomt.
-
Tomt element
-
Ett XML-element som inte innehåller underordnade element. Tomma element skrivs ofta som självstängande taggar (t.ex.
<element/>
).
-
Dokument
-
En enskild XML-struktur. Ett XML-dokument kan innehålla ett antal element (eller bestå av ett tomt element), men ett XML-dokument måste ha ett toppnivåelement som innehåller alla andra element i dokumentet.
-
Nod
-
Ett annat namn för ett XML-dokument.
-
Attribut
-
Ett namngivet värde associerat med ett element som skrivs in i elementets starttagg med formatet
attributename="value"
, i stället för att skrivas som ett separat underordnat element kapslat i elementet.