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: ISSUE 18: Proposal to resolve Issue 18



Folks,

Here is my proposal for Issue 18, which is one of the workitems following from the F2F meeting:

Issue 18 has the title "XSD definitions of Component Service and Component Reference have unintended features"
- in particular, ComponentService and ComponentReference pick up the "promote" attribute from Service and
Reference.

The principle of this proposal is to NOT derive ComponentService and ComponentReference through restriction.
Instead, they are simply declared in a standalone fashion, as follows:

Current declarations:

    <complexType name="ComponentService">
            <complexContent>
                    <restriction base="sca:Service">
                        <sequence>
                                 <element ref="sca:interface" minOccurs="0" maxOccurs="1"/>
                                 <element name="operation" type="sca:Operation" minOccurs="0"
                                            maxOccurs="unbounded" />
                             <choice minOccurs="0" maxOccurs="unbounded">
                                <element ref="sca:binding"/>
                                     <any namespace="##other" processContents="lax"
                                             minOccurs="0" maxOccurs="unbounded"/>
                             </choice>
                             <element ref="sca:callback" minOccurs="0" maxOccurs="1"/>
                             <any namespace="##other" processContents="lax" minOccurs="0"
                                     maxOccurs="unbounded"/>
                        </sequence>
                        <attribute name="name" type="NCName" use="required"/>
                        <attribute name="requires" type="sca:listOfQNames"
                                use="optional"/>
                        <attribute name="policySets" type="sca:listOfQNames"
                                use="optional"/>
                        <anyAttribute namespace="##any" processContents="lax"/>
                    </restriction>
            </complexContent>
    </complexType>


    <complexType name="ComponentReference">
            <complexContent>
                    <restriction base="sca:Reference">
                            <sequence>
                                    <element ref="sca:interface" minOccurs="0" maxOccurs="1" />
                                    <element name="operation" type="sca:Operation" minOccurs="0"
                                            maxOccurs="unbounded" />
                                    <choice minOccurs="0" maxOccurs="unbounded">
                                            <element ref="sca:binding" />
                                            <any namespace="##other" processContents="lax" />
                                    </choice>
                                    <element ref="sca:callback" minOccurs="0" maxOccurs="1" />
                                    <any namespace="##other" processContents="lax" minOccurs="0"
                                            maxOccurs="unbounded" />
                            </sequence>
                            <attribute name="name" type="NCName" use="required" />
                            <attribute name="autowire" type="boolean" use="optional" default="false"/>
                            <attribute name="wiredByImpl" type="boolean" use="optional" default="false"/>
                            <attribute name="target" type="sca:listOfAnyURIs" use="optional"/>
                            <attribute name="multiplicity" type="sca:Multiplicity"
                                    use="optional" default="1..1" />
                            <attribute name="requires" type="sca:listOfQNames" use="optional"/>
                        <attribute name="policySets" type="sca:listOfQNames"
                                use="optional"/>
                            <anyAttribute namespace="##any" processContents="lax" />
                    </restriction>
            </complexContent>
    </complexType>


Proposed declarations:

    <complexType name="ComponentService">
        <sequence>
                <element ref="sca:interface" minOccurs="0" maxOccurs="1"/>
                <element name="operation" type="sca:Operation" minOccurs="0"
                            maxOccurs="unbounded" />
                <choice minOccurs="0" maxOccurs="unbounded">
                        <element ref="sca:binding"/>
                      <any namespace="##other" processContents="lax"
                              minOccurs="0" maxOccurs="unbounded"/>
                </choice>
                <element ref="sca:callback" minOccurs="0" maxOccurs="1"/>
                <any namespace="##other" processContents="lax" minOccurs="0"
                             maxOccurs="unbounded"/>
        </sequence>
        <attribute name="name" type="NCName" use="required"/>
        <attribute name="requires" type="sca:listOfQNames"
                   use="optional"/>
        <attribute name="policySets" type="sca:listOfQNames"
                  use="optional"/>
        <anyAttribute namespace="##any" processContents="lax"/>
    </complexType>

    <complexType name="ComponentReference">
            <sequence>
                    <element ref="sca:interface" minOccurs="0" maxOccurs="1" />
                    <element name="operation" type="sca:Operation" minOccurs="0"
                                    maxOccurs="unbounded" />
                    <choice minOccurs="0" maxOccurs="unbounded">
                            <element ref="sca:binding" />
                            <any namespace="##other" processContents="lax" />
                    </choice>
                    <element ref="sca:callback" minOccurs="0" maxOccurs="1" />
                    <any namespace="##other" processContents="lax" minOccurs="0"
                                    maxOccurs="unbounded" />
            </sequence>
            <attribute name="name" type="NCName" use="required" />
            <attribute name="autowire" type="boolean" use="optional" default="false"/>
            <attribute name="wiredByImpl" type="boolean" use="optional" default="false"/>
            <attribute name="target" type="sca:listOfAnyURIs" use="optional"/>
            <attribute name="multiplicity" type="sca:Multiplicity"
                    use="optional" default="1..1" />
            <attribute name="requires" type="sca:listOfQNames" use="optional"/>
      <attribute name="policySets" type="sca:listOfQNames" use="optional"/>
            <anyAttribute namespace="##any" processContents="lax" />
    </complexType>

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








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