Avatar billede bagnavnet Nybegynder
12. januar 2005 - 10:02 Der er 20 kommentarer og
2 løsninger

Forklaring på xml

Hej

Er der en der vil give en fyldesgørende forklaring på hvad xml benyttes til og hvad DOM og SAX parsers bruges til. Hvad er forskellen på de 2?
Avatar billede babz Nybegynder
12. januar 2005 - 10:33 #1
XML er et markup sprog der giver dig mulighed for at definere dokumenter og deres  indhold.
kig evt her: http://searchwebservices.techtarget.com/gDefinition/0,294236,sid26_gci213404,00.html

Hvis du vil vide hvad det kan bruges til bliver det straks værre....for hvad kan det ikke bruges til.
HTML udvikles ikke mere....er blevet afløst af den mere strikse XHTML og med tiden går udviuklingen i retning af XML.

Du kan bruge en XMLfil som database.....du kan lave en gemen hjemmeside med XML.....
"Parserne" uanset hvad de hedder bruges til at give brugeren adgang til at gøre noget med de data XML-filen indeholder.

DOM er iøvrigt ikke en egentlig parser som sådan...det er en Dokument Objekt Model...se:
http://www.w3.org/DOM/#what 
-----citat-----
The Document Object Model is a platform- and language-neutral interface that will allow programs and scripts to dynamically access and update the content, structure and style of documents. The document can be further processed and the results of that processing can be incorporated back into the presented page. This is an overview of DOM-related materials here at W3C and around the web.
-----/citat---------

SAX: se : http://www.saxproject.org/
-----citat-------
SAX is the Simple API for XML, originally a Java-only API. SAX was the first widely adopted API for XML in Java, and is a “de facto” standard. The current version is SAX 2.0.1, and there are versions for several programming language environments other than Java.
---/citat----------

SAX og DOM bruges altså som API til XMLfilen.

Og hvad skal du bruge forskellen til????

/Mikael
Avatar billede bagnavnet Nybegynder
12. januar 2005 - 10:37 #2
Tak...hvad er API?

Grunden til at jeg spørger til forskellen er, at jeg havde fornemmelsen af at det er et valg man skal træffe hvilken parser man vil bruge. Der er vel forskel på hvad de er gode til?
Avatar billede Slettet bruger
12. januar 2005 - 10:43 #3
Den vigtigste forskel på DOM og SAX er, at med DOM skal *hele* dokumentet laves om til en objektmodel, som skal ind i RAM før man kan manipulere med det. Når man bruger SAX, "scanner" man bare hele dokumentet igennem og vælger de data ud man har brug for.

/CS
Avatar billede babz Nybegynder
12. januar 2005 - 10:43 #4
Applikations Interface.....Et interface...en grænseflade mellem XML og det programmeringssprog du vælger at kode i (java,php,asp,python,c,c#,c++) osv.

Sax var oprindeligt et API til java...så man fra et javaprogram fil mulighed for at tilgå en xmlfil på en nem måde.
et API kan være mange ting...men her betyder det altså en nem måde at tilgå de forskellige data i en xml-fil på.
eksempelvis er der defineret forskellige måder at hente knuderne i en xml-fil, og der er så herefter foskellige måder at håndtere data i de knuder.

/Mikael
Avatar billede babz Nybegynder
12. januar 2005 - 10:45 #5
-----
*hele* dokumentet laves om til en objektmodel, som skal ind i RAM
-------
Skal det nu også det hvis man vælger asyncronous file-loading i f.eks. asp????

/Mikael
Avatar billede bagnavnet Nybegynder
12. januar 2005 - 10:48 #6
tak, det hjalp på forståelsen. Men, hvornår er den ene så at foretrække frem for den anden? Jeg kan forstå at SAX er hurtigere end DOM. Ved SAX læses xml dok hver gang det skal benyttes og ved DOM kan man tilgå netop de data man vil bruge eller hvad? Uden at skulle læse hele dok? Men burde det ikke gøre DOM hurtigere så, når først den er i RAM?
Avatar billede Slettet bruger
12. januar 2005 - 10:50 #7
Mikael: Yep - det skal det. Asynchronous loading tillader bare at dit script laver nogle ting imens filen loader - dvs. hvis du godt kan vente på at filen loader færdig i baggrunden.

/CS
Avatar billede babz Nybegynder
12. januar 2005 - 10:51 #8
Det er ikke fodi jeg vil spille smart...jeg spørger for at blive klogere :)
/Mikael
Avatar billede babz Nybegynder
12. januar 2005 - 10:51 #9
Godt så....tak der...
/M
Avatar billede Slettet bruger
12. januar 2005 - 10:51 #10
- And that's what we're here for :-)
Avatar billede babz Nybegynder
12. januar 2005 - 10:56 #11
Det kommer nok an på hvilken applikation du bruger XML i.
Avatar billede babz Nybegynder
12. januar 2005 - 10:59 #12
Størrelsen af XML-filen vil nok kunne have en del med det at gøre....."hvor meget skal der læses af filen...og hvor ofte osv."

