The trick XINS uses is an HTTP parameter "_convention" to be supplied in the request URL. When this parameter is set to "_xins-soap", then the request is interpreted as a SOAP request. If it's "_xins-xmlrpc" then XML-RPC is assumed. By default, the HTTP input parameters (GET, POST or HEAD) are interpreted.

The implementation code, written by a Java developer, is independant of the protocol for the request and response. The framework will convert from and to XML-RPC or SOAP, as necessary. Some other calling conventions is included (simple XML, XSLT, etc.) and users can write custom ones.

XINS is a Java- and XML-based, BSD-licensed technology with the goal to allow developers to define and implement RPC-services very easily and very quickly, with a high degree of quality.

The XINS Primer (http://xins.sourceforge.net/primer.html)
introduces XINS in 15 minutes and shows how easy it is to write a XINS specification and generate a WAR file from it.

Links:
Download XINS 1.3.0-rc2 as a tar.gz file: http://prdownloads.sourceforge.net/xins/xins-1.3.0-rc2.tgz?download or as a Windows installer: http://prdownloads.sourceforge.net/xins/xins-1.3.0-rc2.exe?download
User Guide: http://xins.sourceforge.net/docs/
Screenshots: http://sourceforge.net/project/screenshots.php?group_id=71598

Would you consider XINS for your next project? Do you consider the compatibility with XML-RPC and SOAP an important feature? The XINS development team welcomes your feedback at the xins-users mailing list: http://lists.sourceforge.net/lists/listinfo/xins-users