Hi, David. Though I am not an EG member of the jsr-921, I think, the intention of rule was to express the examples. As you pointed out, there seems be holes in the rule, IMO, the rule should be updated clearly reflecting the usage of examples.
I think the rule 3's "E" should be interpreted as the name of element describe in rule 2, as you addressed. FYI, in Axis, the jsr-921 ruled qname was implemented in respect to the examples of JSR-921 spec. See the org.apache.axis.wsdl.symbolTable.SchemaUtils#getNodeNameQName() and BUG-24576 in bugzilla. (http://issues.apache.org/bugzilla/show_bug.cgi?id=24576) /Jongjin ----- Original Message ----- From: "David Jencks" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Sunday, April 03, 2005 6:32 AM Subject: Problems with the jsr 921 ewebsvcs 1.1. spec I think there are some problems with the ewebsvcs 1.1 spec (jsr 921). I'd like some review of my conclusions before I send this to the expert group. Many thanks, david jencks The section 7.3.2.2 has at least three errors making any interpretation of the spec problematical if not impossible. 1. The example schema is invalid. A top level element cannot have minOccurs or maxOccurs attributes. Therefore use case 3, p 63, does not exist. 2. The rules do not correspond to the examples. Rule 3.a: a. If E has a name attribute, then the name of A is "E[<minOccursValue>,<maxOccursValue>]" where E is the value of E’s name attribute. The name is entered as an anonymous-type-qname. Aside from the overloading of "E" to mean a string and an element in a schema sml document, this clearly states that the name for example 6 is X:inside[,10] or inside[1,10] rather than the claimed X:>root>inside[,10] This is clearly the only possible interpretation of rule 3.a in the context of the other rules. All other rules that extend the name of an enclosing element or type explicitly include the use of the enclosing items name in the construction of the current items name. These rules are 1.b and 2.b: 1.b: If T has no name attribute, then its name is “>E” where E is the name of its enclosing element. The name is entered as an anonymous-type-qname. 2.b: If E is not at the root level, then the name “T>N” where T is the name of the enclosing type and N is the value of the name attribute. The name is entered as an anonymous-type-qname. The name shown in example 6 appears to have been constructed using a rule such as: If E has a name attribute, then the name of A is "Ename[<minOccursValue>,<maxOccursValue>]" where Ename is the name of element E as specified in rule 2. 3. Rule 3 distinguishes between the cases where an element has a name attribute and where it is a reference to a global element. Rule 2 is therefore incomplete since there is no case for local elements that are references, lacking a name attribute.
