XML Interface for Network Services

XML Interface for Network Services (XINS) is an open-source technology for definition and implementation of internet applications, which enforces a specification-oriented approach.
Specification-oriented approach.
The specification-oriented approach is at the heart of XINS:
From specifications, XINS is able to generate:
Components of the XINS technology.
Technically, XINS is composed of the following:
An introductory tutorial called the XINS Primer takes the reader by the hand with easy-to-follow steps to perform, with screenshots.
Since version 1.3.0, the XINS/Java Server Framework supports not only POX-style calls, but also SOAP and XML-RPC. And it supports conversion using XSLT. As of version 2.0, it also supports JSON and JSON-RPC.
XINS is open-source and is distributed under the liberal BSD license.
Specifications.
All XINS specification files are Plain Old XML. Compared to SOAP/WSDL/UDDI/etc. the format is extremely simple. There are specifications for projects, environment lists, APIs, functions, types and error codes.
Below is an example of a XINS project definition.
<project name="MyProject" domain="com.mycompany">
 <api name="MyAPI">
 <impl/>
 <environments/>
 </api>
</project>
Here is an example of a specification of an environment list:
<environments>
 <environment id="netarray" url="http://xins.users.mcs2.netarray.com/myproject/xins/"/>
</environments>
An example of an API specification file:
<api name="MyAPI">
 <description>My first XINS API</description>
 <function name="Hello"/>
</api>
An example of a function definition:
<function name="Hello">
 <description>Greets the indicated person.</description>
 <input>
 <param name="name" required="true">
 <description>The name of the person to be greeted.</description>
 </param>
 </input>
 <output>
 <param name="greeting" required="true">
 <description>The constructed greeting.</description>
 </param>
 </output>
</function>
RPC protocol.
The "XINS Standard Calling Convention" is a simple HTTP-based RPC protocol. Input consists of HTTP parameters, while output is an XML document. This approach makes it compatible with plain Web browsers.
Example of a request:
 http://somehost/someapi/?_convention=_xins-std&_function=SayHello&firstName=John&lastName=Doe
Example of a successful response:
<result>
 <param name="greeting">Hello John Doe!</param>
</result>
Competition.
There are no known products that provide an integrated approach to specification-oriented development, similar to XINS. However, there are several frameworks and libraries that provide functionality similar to individual parts of XINS, including: