02. juni 2009 - 18:32Der 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?
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.
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.