[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: [Issue 223] Problems with the Extension Points in the SCA XSDs
I like this solution. One comment I have is: wouldn't it be better if we used <sca:extensions> element for all <any>s, regardless of whether we encounter UPA or not? I like the uniformity of that. Otherwise, one has to remember whether there is a maxOccurs="1" on the substitution group or that there is no substitution group, and therefore no wrapper for <any>. -Anish -- On 3/22/2010 7:31 AM, Mike Edwards wrote: > > 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]