- From: Roberto Chinnici <Roberto.Chinnici@Sun.COM>
- Date: Mon, 05 Jan 2004 16:24:10 -0800
- To: www-ws-desc@w3.org
It appears that the definition of the property component in WSDL 2.0
([1]) does not allow the use of schema languages other than XML Schema.
A quick comparison with, e.g., the message reference component ([2])
will illustrate the issue.
The {message} property of a message reference component is defined as
follows:
{message} The element declaration resolved to by the value of the
message attribute information item if present, otherwise a similar
construct in some type system as referred to by some other attribute
information item if present, otherwise empty.
So in
<input messageReference="xs:NCName"?
message="xs:QName"? >
<documentation />?
</input>
the "message" attribute is optional and it can be replaced with a
different one (via extensibility).
On the other hand, the {value constraint} property of a property
component has this definition:
{value constraint} If the constraint element information item is
present, the type referred to by the value of this element information
item. Otherwise, if the value element information item is present, an
anonymous simple type, whose base type is "xs:anySimpleType", with a
single "enumeration" facet whose value is that of the element
information item. Otherwise, "xs:anySimpleType".
No mention of non-XML Schema type systems here. Moreover, in
<property
uri="xs:QName"
required="xs:boolean"? >
<documentation />?
[ <value /> | <constraint /> ]
</property>
one of <value/> or <constraint/> is REQUIRED. How would someone specify
a constraint using a schema language other then XML Schema then?
A possible solution is to change the syntax for <wsdl:property/> to:
<property
uri="xs:QName"
required="xs:boolean"?
value="xs:anySimpleType"?
constraint="xs:QName"? >
<documentation />?
</property>
Then the {value constraint} property would be defined as follows:
- if the value attribute information item is present, an anonymous
simple type, whose base type is "xs:anySimpleType", with a single
"enumeration" facet whose value is that of the attribute information
item;
- otherwise, if the constraint attribute information item is present,
the type referred to by the value of this attribute information item;
(incidentally, I think here we should say "the *simple* type definition
referred to by...")
- otherwise a similar construct in some type system as referred to by
some other attribute information item if present,
- otherwise the simple type definition for xs:anySimpleType
I cannot quite recall why we decided to use element information items
for <value/> and <constraint/> instead of attributes. Perhaps somebody
will help me remember...
Happy New Year!
Roberto
--
Roberto Chinnici
Java Web Services
Sun Microsystems, Inc.
roberto.chinnici@sun.com
[1] http://www.w3.org/TR/wsdl20/#Property
[2] http://www.w3.org/TR/wsdl20/#MessageReference
Received on Monday, 5 January 2004 19:21:33 UTC