Grunderna i XML

Flash Player 9 och senare, Adobe AIR 1.0 och senare

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.