Avatar billede fanatic Nybegynder
02. juni 2009 - 18:32 Der er 1 kommentar og
1 løsning

Design pattern til traversering af xml i Java

Hej eksperter.

Jeg sidder og arbejder på et java-program. Heri har jeg tænkt at understøtte muligheden for at indlæse data via xml i programmet og evt. også give mulighed for at eksporterer data som xml.

Dette vil jeg gerne lave således at min kode er åben for ændringer i fremtiden. Den xml som læses ind kan jo ændre sig og derudover skal programmet måske understøtte flere skemafiler (xsd) i fremtiden. Det samme gælder for det data jeg vil eksporterer i xml, måske vil jeg gerne på et tidspunkt kunne udskifte xsd'er således at xml eksporteres i forskellige strukturer. Det kunne yderligere også tænkes at jeg vil supportere andet end xml, eks. en flad tekstfil m.m.

Mit spørgsmål er nu. Hvilket design pattern er oplagt at bruge hvis jeg vil understøtte denne fleksible mulighed for at imødegå fremtidige ændringer til mit program?
Avatar billede arne_v Ekspert
02. juni 2009 - 18:51 #1
Hvad er din maalsaetning?

A) At kunne aendre XML formaterne uden at skulle aendre applikationen?

B) At kunne aendre XML formaterne uden manuelt at skulle ind og aendre kode i applikationen?

Hvis B saa kunne du satse paa JAXB. Du genererer nogle Java klasser fra schema'erne (XSD'erne) og din kode bruger de genererede klasser.

Hvis schema'erne aendrer sig, regenererer du de genererede klasser og forudsat at aendringerne er bagud kompatible, saa kan du bare rebuilde din applikation.

Hvis A er det meget mere vanskeligt. Jeg tror at det er naesten haabloest at skrive XML filer. Du kan skrive en fleksibel parser. Baade W3C DOM, SAX og StAX tillader dig at parse vilkaarlige XML dokumenter og du kan skrive kode som fisker kendte data ud uanset hvordan de er placeret i XML filen.

Men en rigtig vanskelig opgave.

Jeg tror at de fleste vaelger bare at versionere deres XML formater.
Avatar billede arne_v Ekspert
04. august 2009 - 04:13 #2
OK?
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