Effective XML: Leveraging JAXB and SDO
Jeg (Jesper) fulgte op på min XML dødsdrift med en session om JAXB og SDO, som på mange måde er sammenlignelige:
Oprindelse og anvendelse:
- JAXB er spec + referenceimpl med input fra XmlBeans, EMF, TopLink, etc.
- SDO kommer fra IBM og BEA
- XML “behandling” skal kunne spille sammen med en lang række teknologier: JPA, JAX-WS, JAX-RS, SCA
- JAXB 2.0 dækker HELE schema, det var en fejl af 1.0 ikke gjorde
- SDO er “løsere” og har en “map-agtig” datamodel.
De kan også bruges til lidt forskellige ting:
- SDO har metadata i sig, JXB bruger Java reflection.
- SDO har en “open” måde at arbejde på hvor man kan bøje schemaet hvis man har dele som ikke bruger helt samme schema.
- SDO har også change tracking, som kan bruges til at sende optimale ændringer
På køretidspunktet er der lidt flere forskelle:
- JAXB runtim er ret kortfattet. JAXB har infoset preservation! Det vidste jeg ikke!
- SDO runtimes er ikke helt så udskiftelige.
Scenarier:
- Data Access Service: Brug én klasse til at mappe til både JPA og XML.
- Det er IKKE painless: Entitieter er bare ikke dokumenter, og omvendt
Der er under Eclipselink hatten både en JAXB runtime med udvidelser (Moxy) og en SDO runtime.
Plus: Dygtig mand, der forklarer ud fra den teknologi, han selv har bygget.
Minus: Når alt hvad man har er en hammer…