# JibxSoap: Binding XML to Java Code

JiBX Basics
Overview
Flexibility
Performance
Clean code
News and Status
User Comments
Sponsors
Bugs
Getting Started
Binding Tutorial
A basic binding
Binding extras
Structure mapping
Collections
Using mappings
Advanced binding
Method hooks
Custom code
Binding Compiler
Binding on Load
Runtime
JiBX Extras
Building JiBX
Schema Compatibility
Mailing Lists
FAQ
Contributing
License
Binding Definition
Definition details
Definition contexts
Conversions
XML summary
<binding> element
<include> element
<format> element
<namespace> element
<mapping> element
<value> element
<structure> element
<collection> element
Attribute groups
Usage API
Runtime JavaDocs
Subprojects
Generator Tools
JibxSoap
Xsd2Jibx

### What is JibxSoap?

JibxSoap is a SOAP web services framework built around JiBX data binding. It provides the same advantages of flexibility and performance to developers implementing web services as the base JiBX project does for ordinary XML data binding. JibxSoap is designed around the latest web services interoperability recommendations, which lets it provide these advantages while still allowing for very easy configuration and deployment.

Many other SOAP web services frameworks are available for Java, including the popular Apache Axis implementation of the JAX-RPC standard for web services in Java. JibxSoap differs from these other frameworks in that it's designed from the start to support document/literal (doc/lit) web services rather than the older rpc/encoded (rpc/enc) style. This is an important distinction - the rpc/enc approach allows developers to easily expose simple method calls as web services, but creates problems for interoperability, especially with more complex data structures. Because of these problems, rpc/enc has been effectively deprecated by recommendations such as the Web Services Interoperability Organization's Basic Profile (WS-I BP), and replaced by the doc/lit approach.

The doc/lit approach to web services focuses on the actual XML data being exchanged. Rather than model method calls with parameters encoded in XML, the doc/lit approach uses W3C XML Schema definitions to fix the XML data formats. It's up to the participants in a web services interaction to process the XML payload of doc/lit SOAP messages in whatever manner is appropriate to their needs.

This focus on the XML formats is what allows JibxSoap to apply the power of JiBX data binding to doc/lit web services. JiBX is designed to support fast and flexible conversions between XML and Java objects. With doc/lit web services the contents of SOAP messages are just XML document fragments, which can be converted to and from Java objects using JiBX just the same as any other XML. All that's needed to support this is a framework that handles the SOAP wrappers and actual transport, which is what JibxSoap provides.

JibxSoap demonstrates excellent potential as a light-weight Web services engine, with performance typically several times faster than most other SOAP-based frameworks, but it's been stuck at an Alpha-release state for some time. Much recent effort has gone into supporting JiBX integration with the Axis2 Web service framework, for the purpose of supporting JiBX users who need the full range of WS-* standards (as offered by Axis2). Some samples and documentation for working with JiBX are included in the current Axis2 distributions. You can also see the JiBX Axis2 wiki page for the latest code and examples. The plan going forward is to build on this work to provide a level of framework independence for using JiBX with Web services. This will allow switching between JibxSoap, Axis2, and perhaps other Web services frameworks with little or no change to application code. Look for more on this front in July, 2007.

The current Alpha 0.2a release is a long-delayed update which fixes several minor problems and provides compatibility with the JiBX 1.1.X framework. Despite the Alpha release status, JibxSoap is in use by a number of organizations for deployed Web services.

Check the online version of this page for updates on the subproject status.

Module Name | Primary Developer | Status
--- | --- | ---
jibxsoap | Dennis M. Sosnoski | Alpha 0.2a release May 23, 2007