- From: Greg Ritzinger <gritzinger@novell.com>
- Date: Thu, 18 Nov 2004 08:00:39 -0700
- To: <steve@enigmatec.net>,<public-ws-chor@w3.org>
- Message-Id: <s19c56b3.078@sinclair.provo.novell.com>
Steve, A minor point on CHANGE ONE: We changed the attribute name silentAction to silent in order to avoid confusion w/ silentAction's other use, so the new <variableDefinitions> should be: <fragment <variableDefinitions> <variable name=ncname informationType=qname|channelType=qname mutable=true|false? free=true|false? silent=true|false? roleType=qname* />+ </variableDefinitions> </fragment> <fragment> >>>Steve Ross-Talbot <steve@enigmatec.net> 11/18/04 9:49 am >>> Section 2.4.2 *** CHANGE ONE <fragment> The syntax of the variableDefinitions construct is:; <variableDefinitions> <variable name=ncname informationType=qname|channelType=qname mutable=true|false? free=true|false? silentAction=true|false? roleType=qname? />+ </variableDefinitions> </fragment> CHANGE TO: <fragment The syntax of the variableDefinitions construct is:; <variableDefinitions> <variable name=ncname informationType=qname|channelType=qname mutable=true|false? free=true|false? silentAction=true|false? roleType=qname* />+ </variableDefinitions> </fragment> *** CHANGE TWO <fragment> The optional attribute roleType is used to specify the Role Type of a party at which the Variable information will reside. * The attribute name is used for specifying a distinct name for each variable element declared within a variableDefinitions element when needed. The Variables with Role Type not specified MUST have distinct names. The Variables with Role Type specified MUST have distinct names, when their Role Type is the same * A Variable defined without a Role Type is equivalent to a Variable that is defined at all the Role Types that are part of the Relationship Types of the Choreography where the Variable is defined. For example if Choreography C1 has Relationship Type R that has a tuple (Role1, Role2), then a Variable x defined in Choreography C1 without a roleType attribute means it is defined at Role1 and Role2 </fragment> CHANGE TO: <fragment> The optional attribute roleType is used to specify the Role Type(s) of a party at which the Variable information will reside. One may specify one or more roleTypes for a variable. * The attribute name is used for specifying a distinct name for each variable element declared within a variableDefinitions element when needed. The Variables with Role Type not specified MUST have distinct names. The Variables with Role Type specified MUST have distinct names, when their Role Type is the same. * A Variable defined without a Role Type is equivalent to a Variable that is defined at all the Role Types that are part of the Relationship Types of the Choreography where the Variable is defined. For example if Choreography C1 has Relationship Type R that has a tuple (Role1, Role2), then a Variable x defined in Choreography C1 without a roleType attribute means it is defined at Role1 and Role2 Thus all variables MUST have a name and that name MUST be distinct with respect to the Role Type(s) in which the variable resides. In those cases where the visibility of a variable is wholly within a single role then that role needs to be named in the definition of the variable as the Role Type. In those cases where the variable is shared amongst a subset of roles within a choreography those roles need to be named within the definition of the variable as the Role Types. </fragment> *** CHANGE THREE In the schema definition it defines a tVariable as: <fragment> <complexType name=tVariable> <complexContent> <extension base=cdl:tExtensibleElements> <attribute name=name type=NCName use=required/> <attribute name=informationType type=QName use=optional/> <attribute name=channelType type=QName use=optional/> <attribute name=mutable type=boolean use=optional default=true/> <attribute name=free type=boolean use=optional default=false/> <attribute name=silentAction type=boolean use=optional default=false/> <attribute name=role type=QName use=optional/> </extension> </complexContent> </complexType> </fragment> CHANGE TO: <fragment> <complexType name=tVariable> <complexContent> <extension base=cdl:tExtensibleElements> <attribute name=name type=NCName use=required/> <attribute name=informationType type=QName use=optional/> <attribute name=channelType type=QName use=optional/> <attribute name=mutable type=boolean use=optional default=true/> <attribute name=free type=boolean use=optional default=false/> <attribute name=silentAction type=boolean use=optional default=false/> <attribute name=roles use=optional> <simpleType> <list itemType=QName/> </simpleType> </attribute> </extension> </complexContent> </complexType> </fragment> I have chosen not to use ENTITIES, IDREFS or NMTOKENS because they ground at NCName and not QName. Hence I have constructed a specific list type. It probably makes sense to impose a restriction on minLength=1 to the list but I don't know how to do that in the context of the schema we have. This change should ensure clarity and resolve issue 691 whilst preserving the shortcut of defining a variable at all roles. Cheers Steve T
Received on Thursday, 18 November 2004 15:01:23 UTC