A service description has three parts:
- a schema definition -- what messages look like
- an interface definition -- what methods are provided
- a location definition -- where to find the service
Let's define a container to hold these parts. This container can have a name, which is a URI, and each part can have an ID. The examples here all use rsws as the namespace prefix.
<rsws:description name="http://example.com/rsws/">
<rsws:schema id="mytypes">
. . .
</rsws:schema>
<rsws:interface id="sample">
. . .
</rsws:interface>
<rsws:location>
. . .
</rsws:location>
</rsws:description>
[...]
I've sketched a brief example of an interface definition language for web services, motivated by a desire to avoid the excesses of WSDL and to obtain an interface language that does a better job of encouraging reuse and supporting the typeless or document style of schema definitions that will be seeing increasing use.