Survey

This document compares existing technologies that ideally should meet the following requirements :

  • based on XML
  • compatible opensource license
  • File, Http and Tcp support (E-Mail ? Printer ?)
  • good quality (maturity, stability, performance, user support, documentation and samples)
  • as non-intrusive as possible (mapping file, code generation, framework interface implementation requirements, etc.)

data reference handled by the framework or by the serialization (e.g. IDREF in xml) ? looks like at least a mapping is required to cope with this

Beans

impossible to unserialize interfaces ? only works with concrete classes objects ?

Distributed Objects

cannot use because have to duplicate game state player views on moderator side; not enough control over generated xml

Java-XML Data Binding

proly the way to go, need data reference support though; java beans ?

Technologies

NameTypeFeaturesQualityLicenseApplicability
AxisDistributed Objects
web services oriented
Apache Software License ( more information )Medium
CastorJava-XML Data Binding
automatic bean introspection
mapping supported
descriptor class
document external reference supported
very well documented
responsive mailing list support
BSD styleHigh
DigesterXML to Java Object Configurationxml -> java onlyApache Software License ( more information )Low
HammerJava Serialization to XML
inspired from JSX
license not compatible
GNU General Public LicenseLow
JAXBJava-XML Data Binding
xml -> java oriented
schema required
Sun Public License?
JBindJava-XML Data Bindinggood documentationApache Software License ( more information )
JDOMXML Document-Java Data Bindingdocument orientedApache-styleLow
JiBXJava-XML Data Binding
mapping required
document internal reference support
no extra-code required
pull parsing and byte code enhancement lead to good performance
very good documentationcustom Open SourceHigh
JOXJava Beans Serialization to XMLlicense not compatibleGNU Lesser General Public LicenseLow
JSXJava Serialization to XMLlicense not compatibleGNU General Public LicenseLow
KBMLJava Beans Serialization to XMLbased on KOMLBSD styleMedium
QuickJava-XML Data Bindingprocess from binding description to class generation awfullcustom Open SourceLow
XMLEncoder / XMLDecoderJava Beans Serialization to XMLlow level beans oriented API?Medium
XStreamJava Serialization to XML
can use XPP3 pull-parser
no mapping
straight-forward to use
good documentationBSD styleHigh
ZeusJava-XML Data Binding
xml -> java oriented
class generation required
objects need to implement a specific generated interface
awfull documentationEnhydra Public LicenseMedium

References

TitleDescription
Xml Protocol ComparisonW3C survey on different XML protocols used in web-based technologies
The XML Apache ProjectXML project homepage subset of the Apache Software Fondation
XML and Java technologies : Data Bindingvery interesting article including a comparative study between different Data Binding Frameworks
Java Object Serialization SpecificationJava Sun specification for Java Object Serialization
XML Data Binding SpecificationJava Sun specification for Java XML Data Binding
Java Serialization FAQJGuru Frequently Asked Questions about Java Serialization