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

 


Help: OASIS Mailing Lists Help | MarkMail Help

sca-assembly message

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


Subject: Re: [sca-assembly] [NEW ISSUE] Problems with the Extension Points in theSCA XSDs



Logged as:  http://www.osoa.org/jira/browse/ASSEMBLY-223

Yours,  Mike.

Strategist - Emerging Technologies, SCA & SDO.
Co Chair OASIS SCA Assembly TC.
IBM Hursley Park, Mail Point 146, Winchester, SO21 2JN, Great Britain.
Phone & FAX: +44-1962-818014    Mobile: +44-7802-467431  
Email:  mike_edwards@uk.ibm.com



From: Mike Edwards/UK/IBM@IBMGB
To: "OASIS Assembly" <sca-assembly@lists.oasis-open.org>
Date: 22/03/2010 14:20
Subject: [sca-assembly] [NEW ISSUE] Problems with the Extension Points in the SCA XSDs






Raiser:                Mike Edwards


Target:                sca-assembly-1.1-spec-cd05.doc


Description:


The SCA XSDs mix two different forms of extensibility and this causes significant problems such as UPA errors.


The two forms of extensibility are:


1) The use of substitution groups for the extensibility of:


implementation

interface

binding

wireFormat

operationSelector

importBase

exportBase


2) The use of


<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>


for extensibility in many locations



A UPA problem potentially exists in any place where ONE or MORE of the elements in the list 1) above is declared

to be used within another element in combination with 2) in a sequence or choice where it may occur that one of the

list 1) elements is validly succeeded by an <any/> of the form in 2).  IF an extended version of any of the 1) elements

is created, in a non-sca namespace (this is REQUIRED for any non-standard extension), then a UPA error will be

reported whenever such an extension is used.


The following locations in the current XSDs are at fault:


- ComponentType type

- Component type ("lash up" fix applied here)

- Callback type

- ContributionType type



Proposal:


For the locations affected, provide flexible extensibility using the following element instead of <any/>:


<element ref="sca:extensions" minOccurs="0" maxOccurs="1" />


...as has already been done for some elements/types including the "Contract" type:


1) ComponentType


  <complexType name="ComponentType">

     <complexContent>

        <extension base="sca:CommonExtensionBase">

           <sequence>

              <element ref="sca:implementation" minOccurs="0"/>

              <choice minOccurs="0" maxOccurs="unbounded">

                 <element name="service" type="sca:ComponentService"/>

                 <element name="reference" type="sca:ComponentTypeReference"/>

                 <element name="property" type="sca:Property"/>

              </choice>

              <element ref="sca:extensions" minOccurs="0" maxOccurs="1" />

           </sequence>

        </extension>

     </complexContent>

  </complexType>


2) Callback type


  <complexType name="Callback">

     <complexContent>

        <extension base="sca:CommonExtensionBase">

           <choice minOccurs="0" maxOccurs="unbounded">

              <element ref="sca:binding"/>

              <element ref="sca:requires"/>

              <element ref="sca:policySetAttachment"/>

              <element ref="sca:extensions" minOccurs="0" maxOccurs="1" />

           </choice>

           <attribute name="requires" type="sca:listOfQNames" use="optional"/>

           <attribute name="policySets" type="sca:listOfQNames" use="optional"/>

        </extension>

     </complexContent>

  </complexType>



3) ContributionType type


  <complexType name="ContributionType">

     <complexContent>

        <extension base="sca:CommonExtensionBase">

           <sequence>

              <element name="deployable" type="sca:DeployableType" minOccurs="0" maxOccurs="unbounded"/>

              <element ref="sca:importBase" minOccurs="0" maxOccurs="unbounded"/>

              <element ref="sca:exportBase" minOccurs="0" maxOccurs="unbounded"/>

              <element ref="sca:extensions" minOccurs="0" maxOccurs="1" />

           </sequence>

        </extension>

     </complexContent>

  </complexType>



4) Component type (strictly this is already "fixed" but is not consistent with the above...)


  <complexType name="Component">

     <complexContent>

        <extension base="sca:CommonExtensionBase">

           <sequence>

              <element ref="sca:implementation" minOccurs="0" maxOccurs="1"/>

              <choice minOccurs="0" maxOccurs="unbounded">

                 <element name="service" type="sca:ComponentService"/>

                 <element name="reference" type="sca:ComponentReference"/>

                 <element name="property" type="sca:PropertyValue"/>

                 <element ref="sca:requires"/>

                 <element ref="sca:policySetAttachment"/>

              </choice>

              <element ref="sca:extensions" minOccurs="0" maxOccurs="1" />

           </sequence>

           <attribute name="name" type="NCName" use="required"/>

           <attribute name="autowire" type="boolean" use="optional"/>

           <attribute name="requires" type="sca:listOfQNames" use="optional"/>

           <attribute name="policySets" type="sca:listOfQNames" use="optional"/>

        </extension>

     </complexContent>

  </complexType>



This leaves all the other locations where <any/> is used, but in those cases there is no use of substitution groups

in any of the peer elements of the <any/>.



Yours,  Mike.


Strategist - Emerging Technologies, SCA & SDO.

Co Chair OASIS SCA Assembly TC.

IBM Hursley Park, Mail Point 146, Winchester, SO21 2JN, Great Britain.

Phone & FAX: +44-1962-818014    Mobile: +44-7802-467431  

Email:  mike_edwards@uk.ibm.com





Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU












Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU








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