/Mikael
Avatar billede bagnavnet Nybegynder
12. januar 2005 - 11:05 #13
Jeg tænkte på om det havde noget at gøre med deres struktur. SAX læses fra top til bund. DOM bygges som en træ-struktur (objektmodel). Godtnok er DOM langsommere, men hvis man kender dens struktur gør det det vel nemmere (og hurtigere?) at hente de ønskede data frem, sætte nye ind og at manipulere med dem?

Når du nævner at xml i princippet kan benyttes til næsten alt, fra database til alm hjemmeside, så må der være forskel på hvordan man skal tilgå sit xml dok. Det er derfor jeg er interesseret i at høre om der er nogle retningslinier for hvornår den ene metode er bedre frem for den anden?
Avatar billede babz Nybegynder
12. januar 2005 - 11:11 #14
Ja...
Jeg vil mene at (læg mærke til 'mene' jeg ved det ikke med sikkerhed) DOM er godt til at  håndtere dokumenter hvor der skal hentes meget data ud...og/eller manipuleres med en del data.

Hvis vi forestiller os at vi har en flad hjemeside...men en lille xmlfil...med meget få nøgledata...villel jeg måske vælge SAX....da filen ikke er stor...og data ikke fylder særligt meget.

Hvis vi taler om en XML-database med en del data så ville jeg vælge DOM til at manipulere data med.

(Folk må rette mig her hvis det er noget vrøvl)

/Mikael
Avatar billede bagnavnet Nybegynder
12. januar 2005 - 11:12 #15
jep, det var også sådan jeg havde forestillet mig det.

Er der nogen der vil ændre ved den opfattelse?
Avatar billede babz Nybegynder
12. januar 2005 - 11:14 #16
Hvad skal du bruge det til???

/Mikael
Avatar billede bagnavnet Nybegynder
12. januar 2005 - 11:17 #17
ren interesse! Jeg prøver at danne mig et overblik over emnet i tilfælde af at jeg ville benytte det en dag.
Avatar billede babz Nybegynder
12. januar 2005 - 11:21 #18
Jeg har først for nylig praktiseret XML...og er ved at lægge sidste hånd på et kalenderprojekt via XML...
Du kan se en testversion på http://www.staff.hum.ku.dk/mikaelj/test/kalender.asp

Her er kalenderen lavet i XML....
(Det er ikke for at føre mig frem)
Måske kan eksemplet tjene til inspiration en dag.

happy XML-ing

/Mikael
Avatar billede babz Nybegynder
12. januar 2005 - 11:22 #19
XML-filen hdder naturligvis kalender.xml

/M
Avatar billede bagnavnet Nybegynder
12. januar 2005 - 11:28 #20
okay, det var sgu meget fedt at se et eksempel på det.
Det ser umiddelbart ud til at du har alt liggende på siden her, eller har du? Skal man kunne logge ind via et program og tilføje fx et arrangement? Hvis vi antager at du havde et program der skulle tilgå din xml-fil hvilken parser skulle vi så benytte? hehe...? Hmm hvorfor er det egentlig bedre at benytte xml her contra html?
Avatar billede babz Nybegynder
12. januar 2005 - 11:41 #21
Jeg har valgt at bruge XML...fordi de kun betaler 105 i timen på KUA....og da de bad mig om at lave en kalender...tænkte jeg at jeg ligeså godt kunne bruge tid på at lære noget samtidig...så derfor xml.
Men også fordi jeg ved jeg har en nogenlunde begrænset fil...der kommer kun nye arrangementer i...ikke flere uger eller år.

Man logger naturligvis ind via linket øverst...hvilket bruger dig tilbage til samme XML-dokument...men med et andet XSLT-dokument.

Den samme xml-fil bliver altså vist forskelligt alt efter hvilken xslt-fil.

Den første XSLT-fil: http://www.staff.hum.ku.dk/mikaelj/test/kalender.xsl
Den der bruges til redigering og opdatering:
http://www.staff.hum.ku.dk/mikaelj/test/editDetail.xsl

Som det ses bliver der stadig genereret HTML.
Det er så mine asp-scripts der binder xml og xsl sammen.

Jeg kunne ikke have brugt html til database....
XML sikrer mig at alt der bliver stoppet ned i filen overholder den struktur der er defineret for filen.

Der mangler endnu en del features til kalenderen, så admin-delen er ikke helt klar endnu.

/Mikael
Avatar billede bagnavnet Nybegynder
12. januar 2005 - 11:55 #22
Det er super cool det der Mikael. Tak for hjælpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester