BDG Change Notes
This page lists the changes to the Busy Developers Guide to SOAP 1.1, made starting on 3/29/01.
Integer types
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.
http://www.xmlrpc.com/stories/storyReader$1441#scalarValues
Parameter names
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.
http://www.xmlrpc.com/aBusyDevelopersGuideToSoap11#payloadFormat
Character encoding
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.
http://www.xmlrpc.com/aBusyDevelopersGuideToSoap11#headerRequirements
Arrays
The BDG had specified that array elements always specified SOAP-ENC:arrayType="xsd:ur-type[4]", 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).
http://www.xmlrpc.com/aBusyDevelopersGuideToSoap11#arrays
encodingStyle
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.
http://www.xmlrpc.com/aBusyDevelopersGuideToSoap11#characterEncoding
base64
The namespace for the base64 type has changed from xsd: to SOAP-ENC: which loosens line-breaking requirements.
http://www.xmlrpc.com/stories/aBusyDevelopersGuideToSoap11#scalarValues
boolean values
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.
http://www.xmlrpc.com/stories/aBusyDevelopersGuideToSoap11#scalarValues
null values
The BDG previously made no mention of null values. A new section was added, which describes serialization of null values.
http://www.xmlrpc.com/stories/aBusyDevelopersGuideToSoap11#nullValues
BOM (Byte-Order Marks)
The BDG previously made no mention of BOMs. We added a sentence about character encoding, which addresses this issue.
http://www.xmlrpc.com/stories/aBusyDevelopersGuideToSoap11#characterEncoding
|