XML för nybörjare

Du kanske har hört talas om XML (Extensible Markup Language), och kanske har du också fått höra en rad argument för att din organisation borde använda det. Men vad är XML egentligen? I den här artikeln förklaras grunderna i XML – vad det är och hur det fungerar.

Artikelinnehåll


En snabbtitt på märkning, koder och taggar

Om man vill förstå XML kan det vara bra att känna till vad märkning av data innebär. Människor har framställt dokument i många hundra år, och märkning av dokumenten har pågått lika länge. När en lärare rättar elevernas uppsatser är det till exempel en typ av märkning. Läraren ber eleven flytta stycken, klargöra meningar, rätta stavfel och så vidare. Genom märkning av ett dokument definierar vi struktur, innebörd och utseende för informationen i dokumentet. Om du någon gång har använt funktionen Spåra ändringar i Microsoft Office Word har du använt en datoriserad form av märkning.

I datorvärlden utförs märkningen av ett dokument med hjälp av koder, så kallade taggar. Med hjälp av taggarna definieras informationens struktur, utseende och – när det gäller XML – innebörd.

HTML-koden för den här artikeln är ett bra exempel på hur datoriserad märkning fungerar. Om du bläddrar igenom den (högerklicka på sidan i Microsoft Internet Explorer och klicka på Visa källa) ser du en blandning av läsbar text och HTML-taggar (Hypertext Markup Language), till exempel <p> och <h2>. Taggarna i HTML- och XML-dokument är lätta att känna igen, eftersom de står inom vinkelparentes. I källkoden för den här artikeln används HTML-taggarna för flera olika ändamål. De definierar till exempel början och slutet på varje stycke (<p> ... </p>) och markerar placeringen av varje bild.

Överst på sidan Överst på sidan

Vad är det som gör det till XML?

Både HTML- och XML-dokument innehåller information som är omgiven av taggar, men där slutar likheterna mellan de två kodspråken. I HTML definierar taggarna hur informationen ska se ut och fungera – här ska rubrikerna placeras, där börjar ett stycke o.s.v. I XML definierar taggarna informationens struktur och innebörd – vad informationen är.

Genom att beskriva informationens struktur och innebörd kan du möjliggöra återanvändning av den informationen på hur många sätt som helst. Om du till exempel har ett block med försäljningsinformation och varje element i blocket identifieras tydligt kan du infoga just de element du behöver i en försäljningsrapport och andra element i en bokföringsdatabas. För att uttrycka det annorlunda: du kan använda ett system för att generera informationen och märka den med XML-taggar och därefter bearbeta informationen i ett obegränsat antal andra system, oavsett maskinvaruplattform och operativsystem. Denna flexibilitet är anledningen till att XML har blivit en av de mest populära teknikerna för datautbyte.

Kom ihåg det här när du fortsätter:

  • Du kan inte använda HTML i stället för XML. Däremot kan du lägga till HTML-taggar till XML-informationen och visa den på en webbsida.
  • I HTML finns det en begränsad uppsättning taggar som är gemensam för alla användare.
  • I XML kan du skapa vilka taggar som helst som du behöver för att beskriva informationen och dess struktur. Du kanske till exempel behöver lagra och dela information om husdjur. Då kan du skapa följande XML-kod:

<?xml version="1.0"?>
<KATT>
  <NAMN>Izzy</NAMN>
  <RAS>Siamese</RAS>
  <ÅLDER>6</ÅLDER>
  <KASTRERAD>ja</KASTRERAD>
  <AVMASKAD>nej</AVMASKAD>
  <ID-MÄRKNING>Izz138bod</ID-MÄRKNING>
  <ÄGARE>Colin Wilcox</ÄGARE>
</KATT>

Du ser att XML-taggar gör det möjligt att visa exakt vilken typ av information det rör sig om. Du vet till exempel att det här är information om en katt, och du kan lätt hitta kattens namn, ålder o.s.v. Möjligheten att skapa taggar som definierar nästan vilken datastruktur som helst är det som gör XML så anpassningsbart – därav namnet "Extensible".

Förväxla inte taggarna i kodexemplet med taggarna i en HTML-fil. Om du till exempel klistrar in den här XML-strukturen i en HTML-fil och visar filen i webbläsaren skulle det se ut ungefär så här:

Izzy Siamese 6 ja nej Izz138bod Colin Wilcox

Webbläsaren ignorerar XML-taggarna och visar enbart informationen.

Överst på sidan Överst på sidan

Lite om giltiga data

Du kanske har hört någon ur IT-personalen tala om "giltig" XML. En giltig XML-fil följer en uppsättning mycket stränga regler för XML. Om en fil inte stämmer överens med reglerna fungerar inte XML. I föregående exempel har till exempel varje inledande tagg en avslutande tagg, vilket innebär att exemplet följer en av reglerna för giltig XML. Om du tar bort en tagg och försöker öppna filen i något av Office-programmen visas ett felmeddelande, och du kan inte använda filen i programmet.

Du behöver inte nödvändigtvis känna till reglerna för att skapa giltig XML (även om de är lättbegripliga), men du måste komma ihåg att XML-data bara kan delas mellan program och system om informationen är giltig. Om en XML-fil inte går att öppna finns det risk för att filen inte är giltig.

XML är också plattformsoberoende, vilket innebär att alla program som är utvecklade för att använda XML kan läsa och bearbeta XML-informationen, oavsett maskinvara och operativsystem. Med rätt XML-taggar kan du till exempel använda ett program på en vanlig stationär dator för att öppna och arbeta med data från en stordator. Oavsett vem som skapar en uppsättning XML-data kan du arbeta med samma data i flera Microsoft Office 2003- och Microsoft Office Professional 2007-program, till exempel Microsoft Office Access 2007, Microsoft Office Word 2007, Microsoft Office InfoPath 2007 och Microsoft Office Excel 2007. Denna flexibilitet är anledningen till att XML har blivit en av de mest populära teknikerna för datautbyte mellan databaser och användardatorer.

XML används i andra program

Utöver taggad, giltig information används vanligen två andra komponenter i XML-system: scheman och transformeringar. I följande avsnitt förklarar vi hur dessa komponenter fungerar.

Överst på sidan Överst på sidan

En snabbtitt på scheman

Låt dig inte avskräckas av termen "schema". Ett schema är bara en XML-fil som innehåller regler för vad en XML-datafil får och inte får innehålla. Schemafiler har vanligen filnamnstillägget .xsd, medan XML-datafiler har filnamnstillägget .xml.

Med hjälp av scheman kan ett program validera informationen. Schemat ger ramen för strukturering av informationen och garanterar att informationen blir meningsfull för upphovspersonen och andra användare. Om en användare matar in ogiltig information, till exempel text i ett datumfält, kan programmet uppmana användaren att mata in rätt typ av information. Under förutsättning att informationen i en XML-fil följer reglerna i ett visst schema kan vilket program som helst som stöder XML använda schemat för att läsa, tolka och bearbeta informationen. Excel och Word kan till exempel validera informationen <KATT> jämfört med schemat, enligt figuren nedan.

Program kan dela XML-data med hjälp av scheman.

Scheman kan bli komplicerade, och i den här artikeln går vi inte in på hur du skapar ett sådant. (Dessutom har du troligen en IT-avdelning som vet hur man gör.) Det kan emellertid vara bra att veta hur ett schema ser ut. Följande schema definierar reglerna för tagguppsättningen <KATT> ... </KATT>.


<xsd:element name="KATT">  
  <xsd:complexType>  
    <xsd:sequence>
      <xsd:element name="NAMN" type="xsd:string"/>
      <xsd:element name="RAS" type="xsd:string"/>
      <xsd:element name="ÅLDER" type="xsd:positiveInteger"/>
      <xsd:element name="KASTRERAD" type="xsd:boolean"/>
      <xsd:element name="AVMASKAD" type="xsd:boolean"/>
      <xsd:element name="ID-MÄRKNING" type="xsd:string"/>
      <xsd:element name="ÄGARE" type="xsd:string"/>        
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>

Det spelar ingen roll om du inte förstår allt i exemplet. Kom bara ihåg följande:

  • Radelementen i exempelschemat kallas deklarationer. Om du skulle behöva ytterligare information om ett djur, till exempel dess färg eller teckning, skulle din IT-avdelning kunna lägga till en deklaration i schemat. Du kan förändra XML-systemet i takt med att dina företagsbehov utvecklas.
  • Deklarationer ger mycket stor kontroll över datastrukturen. Deklarationen <xsd:sequence> betyder till exempel att taggar som <NAMN> och <RAS> måste förekomma i samma ordning som de anges ovan. Deklarationerna kan också styra vilken typ av data som användarna kan lägga till. I schemat ovan krävs det till exempel ett positivt tal för kattens ålder och logiska värden (SANT eller FALSKT) för taggarna KASTRERAD och AVMASKAD.
  • När informationen i en XML-fil följer reglerna i ett schema kallas informationen giltig. Processen att kontrollera en XML-datafil mot ett schema kallas validering. Den stora fördelen med att använda scheman är att de kan förhindra ogiltig information. De underlättar också sökning efter ogiltig information, eftersom XML avbryts när ett problem påträffas.

