Varför XML?
 Tänk er följande situation:
  
  Vi sänder ett e-mail till ett företag. Mailet innehåller följande:
  
  
    | Med anlednig av er offert den 2.2.2001 vill vi köpa 30 stycken av 
      produkten XXX. Vi föväntar oss leverans inom tre veckor. 
 mvh
 Ben Boss
 Firma AB
 | 
Detta mail är inget problem att tolka, men hur gör vi ett program 
  som kan tolka detta åt oss? Kommunikation sker nuförtiden ofta mellan 
  datorer, och datorer är som bekant korkade...
För att kunna sända information som skall kunna tolkas maskinellt, 
  så måste informationen vara strukturerad efter ett visst bestämt 
  schema. En möjlighet att få en bestämd struktur på datat 
  är XML.
Men finns det inte redan system för detta?
Jo, datorer har länge kommunicerat och EDI system har väl funnints 
  i åtskilliga år men de flesta system har problem. En möjlighet 
  som finns är ASCII filer, uppställda efter ett visst system. En annan 
  möjlighet är databaser. Bägge dessa har dock vissa bakomliggande 
  brister. 
ASCII
Man kan sända relativt avancerat data med en komma eller tab separerad 
  ASCII fil. Nedan visas ett exempel på detta:
   
    | Produkt | Pris | Antal | 
   
    | ABC | 122 | 4 | 
   
    | ZYX | 133 | 1 | 
   
    | QWE | 500 | 40 | 
   
    | MM | 21 | 1 | 
Problemet är att denna fil inte innehåller någon som helst 
  information om vad kolumnerna innehåller, t.ex. vilken valuta är 
  priserna i. Man brukar ibland kalla detta för metadata - d.v.s. data om 
  datat. Visserligen kan man tänka sig att man lägger in en kolumn till 
  som innehåller information om valuta men denna har inte en naturlig koppling 
  till priskolumnen. Det skulle vara bättre att få in metadatat - attributen 
  - direkt i kolumnen, men det går inte.
Ett annat problem som en ASCII fil har är att den är "fyrkantig". 
  Alla som någon gång arbetat med databaser har stött på 
  begreppet "en till många" (one to many), vilket betyder att 
  en post kan vara relaterad till många andra. Vi kan t.ex. tänka oss 
  information om en musik-CD. Den har en titel, en artist och ett antal låtar. 
  Det finns således ett en till många relation mellan skiva och låtar. 
  Hur skriver vi en ASCII fil som innefattar denna relation? En möjlighet 
  är förvisso att sätta in 30 stycken extra kolumner för eventuella 
  låttitlar, men hur intelligent är detta egentligen?
Vi måste således skippa ASCII filer om datat inte är "fyrkantigt" 
  utan innehåller relationer. Ett annat problem är informationsinnehållet 
  i kolumnrubrikerna som kan vara relativt bristfälligt.
Databaser
Databaser har oftarst inga problem med att hantera en till många relationer, 
  men...
... hur sänder vi datat från en databas? Visserligen kan vi sända 
  en Access mdb fil till en annan person, men detta förutsätter ju att 
  mottagaren har tillgång till Access. Vi kan även sända en SQL 
  script som skapar eller modifierar en befintlig databas i en SQL server, men 
  hur villig skulle du vara att låta datorn automatiskt köra SQL script 
  på din databas? Enda sättet är då att exportera datat 
  till en ASCII fil och sända denna, men som vi redan konstaterat så 
  har ASCII filerna sina begränsningar.
Problemet är således en-till-många relationer som inte är 
  så lätta att uttrycka med traditionella metoder.
Lösningen heter XML
Lösningen heter XML - Extensible Markup Language 
  - och denna sektion av dessa sidor kommer att göra ett försök 
  att klargöra begreppen. En viss baskunskap i HTML kan vara användbar 
  även om XML inte nödvändigtvis har någonting med Internet 
  att göra.