Issue 213: appropriate expression of property constraints

This issue [1] points out that the constraints on the properties of  
various components should be expressed in the component model, whereas  
theyr'e only expressed in the XML serialisation now. I propose we  
adjust the component model specifications to reflect the constraints in  
the syntax.

To illustrate this, I've take a stab at what the Interface Operation  
component's definition would look like in this style. I'm not sure that  
all of the requirements are reflected in the component model here, but  
this should be enough to start discussion.

---8<---
The properties of the Interface Operation component are  as follows:
  - {name} A REQUIRED NCName as defined by [XML Namespaces].
  - {target namespace} A REQUIRED namespace name, as defined in [XML  
Namespaces].
  - {message exchange pattern} A REQUIRED URI identifying the  message  
exchange pattern used by the operation. This URI  MUST be an absolute  
URI (see [IETF RFC 2396]).
  - {message references} A REQUIRED, but possibly empty, set of Message  
Reference  components for the ordinary messages the operation accepts  
or sends. (See 2.5 Message Reference.)
  - {fault references} An REQUIRED, but possibly empty, set of Fault  
Reference  components for the fault messages the operation accepts or   
sends. (See 2.6 Fault Reference.)
  - {style} An OPTIONAL URI identifying the rules that were  used to  
construct the {element} properties of {message  references}. (See  
2.4.1.1 Operation Style.) This URI MUST be an  absolute URI (see [IETF  
RFC 2396]).
  - {safety} An OPTIONAL boolean indicating whether the  operation is  
asserted to be safe (as defined in Section  3.5 of [Web Architecture])  
for users of the described  service to invoke. If this property is  
false or is not  set, then no assertion has been made about the safety  
of  the operation, thus the operation MAY or MAY NOT be safe.  However,  
an operation SHOULD be marked safe if it meets  the criteria for a safe  
interaction defined in Section 3.5  of [Web Architecture]. The default  
value of this  property is false.
  - {features} An OPTIONAL set of named feature definitions used by the  
operation.
  - {properties} An OPTIONAL set of named property definitions used by  
the operation.

[...]

The XML representation for an Interface Operation component is an   
element information item with the following Infoset properties:
   - A [local name] of operation
   - A [namespace name] of  "http://www.w3.org/@@@@/@@/wsdl"
   - Two or more attribute information items amongst its [attributes] as  
  follows:
     - A REQUIRED name attribute information item as described below in  
2.4.2.1 name attribute information item with operation [owner].
     - A REQUIRED pattern attribute information item as described below  
in 2.4.2.2 pattern attribute information item with operation [owner].
     - An OPTIONAL style attribute information item as  described below  
in 2.4.2.3 style attribute information item with operation [owner].
     - An OPTIONAL safe attribute information item as  described below  
in 2.4.2.4 safe attribute information item with operation [owner].
     - Zero or more namespace qualified attribute information items.   
The [namespace name] of such  attribute information items MUST NOT be  
"http://www.w3.org/@@@@/@@/wsdl".
  - Zero or more element information item amongst its [children], in   
order, as follows:
   1. An OPTIONAL documentation  element information item (see 5.  
Documentation).
   2. Zero or more element information items from among the  following,  
in any order:
     - Zero or more input  element information items (see 2.5.2 XML  
Representation of Message Reference Component).
     - Zero or more output  element information items (see 2.5.2 XML  
Representation of Message Reference Component).
     - Zero or more infault  element information items (see 2.6.2 XML  
Representation of Fault Reference Component).
     - Zero or more outfault  element information items (see 2.6.2 XML  
Representation of Fault Reference Component).
     - A feature  element information item (see  2.7.2 XML  
Representation of Feature Component).
     - A property  element information item (see  2.8.2 XML  
Representation of Property Component).
     - Zero or more namespace-qualified  element information items  
amongst its [children]. The  [namespace name] of such element  
information items MUST NOT  be "http://www.w3.org/@@@@/@@/wsdl".
  - At least one of the [children] MUST be an  input , output , infault  
,  or outfault  element information item.

---8<---


1.  
http://dev.w3.org/cvsweb/%7Echeckout%7E/2002/ws/desc/issues/wsd- 
issues.html#x213

--
Mark Nottingham   Principal Technologist
Office of the CTO   BEA Systems

Received on Friday, 11 June 2004 19:09:05 UTC