XML Interface for Network Services

{{Multiple issues|

{{notability|Products|date=October 2012}}

{{more citations needed|date=April 2025}}

}}

{{Infobox software

| name = XINS

| logo =

| screenshot =

| caption =

| developer = Online Breedband B.V.

| released = 11/16/2004

| programming language = Java

| operating system = Cross-platform

| language = English

| genre = Web services

| license = BSD

| website = [http://www.xins.org/ xins.org]

}}

XML Interface for Network Services (XINS) is an open-source technology for definition and implementation of internet applications, which enforces a specification-oriented approach.{{Cite web |last= |date=November 15, 2005 |title=XINS (XML Interface for Network Services) |url=https://legacy.digitalhobbit.com/2005/11/15/xins-xml-interface-for-network-services/ |access-date=2025-04-11 |website=Digital Hobbit |language=en}}

Specification-oriented approach

The specification-oriented approach is at the heart of XINS:

  • first specifications need to be written;
  • then documentation and code is generated from these specifications;
  • then both testing and implementation can start.

From specifications, XINS is able to generate:

  • HTML documentation
  • test forms
  • SOAP-compliant WSDL
  • a basic Java web application
  • unit test code (in Java)
  • stubs (in Java)
  • client-side code (in Java)

Components of the XINS technology

Technically, XINS is composed of the following:

  • An XML-based specification format for projects, APIs, functions, types and error codes
  • A POX-style RPC protocol (called the XINS Standard Calling Convention), compatible with web browsers (HTTP parameters in, XML out).
  • A tool for generating human-readable documentation, from the specifications.
  • A tool for generating WSDL, from the specifications.
  • A Log4J-based technology for logging (called Logdoc), offering a specification format, internationalization of log messages, generation of HTML documentation and generation of code.
  • A Java library for calling XINS functions, the XINS/Java Client Framework; in xins-client.jar.
  • A server-side container for Java-based XINS API implementations, the XINS/Java Server Framework; in xins-server.jar. This is like a servlet container for XINS APIs.
  • A Java library with some common functionality, used by both the XINS/Java Client Framework and the XINS/Java Server Framework: the XINS/Java Common Library, in xins-common.jar.

An introductory tutorial called the [http://xins.sourceforge.net/primers/primer.html 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.{{Cite web |title=XML API |url=https://documentation.nokia.com/nsp/24-4/XML_API_Developer_Guide/ai8g9djcza.html |website=Nokia Documentation Centre}}

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.

Here is an example of a specification of an environment list:

An example of an API specification file:

My first XINS API

An example of a function definition:

Greets the indicated person.

The name of the person to be greeted.

The constructed greeting.

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{{dead link|date=July 2016 |bot=InternetArchiveBot |fix-attempted=yes }}

Example of a successful response:

Hello John Doe!

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:

References

{{Reflist}}