För att få lite mer inblick i XML och vad man kan göra med det (dels för oss som redan arbetar mer eller mindre med det men kanske framförallt för de som aldrig använt det) så föreslår jag att alla somanvänt XML kan lägga ett inlägg i denna tråden med en kort beskriving av något konkret fall där ni utnyttjat XML. Puh... lång mening. :) Hej! Högintressant läsning! Tackar! (Även om man inte hajjar till 100%) När man pratar om XML brukar man säga att den kan vara well-formed & valid. Rättare sagt, XML måste vara well-formed vilket innebär att det måste vara korrekt XML (förlja xml-standarden) med alla taggar avslutade etc. Valid XML är däremot ej ett krav, utan det är upp till applikationen om man ska kräva valid xml. Om en xml-sträng är valid innebär det att den överensstämmer med det DTD/Schema-dokument som tillhör den (fast man måste inte ha ett DTD/Schema-dokument till en xml-sträng och isf är den naturligtvis alltid valid om den är well-formed). DTD/Schema-dokumentet beskriver inte bara vilken typ av data som får finnas, utan även vilka taggar som får användas, hur de får placeras hierarkiskt (ex. roten ska heta X och under den får det finnas flera Y vilka i sin tur måste innehålla en Z samt får innehålla noll till flera W). Hej och tack för berömmet :) XML är faktiskt ganska enkelt efter att ha jobbat med det ett tag. Allt följer liksom samma regler. Då måste jag rekommendera XRay från Architag (www.architag.com). Den är iofs bara i alpha-stadie, men det har den varit i två år nu. :) Vill bara tacka för en mycket trevlig och intressant läsning! Jag har faktiskt använt xml på ett lite annorlunda sätt :-) Coolt, använde du ado-recordsetets save-metod då, eller skapade du en egen struktur? jag använde save för de flesta dokumenten men jag skapade även en egen struktur för vissa med många långa relationer i... (som jag sammanställde genom att sava och läsa till/från en memorydisk)Användningsområden för XML
Jag kan själv börja med det senaste fallet där jag använt XML. Som ni kanske har sett så har tjänsten Sök Privatpersoner A-Ö lanserats idag på gulasidorna.se. Det företag jag jobbar på (Apptus Technologies) har byggt hela tjänsten åt Eniro, och själv har jag varit inblandad i de flesta delarna av projektet. Vi använder XML friskt internt i denna tjänst.
Tjänsten består av ett antal logiska skikt, där de huvudsakliga utgörs av webb-komponent-sökgränssnitt-internt sökmotorskikt-databas. Kommunikationen mellan flera av dessa skikt sker med XML som databärare. Då menar jag inte hur de pratar med varandra, exempelvis protokoll etc. Det jag menar är vad som skickas mellan de olika skiten, och det är XML. Med hjälp av en xml-sträng beskrivs hela sökningen som skickas ifrån webbskiktet ner till själva sökmotorn (vilka fält man fyllt i, vad man fyllt i, hur man vill söka, hur många resultat man är ute efter etc). Detta tolkas sedan i sökmotorgränssnittet av en XML-parser, och sedan byggs en ny xml-sträng upp.
Gränssnittet till sökmotorn är specialdesignat för denna applikationen, men i botten ligger vår egenutvecklade sökmotor vilken används i andra applikationer också. Alltså är den nya xml-strängen som byggs upp i gränssnittet 'standardiserad' för vår sökmotor och innehåller egentligen inget applikationsspecifikt. Svaret från sökmotorn är förstås även det i form av en xml-sträng, vilken i sin tur används för att bygga upp en applikationsspecifik xml-sträng vilken skickas som svar till webbskiktet.
Alla dessa XMl-strängar finns beskriva i s k DTD (Document Type Definition) och XML-schema dokument. Detta är två olika sätt att beskriva vilka element som får lov att finnas i en xml-sträng. De interna håller vi förstås för oss själva, men med hjälp av de yttre xml-strängarns beskrivningar kan en utvecklare snabbt bygga en metod för att anropa vår sökmotor, och eftersom anropsmetoden består av ett enkelt HTTP-anrop så kan man göra det från vilken plattform som helst, i vilket programmeringsspråk som helst.
Den xml-sträng som returneras ut från sökmotorn används sedan för att med hjälp av ett XSL-dokument (Xml Stylesheet Language) skapa outputen (dvs den HTML som skickas till klientbrowsern). Ett XSL-dokumentet innehåller 'kod' skriven i XSLT, vilket i sig är inget annat än en uppsättning xml-taggar som läses in i en XML-parser tillsammans med en xml-sträng. XSLT-taggarna beskriver för parsern hur den ska transformera den xml-sträng som laddats in, och ut kommer en ny xml-sträng vilken i det här fallet alltså är s k 'well-formed & valid' HTML (html är ju egentligen en uppsättning XML-taggar, fast specifikationen tillåter en del som XML inte gör).
Om ni vill se tjänsten själva (ni ser iofs inget xml, men nu vet ni ju hur den fungerar internt) kan ni gå in på http://privatpersoner.gulasidorna.se/
/ChristofferSv: Användningsområden för XML
I mitt uppdrag används xml som informationsbärare mellan COM+ och IIS. Alltså komponenterna genererar xml och asp-sidorna presenterar det. Alla komponenter har ett tillhörande xml-schema som beskriver resultat-datat som skickas till asp-sidorna. All validering sker i COM-lagret.
Vi arbetar inte med XSL.
De absolut största vinsterna med att ha lämnat recordset och variant arrayer som info-bärare är att:
1. Man i verksamhetslagret kan skapa de informationsstrukturer som vill ha. Tex om man hämtar data från olika källor.
2. Vi får ett väldokumenterat resultatdata.
3. ASP-sidorna vet alltid vad som returneras.
4. Gemensam felhantering (i resultat-xml-dokumentet ingår error-block)
5. När komponenterna ska användas från andra system har vi ett plattformsoberoende format på datat.
6. Vi arbetar till viss del med SOAP och då har vi väldigt mycket gratis.Sv: Användningsområden för XML
Skall ta en kurs snart... Det som förbryllar mig lite är hur DTD/Schema fungerar tilsammans med XML. Vad har man för egentlig nytta av att använda det? Är det "bara" för att se att man får tex en string där det skall vara string, eller kan det användas för annan felkorrigering...
Verkar som om ni har grym pejl på XML och skulle gärna se fler inlägg från er :-)Sv: Användningsområden för XML
Sv: Användningsområden för XML
Scheman används för att validera datatyper, längder, om ett element är optional osv. Man kan även använda regular expressions och enums i scheman. Scheman är i sig skivna i XML (till skillnad från DTD:er som har en egen syntax)
Om man funderar på att införa xml i sitt system så är min rekomendation att man absolut ska använda sig av scheman. Det gör att man alltid kan lita på innehållet och att man inte behöver validera mer än nödvändigt i koden. Jag jobbade med edi (mscons, prodat, delfor) för några år sedan, och hade vi haft något som motsvarade scheman då så hade allt varit mycket enklare. Man missförstår så lätt varandra (och man missförstår lätt specar).
Ett tips är att ladda hem XML Spy (www.xmlspy.com). Det är ett verktyg för editering av xml, scheman osv. Det är ett enkelt och pedagogiskt program!Sv: Användningsområden för XML
Sv: Användningsområden för XML
Sådant uppskattas!Sv: Användningsområden för XML
Jag har använt det för att generera virtuella postlåsningar för frikopplat data som presenteras på webben, ungefär som man kan göra med ett frikopplat dataset i .net. Informations flödet i systemet vi skrev var väldigt högt och samma post kunde uppdateras tre till fyra gånger i minuten av olika användare. Så jag implementerade en lösning där man använde xml som mellanlagring mellan komponent och presentationslager på en server för att senare kunna styra vilka förändringar som hade prioretet från vilken användare.Sv: Användningsområden för XML
/MartinSv: Användningsområden för XML