BDG Change Notes
This page lists the changes to the Busy Developers Guide to SOAP 1.1, made starting on 3/29/01.
The xsi:type attribute value for integers had been specified as "xsd:int or xsd:integer". This has been changed to "xsd:int", since an xsd:integer is unbounded, whereas xsd:int is a 32-bit signed integer, as the description of the type specifies.
The purpose of the change is to promote interoperability, since some implementations will not be able to handle arbritrarily large integers.
To serialize very large integers, use a string (xsd:string), and convert it to an integer at the application level.
The BDG had specified that parameter order is significant, and that parameter names are not. This position has reversed, based on feedback from members of the SOAPBuilders mailing list.
Parameter names are significant, parameter order is not. In practice, the parameter order should be consistent with the expected order, for maximum interoperability.
The BDG had not taken a position on character encoding. This has changed.
Character encoding is assumed to be UTF-8, unless specified in the Content-Type request header. Possible values for charset in the Content-Type header are US-ASCII, UTF-8 and UTF-16. UTF-8 is strongly recommended for maximum interoperability.
A server should encode the response using the same character encoding as the request, and otherwise return a Fault response, UTF-8 encoded.
The BDG had specified that array elements always specified SOAP-ENC:arrayType="xsd:ur-type", even for arrays whose sub-elements were of a common type.
Now, array elements are strongly recommended to carry a type attribute, which is either ur-type, or specifies the type of the sub-elements (when all sub-elements are of a common type).
The BDG had specified SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" on the Envelope element.
The value has changed to "http://schemas.xmlsoap.org/soap/encoding/bdg/" which reflects that the Envelope conforms to the BDG SOAP subset.
The namespace for the base64 type has changed from xsd: to SOAP-ENC: which loosens line-breaking requirements.
The possible values for booleans have been changed from true and false, to 0 and 1.
This was done because the SOAP specification specifies 0 and 1 as the values for booleans.
The BDG previously made no mention of null values. A new section was added, which describes serialization of null values.
BOM (Byte-Order Marks)
The BDG previously made no mention of BOMs. We added a sentence about character encoding, which addresses this issue.