ACTION-176 -Re-write the explicit proposal for Issue 34

Background on "Issue 34 soap-jms xsd should define fault sub-code QName types" 

In addition to defining fault sub-codes in the schema, we will change the definition of the SOAP-JMS fault binding for SOAP 1.1 to be consistent with other WS specifications and to make SOAP-JMS error codes more readily available.  With this change, for SOAP 1.1 faults, the faultcode element contains the SOAP/JMS fault sub-code. The faultstring element can contain some textual fault information.

For SOAP 1.2 faults, the current binding remains. The Fault/Code/Value is env:Sender (as defined in SOAP 1.2) and the Fault/Code/Subcode/Value is the SOAP/JMS fault sub-code. Fault/Reason/Text can contain some textual fault information.

Proposed Change

Part 1. Rewrite SOAP 1.1 related portion of Section 2.8 as follows:

The SOAP 1.1 specification does not support subcodes directly. In that scenario, the faultcode element should have a QName that matches the subcode for SOAP 1.2. The faultstring element can contain textual fault information. The same error as above, shown in SOAP 1.1:

Example: SOAP 1.1 Fault payload with the contentTypeMismatch subcode

<env:Envelope
     xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
   <env:Body>
       <env:Fault xmlns:soapjms="http://www.w3.org/2008/07/soap/bindings/JMS/">
           <faultcode>soapjms:contentTypeMismatch</faultcode>
           <faultstring> The content type of the JMS payload does
not match the XML</faultstring>
       </env:Fault>
   </env:Body>
</env:Envelope>

Part 2. Add the following definitions to the SCHEMA section:

  <xs:simpleType name="FaultCodesType">
    <xs:restriction base="xs:QName">
      <xs:enumeration value="soapjms:contentTypeMismatch"/>
      <xs:enumeration value="soapjms:malformedRequestURI"/>
      <xs:enumeration value="soapjms:mismatchedSoapAction"/>
      <xs:enumeration value="soapjms:missingContentType"/>
      <xs:enumeration value="soapjms:missingRequestURI"/>
      <xs:enumeration value="soapjms:unrecognizedBindingVersion"/>
      <xs:enumeration value="soapjms:unsupportedJMSMessageFormat"/>
    </xs:restriction>
  </xs:simpleType>

Received on Monday, 7 June 2010 15:14:19 UTC