- From: Arthur Ryman <aryman@dev.w3.org>
- Date: Wed, 10 Nov 2004 00:49:51 +0000
- To: public-ws-desc-eds@w3.org
Update of /sources/public/2002/ws/desc/wsdl20
In directory hutz:/tmp/cvs-serv26300
Modified Files:
wsdl20.xml
Log Message:
Added Interface constraints.
Index: wsdl20.xml
===================================================================
RCS file: /sources/public/2002/ws/desc/wsdl20/wsdl20.xml,v
retrieving revision 1.142
retrieving revision 1.143
diff -C2 -d -r1.142 -r1.143
*** wsdl20.xml 9 Nov 2004 17:46:44 -0000 1.142
--- wsdl20.xml 10 Nov 2004 00:49:49 -0000 1.143
***************
*** 345,348 ****
--- 345,367 ----
MessageReference FaultReference Feature Property Binding BindingFault BindingOperation
BindingMessageReference Service Endpoint"/>
+
+ <zed xmlns="http://www.w3.org/2004/zml">
+ DescriptionProps == <ran/> description <nl/>
+ ElementDeclProps == <ran/> elementDecl <nl/>
+ TypeDefProps == <ran/> typeDef <nl/>
+ InterfaceProps == <ran/> interface <nl/>
+ InterfaceFaultProps == <ran/> interfaceFault <nl/>
+ InterfaceOpProps == <ran/> interfaceOp <nl/>
+ MessageRefProps == <ran/> messageRef <nl/>
+ FaultRefProps == <ran/> faultRef <nl/>
+ FeatureProps == <ran/> feature <nl/>
+ PropertyProps == <ran/> property <nl/>
+ BindingProps == <ran/> binding <nl/>
+ BindingFaultProps == <ran/> bindingFault <nl/>
+ BindingOpProps == <ran/> bindingOp <nl/>
+ BindingMessageRefProps == <ran/> bindingMessageRef <nl/>
+ ServiceProps == <ran/> service <nl/>
+ EndpointProps == <ran/> endpoint
+ </zed>
</z:notation>
***************
*** 400,409 ****
</ulist>
! <z:schema xmlns="http://www.w3.org/2004/zml" name="ComponentModel">
components : <finset/> Component
<where/>
<forall/> x, y : components @ <nl/>
<t1/> x.id = y.id <implies/> x = y
! </z:schema>
<z:see names="Component"/>
--- 419,428 ----
</ulist>
! <schema xmlns="http://www.w3.org/2004/zml" name="ComponentModel">
components : <finset/> Component
<where/>
<forall/> x, y : components @ <nl/>
<t1/> x.id = y.id <implies/> x = y
! </schema>
<z:see names="Component"/>
***************
*** 413,420 ****
</ulist>
! <p>
The component model has additional constraints which are described in the following sections.
</p>
</z:notation>
--- 432,539 ----
</ulist>
! </z:notation>
!
! <z:notation name="Components">
!
! <schema xmlns="http://www.w3.org/2004/zml" name="Components">
! ComponentModel <nl/>
! descriptionComps, elementDeclComps, <nl/>
! typeDefComps, interfaceComps, <nl/>
! interfaceFaultComps, interfaceOpComps, <nl/>
! messageRefComps, faultRefComps, <nl/>
! featureComps, propertyComps, <nl/>
! bindingComps, bindingFaultComps, <nl/>
! bindingOpComps, bindingMessageRefComps, <nl/>
! serviceComps, endpointComps : <finset/> Component
! <where/>
! descriptionComps = {~x : components | <nl/>
! <t1/> x.props <in/> DescriptionProps~}
! <also/>
! elementDeclComps = {~x : components | <nl/>
! <t1/> x.props <in/> ElementDeclProps~}
! <also/>
! typeDefComps = {~x : components | <nl/>
! <t1/> x.props <in/> TypeDefProps~}
! <also/>
! interfaceComps = {~x : components | <nl/>
! <t1/> x.props <in/> InterfaceProps~}
! <also/>
! interfaceFaultComps = {~x : components | <nl/>
! <t1/> x.props <in/> InterfaceFaultProps~}
! <also/>
! interfaceOpComps = {~x : components | <nl/>
! <t1/> x.props <in/> InterfaceOpProps~}
! <also/>
! messageRefComps = {~x : components | <nl/>
! <t1/> x.props <in/> MessageRefProps~}
! <also/>
! faultRefComps = {~x : components | <nl/>
! <t1/> x.props <in/> FaultRefProps~}
! <also/>
! featureComps = {~x : components | <nl/>
! <t1/> x.props <in/> FeatureProps~}
! <also/>
! propertyComps = {~x : components | <nl/>
! <t1/> x.props <in/> PropertyProps~}
! <also/>
! bindingComps = {~x : components | <nl/>
! <t1/> x.props <in/> BindingProps~}
! <also/>
! bindingFaultComps = {~x : components | <nl/>
! <t1/> x.props <in/> BindingFaultProps~}
! <also/>
! bindingOpComps = {~x : components | <nl/>
! <t1/> x.props <in/> BindingOpProps~}
! <also/>
! bindingMessageRefComps = {~x : components | <nl/>
! <t1/> x.props <in/> BindingMessageRefProps~}
! <also/>
! serviceComps = {~x : components | <nl/>
! <t1/> x.props <in/> ServiceProps~}
! <also/>
! endpointComps = {~x : components | <nl/>
! <t1/> x.props <in/> EndpointProps~}
! </schema>
!
! <p>
The component model has additional constraints which are described in the following sections.
+ These additonal constraints often refer to the sets of ids that are associated which each type of component.
+ It is therefore convenient to define these sets.
+ </p>
+
+ <p>
+ Let <z:i>ComponentIds</z:i> be the component model augmented with the sets of ids associated
+ with each type of component:
</p>
+ <schema xmlns="http://www.w3.org/2004/zml" name="ComponentIds" >
+ Components <nl/>
+ descriptions, elementDecls, <nl/>
+ typeDefs, interfaces, <nl/>
+ interfaceFaults, interfaceOps, <nl/>
+ messageRefs, faultRefs, <nl/>
+ features, properties, <nl/>
+ bindings, bindingFaults, <nl/>
+ bindingOps, bindingMessageRefs, <nl/>
+ services, endpoints : <finset/> ID
+ <where/>
+ descriptions = {~x : descriptionComps @ x.id~} <nl/>
+ elementDecls = {~x : elementDeclComps @ x.id~} <nl/>
+ typeDefs = {~x : typeDefComps @ x.id~} <nl/>
+ interfaces = {~x : interfaceComps @ x.id~} <nl/>
+ interfaceFaults = {~x : interfaceFaultComps @ x.id~} <nl/>
+ interfaceOps = {~x : interfaceOpComps @ x.id~} <nl/>
+ messageRefs = {~x : messageRefComps @ x.id~} <nl/>
+ faultRefs = {~x : faultRefComps @ x.id~} <nl/>
+ features = {~x : featureComps @ x.id~} <nl/>
+ properties = {~x : propertyComps @ x.id~} <nl/>
+ bindings = {~x : bindingComps @ x.id~} <nl/>
+ bindingFaults = {~x : bindingFaultComps @ x.id~} <nl/>
+ bindingOps = {~x : bindingOpComps @ x.id~} <nl/>
+ bindingMessageRefs = {~x : bindingMessageRefComps @ x.id~} <nl/>
+ services = {~x : serviceComps @ x.id~} <nl/>
+ endpoints = {~x : endpointComps @ x.id~}
+ </schema>
+
</z:notation>
***************
*** 631,673 ****
</p>
<p>
! Let <z:i>DescriptionIds</z:i> express these referential integrity constraint
on the Description component:
</p>
<schema xmlns="http://www.w3.org/2004/zml" name="DescriptionIds">
! ComponentModel <nl/>
! descriptionComponent : Component <nl/>
descriptionProps : Description
<where/>
! description(descriptionProps) = descriptionComponent.props
! <also/>
! <forall/> x : components @ <nl/>
! <t1/> x.props <in/> <ran/> description <implies/> x = descriptionComponent
! <also/>
! <forall/> x : descriptionProps.interfaces @ <nl/>
! <t1/> <exists/> y : components @ y.props <in/> <ran/> interface
! <also/>
! <forall/> x : descriptionProps.bindings @ <nl/>
! <t1/> <exists/> y : components @ y.props <in/> <ran/> binding
! <also/>
! <forall/> x : descriptionProps.services @ <nl/>
! <t1/> <exists/> y : components @ y.props <in/> <ran/> service
! <also/>
! <forall/> x : descriptionProps.elementDeclarations @ <nl/>
! <t1/> <exists/> y : components @ y.props <in/> <ran/> elementDecl
<also/>
! <forall/> x : descriptionProps.typeDefinitions @ <nl/>
! <t1/> <exists/> y : components @ y.props <in/> <ran/> typeDef
</schema>
! <z:see names="ComponentModel Component Description"/>
<ulist>
<item><p>The component model contains a unique Description component.</p></item>
! <item><p>Each Interface component contained in the Description component exists in the component model.</p></item>
! <item><p>Each Binding component contained in the Description component exists in the component model.</p></item>
! <item><p>Each Service component contained in the Description component exists in the component model.</p></item>
! <item><p>Each Element Declaration component contained in the Description component exists in the component model.</p></item>
! <item><p>Each Type Definition component contained in the Description component exists in the component model.</p></item>
</ulist>
</z:notation>
--- 750,785 ----
</p>
<p>
! Let <z:i>DescriptionIds</z:i> express these referential integrity constraints
on the Description component:
</p>
+ <ulist>
+ <item><p>Let <z:i>descriptionComp</z:i> be the Description component.</p></item>
+ <item><p>Let <z:i>descriptionProps</z:i> be the properties of the Description component.</p></item>
+ </ulist>
<schema xmlns="http://www.w3.org/2004/zml" name="DescriptionIds">
! ComponentIds <nl/>
! descriptionComp : Component <nl/>
descriptionProps : Description
<where/>
! descriptionComps = {descriptionComp} <nl/>
! descriptionComp.props = description(descriptionProps)
<also/>
! descriptionProps.interfaces = interfaces <nl/>
! descriptionProps.bindings = bindings <nl/>
! descriptionProps.services = services <nl/>
! descriptionProps.elementDeclarations = elementDecls <nl/>
! descriptionProps.typeDefinitions = typeDefs
</schema>
! <z:see names="ComponentIds Component Description"/>
<ulist>
<item><p>The component model contains a unique Description component.</p></item>
! <item><p>The Description component contains exactly the set of Interface components contained in the component model.</p></item>
! <item><p>The Description component contains exactly the set of Binding components contained in the component model.</p></item>
! <item><p>The Description component contains exactly the set of Service components contained in the component model.</p></item>
! <item><p>The Description component contains exactly the set of Element Declaration components contained in the component model.</p></item>
! <item><p>The Description component contains exactly the set of Type Definition components contained in the component model.</p></item>
</ulist>
</z:notation>
***************
*** 723,745 ****
<schema xmlns="http://www.w3.org/2004/zml" name="DescriptionQNames">
! ComponentModel
<where/>
! <forall/> x, y : components; p, q : Interface | <nl/>
<t1/> x.props = interface(p) <land/> y.props = interface(q) @ <nl/>
<t1/> p.name = q.name <implies/> x = y
<also/>
! <forall/> x, y : components; p, q : Binding | <nl/>
<t1/> x.props = binding(p) <land/> y.props = binding(q) @ <nl/>
<t1/> p.name = q.name <implies/> x = y
<also/>
! <forall/> x, y : components; p, q : Service | <nl/>
<t1/> x.props = service(p) <land/> y.props = service(q) @ <nl/>
<t1/> p.name = q.name <implies/> x = y
<also/>
! <forall/> x, y : components; p, q : ElementDeclaration | <nl/>
<t1/> x.props = elementDecl(p) <land/> y.props = elementDecl(q) @ <nl/>
<t1/> p.name = q.name <implies/> x = y
<also/>
! <forall/> x, y : components; p, q : TypeDefinition | <nl/>
<t1/> x.props = typeDef(p) <land/> y.props = typeDef(q) @ <nl/>
<t1/> p.name = q.name <implies/> x = y
--- 835,857 ----
<schema xmlns="http://www.w3.org/2004/zml" name="DescriptionQNames">
! Components
<where/>
! <forall/> x, y : interfaceComps; p, q : Interface | <nl/>
<t1/> x.props = interface(p) <land/> y.props = interface(q) @ <nl/>
<t1/> p.name = q.name <implies/> x = y
<also/>
! <forall/> x, y : bindingComps; p, q : Binding | <nl/>
<t1/> x.props = binding(p) <land/> y.props = binding(q) @ <nl/>
<t1/> p.name = q.name <implies/> x = y
<also/>
! <forall/> x, y : serviceComps; p, q : Service | <nl/>
<t1/> x.props = service(p) <land/> y.props = service(q) @ <nl/>
<t1/> p.name = q.name <implies/> x = y
<also/>
! <forall/> x, y : elementDeclComps; p, q : ElementDeclaration | <nl/>
<t1/> x.props = elementDecl(p) <land/> y.props = elementDecl(q) @ <nl/>
<t1/> p.name = q.name <implies/> x = y
<also/>
! <forall/> x, y : typeDefComps; p, q : TypeDefinition | <nl/>
<t1/> x.props = typeDef(p) <land/> y.props = typeDef(q) @ <nl/>
<t1/> p.name = q.name <implies/> x = y
***************
*** 1090,1100 ****
<schema xmlns="http://www.w3.org/2004/zml" name="InterfaceIds">
! ComponentModel
<where/>
! <forall/> x : components; p : Interface | x.props = interface(p) @ <nl/>
! <t1/> <forall/> id : p.extendedInterfaces @ <nl/>
! <t2/> <exists/> y : components; q : Interface | id = y.id @ y.props = interface(q)
</schema>
</z:notation>
--- 1202,1250 ----
<schema xmlns="http://www.w3.org/2004/zml" name="InterfaceIds">
! ComponentIds
<where/>
! <forall/> x : interfaceComps; p : Interface | x.props = interface(p) @ <nl/>
! <t1/> x.id <notin/> p.extendedInterfaces <land/> <nl/>
! <t1/> p.extendedInterfaces <subset/> interfaces <land/> <nl/>
! <t1/> p.faults <subseteq/> interfaceFaults <land/> <nl/>
! <t1/> p.operations <subseteq/> interfaceOps <land/> <nl/>
! <t1/> p.features <subseteq/> features <land/> <nl/>
! <t1/> p.properties <subseteq/> properties
</schema>
+ <ulist>
+ <item><p>No Interface component extends itself.</p></item>
+ <item><p>The Interface components extended by each Interface component are contained in the component model.</p></item>
+ <item><p>The Fault components of each Interface component are contained in the component model.</p></item>
+ <item><p>The Operation components of each Interface component are contained in the component model.</p></item>
+ <item><p>The Feature components of each Interface component are contained in the component model.</p></item>
+ <item><p>The Property components of each Interface component are contained in the component model.</p></item>
+ </ulist>
+
+ </z:notation>
+
+ <z:notation name="InterfaceClosure">
+ <p>
+ The properties of an Interface component contain the properties of each
+ Interface component that it extends.
+ </p>
+
+ <p>
+ Let <z:i>InterfaceClosure</z:i> express the Interface closure constraints:
+ </p>
+
+ <schema xmlns="http://www.w3.org/2004/zml" name="InterfaceClosure">
+ InterfaceIds
+ <where/>
+ <forall/> x, y : interfaceComps; p, q : Interface | <nl/>
+ <t1/> x.props = interface(p) <land/> <nl/>
+ <t1/> y.props = interface(q) <land/> <nl/>
+ <t1/> y.id <in/> p.extendedInterfaces @ <nl/>
+ <t2/> q.extendedInterfaces <subset/> p.extendedInterfaces <land/> <nl/>
+ <t2/> q.faults <subseteq/> p.faults <land/> <nl/>
+ <t2/> q.operations <subseteq/> p.operations <land/> <nl/>
+ <t2/> q.features <subseteq/> p.features <land/> <nl/>
+ <t2/> q.properties <subseteq/> p.properties
+ </schema>
</z:notation>
Received on Wednesday, 10 November 2004 00:49:52 UTC