element. The envelope changes when SOAP versions change. A v1.1-compliant SOAP processor will generate a fault when receiving a message containing the v1.2 envelope namespace. A v1.2- compliant SOAP processor generates a VersionMismatch fault if it receives a message that does not include the v1.2 envelope namespace. The following example illustrates the v1.2 draft envelope namespace and the original v1.1 envelope namespace: V1.2: <SOAP-ENV:Envelope xmlns:SOAP-ENV=" 12/soap-envelope" V1.1: SOAP-ENV=" envelope/" The envelope is the top-level XML element in a SOAP message Looseness of the Specification One problem with the SOAP specification is that it contains a lot of rules that may or may not be enforced. Thus it is very likely that two conforming SOAP implementations will not implement the same collection of optional features and thus be incompatible. There's always a balance between required rules in a specification and broad acceptance. A lot of the discussion about SOAP at the W3C concerns where to draw the line. Some members push for requiring more features in the base protocol, whereas other members believe that it's better to keep the base protocol as simple as possible. Loose rules help encourage implementation because it's easier to produce a minimally conformant
Understanding Web Services- XML, WSDL, SOAP and UDDI Page 88 version. Similarly, specification rules that are too tight might discourage implementation. Striking the right balance is critical. The Web Services Interoperability Organization was founded for precisely this reason— to help ensure interoperability by agreeing on a common interpretation of the SOAP, WSDL, and UDDI specifications. The optional SOAP encoding is also specified using a namespace name and the optional encodingStyle element, which could also point to an encoding style other than the SOAP one. The following example illustrates the v1.2 draft encoding namespace and the original v1.1 encoding namespace: V1.2: SOAP-ENC:encodingStyle=" 2001/12/soap-encoding" V1.1: SOAP-ENC=" encoding/" Namespaces identify the envelope version and specify encoding style The encoding namespace references simple types and enumerations from XML schema but uniquely defines complex structures, such as arrays and structs. The encoding namespace, like namespaces in general, can be referenced at any level of the document, including the envelope, or top-level element. The encoding namespace can be set to null to turn off, or disallow, encoding for a specific part of the message. The SOAP envelope indicates the start and the end of the message so that the receiver knows when an entire message has been received. The SOAP envelope solves the problem of knowing when you're done receiving a message and are ready to process it. The SOAP envelope is therefore basic ally a packaging mechanism.
- Fall '19
- Test, Web Services