As I mentioned earlier, one of the main responsibilities of the WS-I is to define profiles based on a finite subset of existing Internet messaging and Web services standards. These guidelines, the first of which is known as the WS-I Basic Profile, are designed to improve the interoperability among any Web services that implement them. In version 1.0, the Basic Profile tackles some of the issues that have been plaguing Web service interoperability, including the following:
XML message encoding
SOAP fault syntax
SOAP message structure and processing requirements
Supported versions of HTTP and SOAP
HTTP header requirements and status codes
Updated WSDL schema and type constraints
WSDL import statements
Restrictions on WSDL port types and bindings
Use of XML schema
Description and discovery restrictions
To conform to the Basic Profile, a Web service must claim conformance in the following areas:
Message The SOAP message itself and its HTTP transport
Description The WSDL file for the Web service
Registry The UDDI registry entries that advertise information about the service
In the case of message conformance, when a Web service purports to conform to the Basic Profile, the service can make a conformance claim to this effect in the header of its SOAP messages by adding a Claim element to the message header. The following is an example of a conformance claim made against WS-I Basic Profile 1.0:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" >
<soap:Header>
<wsi:Claim conformsTo="http://ws-i.org/profiles/basic/1.0"
xmlns:wsi="http://ws-i.org/schemas/conformanceClaim/" />
</soap:Header>
<soap:Body>
</soap:Body>
</soap:Envelope>
Note that the conformsTo attribute declares the version of the Basic Profile that conformance is being claimed against. Basic Profile 1.0 is a very detailed document that spells out detailed requirements, which are outside the scope of this book. For more detailed information about Basic Profile 1.0, see http://ws-i.org/Profiles/Basic/2003-03/BasicProfile-1.0-BdAD.html .