Web Services-Interoperability Basic Profile
The Web Services-Interoperability (WS-I) Basic Profile is a set of non-proprietary Web services specifications that promote interoperability.
WebSphere Application Server conforms to the WS-I Basic Profile 1.1.
The WS-I Basic Profile is governed by a consortium of industry-leading corporations, including IBM, under direction of the WS-I Organization. The profile consists of a set of principles that relate to bringing about open standards for Web services technology. All organizations that are interested in promoting interoperability among Web services are encouraged to become members of the Web Services Interoperability Organization.
Several technology components are used in the composition and implementation of Web services, including messaging, description, discovery, and security. Each of these components are supported by specifications and standards, including SOAP 1.1, XML 1.0, HTTP 1.1, Web Services Description Language (WSDL) 1.1, and Universal Description, Discovery and Integration (UDDI). The WS-I Basic Profile specifies how these technology components are used together to achieve interoperability, and mandates specific use of each of the technologies when appropriate. We can read more about the WS-I Basic Profile at the WS-I Organization Web site. A link to this Web site is listed in Web services: Resources for learning.
Each of the technology components have requirements that one can read about in more detail at the WS-I Organization Web site. For example, support for Universal Transformation Format (UTF)-16 encoding is required by WS-I Basic Profile. UTF-16 is a kind of Unicode encoding scheme using 16-bit values to store Universal Character Set (UCS) characters. UTF-8 is the most common encoding that is used on the Internet; UTF-16 encoding is typically used for Java and Windows product applications; and UTF-32 is used by various Linux and Unix systems. Unlike UTF-8, UTF-16 has issues with big-endian and little-endian, and often involves Byte Order Mark (BOM) to indicate the endian. BOM is mandatory for UTF-16 encoding and it can be used in UTF-8.
See how to modify your encoding from UTF-8 to UTF-16 to change from UTF-8 to UTF-16.
The following table summarizes some of the properties of each UTF:
Bytes Encoding form EF BB BF UTF-8 FF FE UTF-16, little-endian FE FF UTF-16, big-endian 00 00 FE FF UTF-32, big-endian FF FE 00 00 UTF-32, little-endian BOM is written prior to the XML text, and it indicates to the parser how the XML is encoded. The XML declaration contains the encoding, for example: <?xml version=xxx encoding="utf-xxx"?>. BOM is used with the encoding to determine how to interpret the XML. Here is an example of a SOAP message and how BOM and UTF encoding are used
In the example code, 0xFF0xFE represents the byte codes, while the <?xml> declaration is the textual representation.POST http://www.whitemesa.net/soap12/add-test-rpc HTTP/1.1 Content-Type: application/soap+xml; charset=utf-16; action="" SOAPAction: Host: localhost: 8080 Content-Length: 562 OxFF0xFE<?xml version="1.0" encoding="utf-16"?> <soap:Envelope xmlns:soap="http://www.w3.org/2002/12/soap-envelope" xmlns:soapenc="http://www.w3.org/2002/12/soap-encoding xmlns:tns="http://whitemesa.net/wsdl/soap12-test" xmlns:types="http://whitemesa.net/wsdl/soap12-test/encodedTypes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soap:Body> <q1:echoString xmlns:q1="http://soapinterop.org/"> <inputString soap:encodingStyle="http://example.org/unknownEncoding" xsi:type="xsd:string"> Hello SOAP 1.2 </inputString> </q1:echoString> </soap:Body> </soap:Envelope>To learn more about the WS-Basic profile, including scenarios, UTF and BOM, see Web services: Resources for learning.
See also
How to change encoding from UTF-8 to UTF-16