JiBX ist ein freies XML-Datenbindungs-Framework für Java. Damit ist ein Arbeiten mit XML-Dokumenten möglich, ohne dass der Programmierer direkt Schnittstellen zur Verarbeitung von XML wie SAX oder DOM verwenden muss. Dabei erlaubt JiBX das Binden beliebiger Klassenstrukturen an beliebige XML-Dokumente. Dadurch unterscheidet sich JiBX von anderen Java XML Binding Frameworks wie JAXB oder XMLBeans, welche aus den XML-Schemas der XML-Dokumente die zu bindenden Klassen generieren, oder Apache Commons Betwixt, das aus den zu bindenden Klassen die XML Dokumente generiert. Es ist somit das einzige Java-Framework, das eine völlige Unabhängigkeit der zu bindenden Java-Klassen von den XML-Dokumenten ermöglicht.
JiBX ist so entworfen, dass es diese Transformation möglichst effizient durchführt, weshalb JiBX auch zu den schnellsten XML Binding Frameworks für Java zählt.JiBX PerformanceXML and Java technologies: Data binding, Part 2: Performance
Funktionsweise JiBX basiert auf dem sogenannten Mapped Data Binding, das bedeutet, dass beliebige Java Klassen mittels einer Binding Definition auf XML-Dokumente abgebildet werden. Dadurch ist es möglich, eine Architektur umzusetzen, welche die Business-Objekte (Java-Klassen) von den Kommunikations- oder Persistenz-Schnittstellen (XML-Dokumente) entkoppelt. Es ist somit möglich, die Java-Klassen unabhängig von den zu bindenden XML-Dokumenten zu entwickeln.
Die Konvertierung selbst erfolgt über Bytecodemanipulation der zu bindenden Klassen selbst. Es ist somit nicht notwendig, eigene Konvertierungsklassen zu erzeugen. Damit werden sowohl die Performance als auch der Speicherverbrauch des Frameworks positiv beeinflusst.
Dafür stellt JiBX folgende Werkzeuge zur Verfügung: bindgen – Manipulation des Bytecodes der zu bindenden Klassen und Generierung des XML Schemas für diese Klassen codegen – Generierung von Sourcecode und manipuliertem Bytecode für zu bindende Klassen aus einem vorhandenen XML-Schema jibx2wsdl – Generierung von JiBX Binding, WSDL, und XML-Schema aus Klassen starter – Verwendung von Binding-Definitionen für das Binden von Klassen an XML-Schemas
Alternativen Java Architecture for XML Binding (JAXB) Apache XMLBeans Castor (Framework) CookXML XStream Apache Commons Betwixt
Literatur
Weblinks JiBX Website BindMark Performancevergleich (Dead Link) JiBX Präsentation von Dennis Sosnoski (Blocked)
Einzelnachweise
Kategorie:Java-Bibliothek Kategorie:XML