torsdag, januari 11, 2007

Applikation med XML, XSLT och XSD

Det vore synd att säga att det var smärtfritt men nu har jag skapat min första webapplikation som använder XML. Det som kanske tog längst tid var att felsöka ett fel som endast uppstod hos webbhotellet, eftersom det inte går (inte ska gå heller) att debugga där så förstod jag inte vad som var fel. Det visade sig att sökvägarna var olika när applikationen försöka läsa in och skriva ned XML dokumentet än på min utvecklingsserver. I Visual Studio finns ett verktyg för att skapa XSD filer (filer som anger XML filens signatur). Det här verktyget fungerade inte för mig, istället skrev jag en för hand vilket passade bra i just det här fallet när jag skulle ha en liten XSD men det finns även en generator i Visual Studio som analyserar en XML fil och skapar en XSD utefter denna men jag vet inte hur bra det fungerar. XSLT filerna används för att formatera informationen i XML filen. Man kan exempelvis generera en XHTML sida ifrån en XML fil som annars inte innehåller några HTML taggar. I just min applikation används XSLT för att först läsa in den översta posten i XML filen (som är den senast skrivna i mitt fall) och för att visa hela XML filen i en tabell på resultatsidan. Det besvärligaste var att skriva information till XML filen. Det finns ett par olika sätt men det slutade med att jag använde DOM som innebär att hela XML filen läses in i minnet och sedan traverseras som ett vanligt träd. Ett annat sätt hade kunnat vara SAX där inte hela trädet byggs upp i minnet utan som en microfilmsläsare bläddrar igenom trädet men jag är lite osäker på om det då går att lägga till noder samtidigt. Hursomhelst så finns det en uppsjö av tekniker och "Best practices" när det kommer till .NET och XML. Jag brydde mig inte så mycket om dessa eftersom jag ifrån början av det här projektet inte kunde någonting om XSLT och XSD och speciellt inte i kombination med .NET. Något av det häftigaste (som jag ser nu) är att man kan deklarera klasser i XML som sedan laddas och används i runtime. Det är fräckt! Den färdiga applikationen, som är en vikberättelse finns här: http://www.alucinor.eu/input.aspx Titta här om du vill ha mer info om XML:

3 kommentarer:

Anonym sa...

Jag pillade lite (med betoning på lite) med XML i Datakommunikation 2 som jag läste i Karlstad.

Vi använde DTD och XSL istället för XSD. XSD är väl det som gäller nuförtiden tror jag (är dåligt insatt i det där så det var mer en gissning).

Lycka till i alla fall!

PS. Undra om det var en slump att de tre första bokstäverna i word verification-rutan var "xml" :).

Fam Blomberg sa...

Tjohej broder! Kul att se att ni äntligen kommit fram till lite riktiga prylar. Får säga att jag är lite besviken över att du använder verktyg för att producera de filerna du behöver, det är väl inget bra sätt att lära sig på. Bättre att hacka lite för hand och sedan verifiera resultatet i t.ex. eclipse. Du får tänka på att många verktyg bygger riktigt kass kod och ibland så har du inte tillgång till något verktyg som gör jobbet åt dig, men du kanske har bestämt dig för att bli slav till Gates och följa ledarens krav på att bara följa has egna standard :-D

Skämt å sido, kul med lite XML relaterade grejer så att jag förstår vad du pratar om. Inser att jag börjar bli gammal när min favoriteditor heter vi...

Unknown sa...

Nu har jag inte använt verktyg eftersom de var för krångliga =) Det här hör fortfarande inte till skolan, första kursen börjar på onsdag. Hoppas böckerna hinner komma...