OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

wsrm message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Do we really need a separate schema for soap 1.1 and soap 1.2


Based on a comment from Chris Ferris at the OASIS symposium, I would 
like us to discuss the
need for a separate schema for soap 1.1 and soap 1.2.

Currently we have two schemas, each with their own namespace with only 
the following differences:

soap 1.1 schema has:

"
...
<xsd:schema 
targetNamespace="http://www.oasis-open.org/committees/wsrm/schema/1.1/SOAP1.1"; 
xmlns:wsrm="http://www.oasis-open.org/committees/wsrm/schema/1.1/SOAP1.1"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/"; 
elementFormDefault="qualified" attributeFormDefault="unqualified" 
version="0.62">
    <xsd:import namespace="http://schemas.xmlsoap.org/soap/envelope/"; 
schemaLocation="http://schemas.xmlsoap.org/soap/envelope"/>
    <!-- 4WSRM Headers -->
    <xsd:element name="Request" type="wsrm:RequestType"/>
    <xsd:element name="Response" type="wsrm:ResponseType"/>
    <xsd:element name="PollRequest" type="wsrm:PollRequestType"/>
<!-- Describe the BaseTypes -->
    <xsd:complexType name="HeaderBaseType">
        <xsd:sequence>
            <xsd:any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
        <xsd:attribute ref="soap11:mustUnderstand" use="required" 
fixed="1"/>
        <xsd:anyAttribute namespace="##other" processContents="lax"/>
    </xsd:complexType>
...
"


While the soap 1.2 schema is (only difference is soap 1.2 instead of 
soap 1.1:

"
...
<xsd:schema 
targetNamespace="http://www.oasis-open.org/committees/wsrm/schema/1.1/SOAP1.2"; 
xmlns:wsrm="http://www.oasis-open.org/committees/wsrm/schema/1.1/SOAP1.2"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"; 
elementFormDefault="qualified" attributeFormDefault="unqualified" 
version="0.62b">
    <xsd:import namespace="http://www.w3.org/2003/05/soap-envelope"; 
schemaLocation="http://www.w3.org/2003/05/soap-envelope"/>
    <!-- 4WSRM Headers -->
    <xsd:element name="Request" type="wsrm:RequestType"/>
    <xsd:element name="Response" type="wsrm:ResponseType"/>
    <xsd:element name="PollRequest" type="wsrm:PollRequestType"/>
    <!-- Describe the BaseTypes -->
    <xsd:complexType name="HeaderBaseType">
        <xsd:sequence>
            <xsd:any namespace="##other" processContents="lax" 
minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
        <xsd:attribute ref="soap12:mustUnderstand" use="required" 
fixed="1"/>
        <xsd:anyAttribute namespace="##other" processContents="lax"/>
    </xsd:complexType>
...
"

-
We did this so the soap must undersdand attribute presence and value can be schema validated.



However this gives us two schemas and two namespaces to maintain ad infinitum.

If we were willing to rely on the extension allowing additional
attributes in HeaderBaseType for carrying the soap must understand
attribute for the proper soap version being used, we could have one
schema:



"
...
<xsd:schema targetNamespace="http://www.oasis-open.org/committees/wsrm/schema/1.1/";
xmlns:wsrm="http://www.oasis-open.org/committees/wsrm/schema/1.1/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
elementFormDefault="qualified" attributeFormDefault="unqualified"
version="0.62b">

    <!-- 4WSRM Headers -->

    <xsd:element name="Request" type="wsrm:RequestType"/>
    <xsd:element name="Response" type="wsrm:ResponseType"/>
    <xsd:element name="PollRequest" type="wsrm:PollRequestType"/>
    <!-- Describe the BaseTypes -->
    <xsd:complexType name="HeaderBaseType">
        <xsd:sequence>
         <!--mustUnderstand attribute for soap version used must be present with value = 1 -->
            <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
        <xsd:attribute ref="soap12:mustUnderstand" use="required" fixed="1"/>
        <xsd:anyAttribute namespace="##other" processContents="lax"/>
    </xsd:complexType>
..
"

And we would have to add the following text to the spec:


When soap 1.1 is used, the soap1.1 mustUnderstand attribute MUST be present with value 1.

When Soap 1.2 is used, the soap1.2 mustUnderstand attribute MUST be present with value 1.

- 
----------------------------------------------------
Tom Rutt	email: tom@coastin.com; trutt@us.fujitsu.com
Tel: +1 732 801 5744          Fax: +1 732 774 5133





[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]