- From: Arthur Ryman <ryman@ca.ibm.com>
- Date: Wed, 14 May 2003 06:11:53 -0400
- To: www-ws-desc@w3.org
- Message-ID: <OFAF510BC3.84685BB4-ON85256D26.003435BA@torolab.ibm.com>
Glen et al [1] are prosing a generic syntax for specifying property values
in WSDL, e.g.
<property uri='http://www.w3.org/2002/12/soap/features/action/Action'>
<value>http://example.com/GetLastTradePrice</value>
</property>
The Glen proposal has the advantage that it enables generic processing of
properties, but it has the disadvantage of being less readable and not
allowing validation of the property value based on the property name.
The simpler syntax is:
<sa:Action>http://example.com/GetLastTradePrice</sa:Action>
where previously in the document the sa namespace prefix has been set and
there is a schema for it, which would define, e.g. that the content of the
Action element is xsd:anyURI.
We can achieve generic property processing and have good readability and
validation if we borrow the approach used by WebDAV properties. The
solution is to have a standard mapping frorm the property name URI to a
QName:
WebDAV compliant XML processors MUST interpret a qualified name as a URI constructed by appending the
LocalPart to the namespace name URI. [2]
In this example, we have:
http://www.w3.org/2002/12/soap/features/action/Action maps to <sa:Action xmlns:sa="http://www.w3.org/2002/12/soap/features/action/">
The namespace URI would be associated with an XSD schema in the usual way.
Control over where elements may appear in the WSDL document can be
achieved via substitution groups or whatever mechnanism is currently
intended for controlling the placement of other extension elements.
The only new WSDL construct we need to enable generic property processing
is something that identifies a given namespace URI as defining a property
schema, e.g.
<wsdl:propertySchema namespace="http://www.w3.org/2002/12/soap/features/action/Action"/>
These propertySchema declarations would be placed near the start of the
document, perhaps following <import>. A WSDL processor would treat
elements from the declared namespaces as properties. QED
[1] http://lists.w3.org/Archives/Public/public-ws-pnf-tf/2003May/0001.html
[2] http://asg.web.cmu.edu/rfc/rfc2518.html#sec-23.4.2
Arthur Ryman
Received on Wednesday, 14 May 2003 06:12:01 UTC