1. Inledning
2. När använder man Xml? 3. Välutformade och giltiga dokument 4. Välutformade element 5. Xml-dokumentets beståndsdelar 6. Xml-tolken (parsern) 1. InledningDetta är en introduktionssida till Xml eller "Extensible Markup Language". Den börjar dock inte från början, utan det jag skriver bygger vidare på det du läst på sidorna om framförallt Xhtml och vad en DTD är. Du bör också ha ganska goda kunskaper om Html innan du börjar. Sidan tar upp teorin bakom Xml-koden och berättar hur ett Xml-dokument är uppbyggt, Xml-språkets syntax, osv. På de efterföljande sidorna får du sedan ytterligare kunskaper. 2. När använder man Xml?Xml är inte tänkt att konkurrera ut Html eller Xhtml för vanliga webbsidor. Xml kan däremot sägas ta vid där Html inte räcker till. Uttrycket "Extensible" antyder ju just detta. ordet blir på svenska ungefär "utsträckt", "utökad" eller uttänjd". Ett exempel på detta kan du se här:
Det som gör Xml så speciellt är att det saknar en bestämd och entydig DTD. Visserligen finns det webbläsare med inbyggd Xml-tolk (t.ex Internet Explorer 5 och senare), men de klarar bara väldigt grundläggande och allmän kod. Jag återkommer till detta i avsnitt 6. Xml går att bygga ut på många olika sätt. man kan skapa egna element, som antingen hanterar innehållet eller strukturen på sidan, eller hur sidan skall presenteras. Du får veta mer om hur man skapar egen kod på nästa sida. Med Xml kan man dela in innehållet både i olika kategorier (vilken informationen är) och hierarkier (hur viktig den är). Man kan anpassa innehållet efter olika läsare: webbläsare, mobiltelefoner, sökmotorer, osv. Man kan t.o.m. anpassa innehållet efter vad besökaren vill se. Xml är alltså väldigt lämpligt för olika slags dataöverföringar och format. Informationen blir inte låst till ett bestämt format utan går att anpassa, återanvända och omforma efter eget tycke och smak. Det finns många olika tillämpningar av Xml. MathML används för dokument som innehåller matematiska formler, ekvationer och liknande. Språket är en W3C-standard och går alltså att läsa om på deras webbplats [http://www.w3.org]. En annan tillämpning, som ursprungligen utvecklades från Sgml, är CML eller "Chemical Markup Language". Det används för kemisk information och formler. WML eller "Wireless Markup Language" används för information som skall hanteras av mobiltelefoner (t.ex WAP-sidor). Ytterligare en tillämpning är SMIL eller "Synchronized Multimedia Integration Language". Det är också en W3C-standard och språket används för att ange hur delarna i en multimediepresentation skall synkroniseras med varandra. Sammanfattningsvis kan man alltså säga att Xml är en aning svårare att lära sig än Html, dels eftersom koden är mer komplex och dels eftersom det inte är lika självklart vad man skall använda den till. 3. Välutformade och giltiga dokumentSom jag berättade om på sidan om Xhtml måste man vara lite mer noggrann då man kodar i Xml, jämfört med Html. Jag tänker inte räkna upp alla syntaxregler igen, utan hänvisar till sidan om Xhtml. Välutformade (ibland även "välformade" eller "well-formed") dokument följer dessa regler, men ytterligare några regler tillkommer: Den första raden i dokumentet måste vara en Xml-deklaration. Dokumentet måste innehålla ett unikt element, som kallas rotelement. Alla övriga element måste skrivas inom rotelementet. För enklare dokument räcker det oftast att man gör dem välutformade. Men använder man flera Xml-dokument eller en mer komplex kod, bör man också försöka göra dokumenten giltiga. Ett välutformat dokument är giltigt ("valid" på engelska) om det följer en godkänd DTD. Följer det å andra sidan DTD:n och bryter mot syntaxreglerna är det inte giltigt – men kan ändå räknas som välutformat. Allt detta kommer att klarna så småningom, så ha tålamod så skall jag förklara allt detta närmare! 4. Välutformade elementAlla elementnamn är stavningskänsliga. Det läste du om på sidan om Xhtml. Det betyder att och inte är samma element, som i Html. Man får i vissa fall använda andra tecken än bokstäver i elementnamnen. Ett elementnamn får t.ex inledas med understrykningstecken (eller "liggstreck"): <_elementnamn></p> Elementnamn får innehålla (men inte inledas med) följande tecken: siffror: 1, 2, 3,4, osv.
Det måste dock finnas minst en bokstav i elementnamnet. På sidan "Konstiga tecken" (i sektionen om webgodis) berättade jag om att alla tecken inte fungerar att visa på skärmen. I Html måste man därför översätta vissa tecken, som du kunde läsa om på sidan "ISO-8859-1" (i samma sektion). Men i Xml kan man inte alltid använda Html-koden, dvs de umlauts som finns. Bokstaven å kan alltså inte översättas med å utan man måste använda å i stället. Du kan läsa mer om dessa teckenkoder på sidan ISO-8859-1. Gå dit > Ytterligare en regel är att kommentarer inne i koden måste skrivas med exakt två streck: <!-- Skriver man med fler eller färre streck så fungerar inte kommentaren och sidan riskerar att feltolkas av webbläsaren. 5. Xml-dokumentets beståndsdelarXml-dokumentet är uppbyggt av lite fler beståndsdelar än en Html-sida. Bilden nedan visar en skiss över Xml-dokumentets delar eller dokumentinstanser. Prologen anger hur Xml-dokumentet skall behandlas. Den kan innehålla flera olika delar, bl.a dem du ser i bilden. En Xml-deklaration ser ut så här: <?xml version"1.0" encoding="ISO-8859-1"?>
Attributet encoding talar om vilken teckenuppsättning som skall användas. Använder man UTF-8, som är standard i Xml, kan man visserligen hoppa över det och skriva: <?xml version"1.0"?> Men för säkerhets skull bör man ändå försöka ta med det. Det lär finnas webbläsare som annars inte alls begriper att man använder UTF-8. Som du ser inleds deklarationen med <? och avslutas med ?>. Dessa delar kallas processinstruktioner (även "processing instructions" eller "PI"). Dessa tecken används alltså för att tala om hur dokumentet skall tolkas och visas. Processinstruktioner byggs upp enligt följande regel: <?applikationsnamn applikationsinstruktion?> I senare avsnitt skall vi titta närmare på dessa företeelser. DTD:n anger man sedan antingen direkt i dokumentets prolog eller genom att hänvisa till en webbplats. Jag berättar mer om detta på nästa sida. Roten inleds alltid med rotelementet, vilket definieras i den DTD man använder. Rotelementet motsvarar BODY-elementet i Html. På samma sätt som i Html får det i Xml aldrig finnas mer än ett rotelement. 6. Xml-tolken (parsern)Som du märker är det mycket man behöver veta innan man sätter igång med att koda. En viktig detalj är att man behöver ett program som kan kontrollera och tolka Xml-koden. Det är ju inte så konstigt. På samma sätt gäller ju för Html-koden: för att en Html-sida skall kunna visas på bildskärmen måste en tolk se över koden. Är koden korrekt så kan sidan visas. Vanliga webbläsare (version 5 och högre av Internet Explorer, osv) har en enkel Xml-tolk inbyggd. Man använder ofta uttrycket parser om denna slags programvara. En parser kan både kontrollera (validera) koden och visa den på bildskärmen. på sidan med Surftips för programmerare och webbutvecklare har jag listat några olika parsers, som kan lite mer än dem i webbläsarna. Det finns i princip två slags Xml-parsers:
Skillnaden mellan dem är att ickevaliderande tolkar kontrollerar att dokumentet innehåller välutformad Xml-syntax. Validerande tolkar kontrollerar även om syntaxen stämmer överens med den DTD man angett. Xml-tolken i Internet Explorer, version 5 och 6, heter MSXML och finns inbyggd i programmet. På Microsofts webbplats finns också plugins att ladda hem, för den som vill utöka parserns kapacitet ytterligare. MSXML är icke-validerande och jag kommer att utgå ifrån den i det första exemplet. Jag har gjort en sida som du skall öppna i din webbläsare. På sidan "Dokumentstrukturer" berättar jag mer om vad det är du ser och hur sidan är gjord. |