2002/ws/desc/wsdl20 wsdl20.xml,1.142,1.143

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