You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by David Jencks <da...@yahoo.com> on 2005/04/02 23:32:09 UTC

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.

Re: Problems with the jsr 921 ewebsvcs 1.1. spec

Posted by Jongjin Choi <gu...@hotmail.com>.
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" <da...@yahoo.com>
To: <de...@geronimo.apache.org>
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.