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: Re: [wsrm] adding extensibility to the empy type


Tom,

Yes, this would provide better extensibility.  The immediate question is 
where we need to allow such extensibility?  I doubt every element needs 
this support though it is definitely necessary for more than just our 
top-level SOAP headers.  I see little use for this in (for example), the 
MessageId and SequenceNum elements but they can be defined easily without 
relying on EmptyType.

To go a bit further, I would define three general element types for use 
throughout the schema, EmptyType, ExtensibleType and HeaderType (or 
something similar), and use those as appropriate.  EmptyType should be the 
type of our simplest "pseudo Boolean" elements and never extended. 
HeaderType would be the base for our four SOAP header elements. 
ExtensibleType would be the base of all other elements which are extensible 
(it could also be the base for HeaderType); elements which are not 
extensible or empty would be defined without an explicit base type.

Less importantly and more generally (about the schema as a whole and a long 
standing question I have forgotten to ask), this model puts all extension 
content (new elements) at the beginning of the WSRM elements.  This is 
counter-intuitive though I realise it comes from the use of schema type 
extensions rather than consistent placement of xsd:any at the end of every 
"interesting" complex type.  For example, an extended MessageHeader would 
(today) appear as:

   <wsrm:MessageHeader soap:mustUnderstand="1">
     <foo:bar letsGoToTheBar="yeah" />
     <wsrm:MessageId ... />
     <wsrm:ExpiryTime ... />
     <wsrm:ReplyPattern ... />
   </wsrm:MessageHeader>

rather than something that appears extended:

   <wsrm:MessageHeader soap:mustUnderstand="1">
     <wsrm:MessageId ... />
     <wsrm:ExpiryTime ... />
     <wsrm:ReplyPattern ... />
     <foo:bar letsGoToTheBar="yeah" />
   </wsrm:MessageHeader>

Should we change our choice here?

This also reminds me of another schema nit: Why is the existing extensible 
type (the one with the required soap:mustUnderstand) named wsrm:RmBaseType, 
I thought we nuked all of the "Rm" prefixes?  I purposefully chose 
HeaderType above to work around this complaint.

thanx,
	doug

On 20-Feb-04 12:09, Tom Rutt wrote:

> Would the following change to the empy type provide better extensibility 
> for the protocol?
> 
>   <xsd:complexType name="EmptyType">
>        <xsd:sequence>
>            <xsd:any namespace="##other" processContents="lax" 
> minOccurs="0" maxOccurs="unbounded"/>
>        </xsd:sequence>
>        <xsd:anyAttribute namespace="##other" processContents="lax"/>
>    </xsd:complexType>
> 
> The above prosal adds extensible attributes and elements , without the 
> soap must understand attribute which is there for header elements.



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