Överst på sidan Överst på sidan

En snabbtitt på transformeringar

Som vi har nämnt tidigare ger XML också möjlighet att använda och återanvända information på många sätt. Mekanismen för återanvändning av data kallas en XSLT-transformering (Extensible Stylesheet Language Transformation (XSLT) eller bara en transformering. Transformeringar är det som verkligen gör XML intressant. När du till exempel har validerat en datafil mot ett schema kan du använda en transformering som gör att informationen fungerar som en marknadsföringsbroschyr i Microsoft Office Word 2003 och en annan transformering för att skapa en försäljningsrapport i Office Excel 2007.

Du (eller din IT-avdelning) kan också använda transformeringar för att utbyta data mellan serversystem, till exempel databaser. Anta exempelvis att databas A innehåller försäljningsdata i en tabellstruktur som fungerar bra för försäljningsavdelningen. Databas B innehåller intäkts- och utgiftsdata i en tabellstruktur som är skräddarsydd för bokföringsavdelningen. Med hjälp av en transformering kan databas B ta emot information från A och infoga den i rätt tabeller.

Kombinationen av datafiler, scheman och transformeringar utgör ett grundläggande XML-system. Följande figur visar hur ett sådant system normalt fungerar. Datafilen valideras mot schemat och återges sedan på många olika användbara sätt med hjälp av transformeringar. I det här fallet infogar transformeringen informationen i en tabell på en webbsida.

En grundläggande XML-filstruktur med ett schema och en transformering

Följande kodexempel visar ett sätt att skriva en transformering. Den infogar informationen i <KATT> i en tabell på en webbsida. Meningen med det här exemplet är inte att lära dig att skriva en transformering utan att visa hur en transformering kan se ut.


<?xml version="1.0"?>
<xsl:stylesheet version="1.0"> 
<TABLE>
  <TR>
    <TH>Namn</TH>
    <TH>Ras</TH>
    <TH>Ålder</TH>
    <TH>Kastrerad</TH>
    <TH>Avmaskad</TH>    
    <TH>ID-märkning</TH>
    <TH>Ägare</TH>
  </TR>
  <xsl:for-each select="KATT">
  <TR ALIGN="LEFT" VALIGN="TOP">
    <TD>
      <xsl:value-of select="NAMN"/>
    </TD>
    <TD>
      <xsl:value-of select="RAS"/>
    </TD>
    <TD>
      <xsl:value-of select="ÅLDER"/>
    </TD>
    <TD>
      <xsl:value-of select="KASTRERAD"/>
    </TD>
    <TD>
      <xsl:value-of select="AVMASKAD"/>
    </TD>
    <TD>
      <xsl:value-of select="ID-MÄRKNING"/>
    </TD>
    <TD>
      <xsl:value-of select="ÄGARE"/>
    </TD>
  </TR>
</xsl:for-each>
</TABLE>

Det här exemplet visar hur en typ av transformering kan se ut när den är kodad, men kom ihåg att du bara behöver beskriva vad du vill göra med informationen på vanlig svenska. Du kan till exempel gå till din IT-avdelning och säga att du vill skriva ut försäljningsinformationen för specifika regioner för de två senaste åren "och jag vill att det ska se ut så här". Din IT-avdelning kan då skriva (eller anpassa) en transformering för just det ändamålet.

Det som gör allt det här ännu mer praktiskt är att Microsoft och allt fler andra leverantörer utvecklar transformeringar för alla typer av uppgifter. I framtiden kommer du säkert att kunna hämta en transformering som antingen tillgodoser dina behov eller kan anpassas för ett visst ändamål. Det innebär att XML blir allt mer kostnadseffektivt med tiden.

Överst på sidan Överst på sidan

Något om XML i Microsoft Office System

De professionella utgåvorna av Microsoft Office 2003 och Office 2007 innehåller omfattande stöd för XML.

  • I Office Excel 2007, Office Word 2007och Office PowerPoint 2007 är XML standardfilformatet, en förändring som har flera fördelar.
    • Mindre filstorlekar. I det nya formatet använd ZIP och andra komprimeringstekniker för att minska filstorleken med ända upp till 75 procent jämfört med de binära formaten i tidigare versioner av Office.
    • Enklare informationsåterställning och bättre säkerhet. XML är direkt läsbart, vilket innebär att du kan öppna en skadad fil i Anteckningar eller någon annan textredigerare och återställa åtminstone en del av informationen. De nya filerna är också säkrare, eftersom de inte kan innehålla VBA-kod (Visual Basic for Applications). Om du använder det nya formatet för att skapa mallar kommer eventuella ActiveX-kontroller och VBA-makron att placeras i en separat, säkrare del av filen. Dessutom kan du använda olika verktyg för att ta bort eventuell privat information, till exempel Dokumentkontroll. Mer information om hur man använder Dokumentkontroll finns i artikeln Ta bort dolda data och personlig information från Office-dokument.
    • Mer anpassningsbart. I XML lagras information i textformat i stället för ett speciellt binärt format, och dina kunder kan därför definiera egna scheman och använda dina data på många olika sätt utan att behöva betala ersättning. Mer information om de nya formaten finns i Introduktion till öppna XML-filformat.
  • Alla Office-program innehåller olika verktygsuppsättningar. Användargränssnitten och processerna som du använder i Word skiljer sig från användargränssnitten och processerna i Excel eller PowerPoint. Varför är det så? Därför att det som fungerar i Word inte nödvändigtvis fungerar i Excel och så vidare.
  • Office-programmen kan utnyttja scheman, transformeringar och data från andra leverantörer under förutsättning att XML-informationen är giltig.
  • I vissa Office-program används XML i bakgrunden och i andra, till exempel Microsoft Office OneNote™, stöds det inte alls. Det bästa sättet att ta reda på hur ett Office-program stöder XML är att öppna direkthjälpen för respektive program och söka efter XML.

Men vad gör du om du har XML-information men inget schema? Alla Office-program som stöder XML kan på olika sätt hjälpa dig att arbeta med informationen. Om du till exempel öppnar en XML-fil utan schema i Word visas taggarna och informationen. Om den som har skapat filen eller din IT-avdelning tillhandahåller en transformering kan du använda den också. Du kan åtminstone läsa taggarna och informationen i filen.

Om du däremot öppnar en XML-fil utan schema i Excel används ett standardschema. Därefter får du möjlighet att öppna informationen i en skrivskyddad fil eller att koppla informationen till antingen en XML-lista (i Microsoft Office Excel 2003) eller en XML-tabell (i Office Excel 2007). Du kan använda XML-listorna och XML-tabellerna för att sortera, filtrera eller lägga till beräkningar till informationen.

Office Professional 2007 och Microsoft Office 2003 erbjuder samma uppsättning XML-verktyg. I Office Professional 2007 måste du först aktivera stöd för XML och därefter startar du verktygen från olika platser. När du har startat verktygen fungerar de dock likadant i Microsoft Office 2003 och Office Professional 2007. Följande steg förklarar hur man startar XML-verktygen för Office Excel 2007 och Office Word 2007.

 Obs!   Microsoft Office Access 2007 aktiverar sina XML-verktyg som standard, så du kan hoppa över de första stegen om du använder Access.

Aktivera XML-verktygen i Office Excel 2007 och Office Word 2007

  1. Klicka på Microsoft Office-knappen i Excel eller WordBild av knapp och klicka sedan på Excel-alternativ eller Word-alternativ, beroende på vilket program du har öppnat.
  2. Klicka på Anpassa.
  3. Markera Visa fliken Utvecklare i menyfliksområdet under De vanligaste alternativen när du arbetar i applikationsnamn och klicka sedan på OK.

 Obs!   Menyfliksområdet är en del av Microsoft Office Fluent-användargränssnittet.

Starta XML-verktygen i Office Excel 2007 och Office Word 2007

  • I båda programmen klickar du på valfritt tillgängligt kommando i XML-gruppen på fliken Utvecklare.

Starta XML-verktygen i Office Access 2007

  1. Klicka på fliken Externa data.
  2. Gör något av följande:
    • Klicka på XML-fil i gruppen Importera.
    • Klicka på Mer i gruppen Exportera och klicka sedan på XML-fil.

Överst på sidan Överst på sidan

Mer information

Länkarna i följande avsnitt leder till information om hur du använder XML i olika Office-program och hur du skriver XML-kod.

VisaAnvända XML i Office 2007

 Obs!   Länkarna i det här avsnittet kommer att bytas ut när Office-gruppen tar fram och publicerar mer innehåll.

Introduktion till öppna XML-filformat

VisaAnvända XML i Microsoft Office 2003

 Obs!   Vissa av länkarna i det här avsnittet leder till webbplatsen Microsoft Office Online och andra till MSDN (Microsoft Developer Network).

VisaSkriva XML-kod

VisaBöcker om XML

Överst på sidan Överst på sidan

 
 
Gäller:
Excel 2007, PowerPoint 2007, Word 2007