- 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