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
- From: Mike Edwards <mike_edwards@uk.ibm.com>
- To: "OASIS Assembly" <sca-assembly@lists.oasis-open.org>
- Date: Mon, 22 Mar 2010 14:31:28 +0000
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]