XMLGrunderna
[ Hem ] Allmänt ASP XML SQL ADO HTML CSS VB Java Design Karta
Grunderna XSL Dynamiska sidor XML i praktiken

Grunderna

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.

  XMLXML filer
Grunderna
XML filer
Mer om XML filer
Datat i XML
Validering
DTD
Studera själv på nätet
Mer om ELEMENT
Mer om ENTITY
Mer om ATTLIST
Rekursivt data
Övningar
Som nästa...


Top
< XML XML filer>
© Anders Enges, Vörå 2002  | 24.09.01 18:21 Visa asp koden