[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Errata for SCA Assembly Specification
On behalf of BEA Systems, I hereby contribute the following suggested
errata for SCA Assembly Specification. The line numbers and section numbers are based on the corresponding
input specification for this TC. Michael Rowley 1.
Allow use of an <include/> element anywhere in a <composite/>
Agreed
changes: 1) Change
the definition of the composite complex type in the sca-core.xsd (crrently
lines 3160 to 3183 in the specification) to the following: <element name="composite" type="sca:Composite"/> <complexType name="Composite"> <sequence minOccurs="0" maxOccurs="unbounded"> <choice minOccurs="0" maxOccurs="unbounded"> <element name="include" type="sca:Include"/> <element name="service" type="sca:Service"/> <element name="property" type="sca:Property"/> <element name="component" type="sca:Component"/> <element name="reference" type="sca:Reference"/> <element name="wire" type="sca:Wire"/> </choice> <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </sequence> <attribute name="name" type="NCName" use="required"/> <attribute name="targetNamespace" type="anyURI" use="required"/> <attribute name="local" type="boolean" use="optional" default="false"/> <attribute name="autowire" type="boolean" use="optional" default="false"/> <attribute name="constrainingType" type="QName" use="optional"/> <attribute name="requires" type="sca:listOfQNames" use="optional"/> <attribute name="policySets" type="sca:listOfQNames" use="optional"/> <anyAttribute namespace="##any" processContents="lax"/> </complexType>
2) Remove
the top-level <include.../> element in the sca-core.xsd, currently line
3416 in the Assembly specification 2. Binding
cardinality for services is specified in a conflicting way
Change
lines 180/181 to indicate that zero or more bindings are allowed: 180 A
service element has zero or more
binding elements as children. If no bindings are specified, 3. References to
Composites in Examples should be QNames
(Issue
SCA-233) Change
line 397 to read as follows: <implementation.composite name="foo:MyValueComposite"/>
4. Autowire Example has
Errors
(Issue
SCA-234) The
Autowire examples between lines 1768 and 1841 have errors associated with the
<implementation.composite.../> elements, which are fixed as follows: a) Added
a foo: namespace to the composites 1.
Example without Autowire <?xml version="1.0" encoding="UTF-8"?> <!-- Autowire Example - No autowire --> <composite xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.osoa.org/xmlns/sca/1.0" targetNamespace="http://foo.com" xmlns:foo="http://foo.com" name="AccountComposite">
<service name="PaymentService" promote="PaymentsComponent"/>
<component name="PaymentsComponent"> <implementation.java class="com.foo.accounts.Payments"/> <service name="PaymentService"/> <reference name="CustomerAccountService" target="CustomerAccountComponent"/> <reference name="ProductPricingService" target="ProductPricingComponent"/> <reference name="AccountsLedgerService" target="AccountsLedgerComponent"/> <reference name="ExternalBankingService"/> </component>
<component name="CustomerAccountComponent"> <implementation.java class="com.foo.accounts.CustomerAccount"/> </component>
<component name="ProductPricingComponent"> <implementation.composite name="foo:ProductPricingComposite"/> </component>
<component name="AccountsLedgerComponent"> <implementation.composite name="foo:AccountsLedgerComposite"/> </component>
<reference name="ExternalBankingService" promote="PaymentsComponent/ExternalBankingService"/>
</composite>
2.
Example with Autowire <?xml version="1.0" encoding="UTF-8"?> <!-- Autowire Example - With autowire --> <composite xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.osoa.org/xmlns/sca/1.0" targetNamespace="http://foo.com" xmlns:foo="http://foo.com" name="AccountComposite">
<service name="PaymentService" promote="PaymentsComponent"> <interface.java class="com.foo.PaymentServiceInterface"/> </service>
<component name="PaymentsComponent" autowire="true"> <implementation.java class="com.foo.accounts.Payments"/> <service name="PaymentService"/> <reference name="CustomerAccountService"/> <reference name="ProductPricingService"/> <reference name="AccountsLedgerService"/> <reference name="ExternalBankingService"/> </component>
<component name="CustomerAccountComponent"> <implementation.java class="com.foo.accounts.CustomerAccount"/> </component>
<component name="ProductPricingComponent"> <implementation.composite name="foo:ProductPricingComposite"/> </component>
<component name="AccountsLedgerComponent"> <implementation.composite name="foo:AccountsLedgerComposite"/> </component>
<reference name="ExternalBankingService" promote="PaymentsComponent/ExternalBankingService"/>
</composite>
Pseudo-schema
errors - mismatches with the formal XSD
(Issue
SCA-240) Many of
the pseudo-schemas in the specification have errors and/or omissions that mean
they conflict with the formal XSDs. The following pseudo-schemas are
updated as shown: Line 100: <?xml version="1.0" encoding="UTF-8"?> <!-- Component schema snippet --> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0" targetNamespace="xs:anyURI" name="xs:QName" local="xs:boolean"? autowire="xs:boolean"? constrainingType="QName"? requires="list of xs:QName"? policySets="list of xs:QName"?>
...
<component name="xs:NCName" requires="list of xs:QName"? autowire="xs:boolean"? requires="list of xs:QName"? policySets="list of xs:QName"? constrainingType="xs:QName"?>* <implementation/>? <service name="xs:NCName" requires="list of xs:QName"? policySets="list of xs:QName"?>* <interface/>? <operation/>* <binding uri="xs:anyURI"? requires="list of xs:QName"? policySets="list of xs:QName"?/>* <callback/>? </service> <reference name="xs:NCName" multiplicity="0..1 or 1..1 or 0..n or 1..n"? autowire="xs:boolean"? target="list of xs:anyURI"? policySets="list of xs:QName"? wiredByImpl="xs:boolean"? requires="list of xs:QName"?>* <interface/>? <operation/>* <binding uri="xs:anyURI"? requires="list of xs:QName"? policySets="list of xs:QName"?/>* <callback/>? </reference> <property name="xs:NCName" (type="xs:QName" | element="xs:QName")? many="xs:boolean"? source="xs:string"? file="xs:anyURI"?>* property-value? </property> </component>
...
</composite>
Line 454: <?xml version="1.0" encoding="ASCII"?> <!-- Component type schema snippet --> <componentType xmlns="http://www.osoa.org/xmlns/sca/1.0" constrainingType="QName"? >
<service name="xs:NCName" requires="list of xs:QName"? policySets="list of xs:QName"?>* <interface/> <operation/>* <binding uri="xs:anyURI"? requires="list of xs:QName"? policySets="list of xs:QName"?/>* <callback/>? </service>
<reference name="xs:NCName" target="list of xs:anyURI"? multiplicity="0..1 or 1..1 or 0..n or 1..n"? wiredByImpl="xs:boolean"? requires="list of xs:QName"? policySets="list of xs:QName"?>* <interface/>? <operation/>* <binding uri="xs:anyURI"? requires="list of xs:QName"? policySets="list of xs:QName"?/>* <callback/>? </reference>
<property name="xs:NCName" (type="xs:QName" | element="xs:QName") many="xs:boolean"? mustSupply="xs:boolean"? policySets="list of xs:QName"?>* default-property-value? </property>
<implementation requires="list of xs:QName"? policySets="list of xs:QName"?/>?
</componentType>
Line 949: <?xml version="1.0" encoding="ASCII"?> <!-- Composite schema snippet --> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0" targetNamespace="xs:anyURI" name="xs:QName" local="xs:boolean"? autowire="xs:boolean"? constrainingType="QName"? requires="list of xs:QName"? policySets="list of xs:QName"?>
<include name="xs:QName"/>*
<service name="xs:NCName" promote="xs:anyURI" requires="list of xs:QName"? policySets="list of xs:QName"?>* <interface/>? <operation/>* <binding uri="xs:anyURI"? name="xs:QName"? requires="list of xs:QName"? policySets="list of xs:QName"?/>* <callback/>? </service>
<reference name="xs:NCName" target="list of xs:anyURI"? promote="list of xs:anyURI" wiredByImpl="xs:boolean"? multiplicity="0..1 or 1..1 or 0..n or 1..n"? requires="list of xs:QName"? policySets="list of xs:QName"?>* <interface/>? <operation/>* <binding uri="xs:anyURI"? name="xs:QName"? requires="list of xs:QName"? policySets="list of xs:QName"?/>* <callback/>? </reference>
<property name="xs:NCName" (type="xs:QName" | element="xs:QName") many="xs:boolean"? mustSupply="xs:boolean"?>* default-property-value? </property>
<component name="xs:NCName" autowire="xs:boolean"? requires="list of xs:QName"? policySets="list of xs:QName"?>* <implementation/>? <service name="xs:NCName" requires="list of xs:QName"? policySets="list of xs:QName"?>* <interface/>? <operation/>* <binding uri="xs:anyURI"? name="xs:QName"? requires="list of xs:QName"? policySets="list of xs:QName"?/>* <callback/>? </service> <property name="xs:NCName" (type="xs:QName" | element="xs:QName") source="xs:string"? file="xs:anyURI"?>* property-value </property> <reference name="xs:NCName" target="list of xs:anyURI"? autowire="xs:boolean"? wiredByImpl="xs:boolean"? requires="list of xs:QName"? policySets="list of xs:QName"? multiplicity="0..1 or 1..1 or 0..n or 1..n"?/>* <interface/>? <operation/>* <binding uri="xs:anyURI"? name="xs:QName"? requires="list of xs:QName"? policySets="list of xs:QName"?/>* <callback/>? </reference> </component>
<wire source="xs:anyURI" target="xs:anyURI" />*
</composite>
Line
1295: <?xml version="1.0" encoding="ASCII"?> <!-- Reference schema snippet --> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0" targetNamespace="xs:anyURI" name="xs:QName" local="xs:boolean"? autowire="xs:boolean"? constrainingType="QName"? requires="list of xs:QName"? policySets="list of xs:QName"?>
...
<reference name="xs:NCName" target="list of xs:anyURI"? promote="list of xs:anyURI"? wiredByImpl="xs:boolean"? multiplicity="0..1 or 1..1 or 0..n or 1..n"? requires="list of xs:QName"? policySets="list of xs:QName"?>* <interface/>? <operation name="xs:NCName" requires="list of xs:QName"? policySets="list of xs:QName"?/>* <binding uri="xs:anyURI"? name="xs:QName"? requires="list of xs:QName" policySets="list of xs:QName"?/>* <callback requires="list of xs:QName"? policySets="list of xs:QName"?>? <binding uri="xs:anyURI"? name="xs:QName"? requires="list of xs:QName"? policySets="list of xs:QName"?/>+ </callback> </reference>
...
</composite>
Line
1472: <?xml version="1.0" encoding="ASCII"?> <!-- Service schema snippet --> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0" targetNamespace="xs:anyURI" name="xs:QName" local="xs:boolean"? autowire="xs:boolean"? constrainingType="QName"? requires="list of xs:QName"? policySets="list of xs:QName"?> ...
<service name="xs:NCName" promote="xs:anyURI" requires="list of xs:QName"? policySets="list of xs:QName"?>* <interface/>? <operation name="xs:NCName" requires="list of xs:QName"? policySets="list of xs:QName"?/>* <binding uri="xs:anyURI"? name="xs:QName"? requires="list of xs:QName" policySets="list of xs:QName"?/>* <callback requires="list of xs:QName"? policySets="list of xs:QName"?>? <binding uri="xs:anyURI"? name="xs:QName"? requires="list of xs:QName"? policySets="list of xs:QName"?/>+ </callback> </service>
...
</composite>
Line
1874: <?xml version="1.0" encoding="ASCII"?> <!-- Composite Implementation schema snippet --> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0" targetNamespace="xs:anyURI" name="xs:QName" local="xs:boolean"? autowire="xs:boolean"? constrainingType="QName"? requires="list of xs:QName"? policySets="list of xs:QName"?>
...
<component name="xs:NCName" autowire="xs:boolean"? requires="list of xs:QName"? policySets="list of xs:QName"?>* <implementation.composite name="xs:QName"/>? <service name="xs:NCName" requires="list of xs:QName"? policySets="list of xs:QName"?>* <interface/>? <operation/>* <binding uri="xs:anyURI" name="xs:QName"? requires="list of xs:QName" policySets="list of xs:QName"?/>* <callback/>? </service> <property name="xs:NCName" (type="xs:QName" | element="xs:QName") source="xs:string"? file="xs:anyURI"?>* property-value </property> <reference name="xs:NCName" target="list of xs:anyURI"? autowire="xs:boolean"? wiredByImpl="xs:boolean"? requires="list of xs:QName"? policySets="list of xs:QName"? multiplicity="0..1 or 1..1 or 0..n or 1..n"?/>* <interface/>? <operation/>* <binding uri="xs:anyURI"? name="xs:QName"? requires="list of xs:QName" policySets="list of xs:QName"?/>* <callback/>? </reference> </component>
...
</composite>
Binding name
attribute not a QName
Conflicting
Specification of Values for Many-Valued String Properties
Unclear how
Composites are discovered when Referenced
Component URI is
not well described
Need to define
Namespace handling for included Composites
XSD definitions of
Component Service and Component Reference have unintended features
Java interface to
WSDL mapping is not defined
Schema definition
for Component, Component Reference @autowire attribute is incorrect
SCA <anyAttribute.../> declarations should use
namespace ##other rather than ##any
Conflict Between
SCA XSD and Specification Body about the handling of Multi-Valued Properties
|
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]