This document is also available in these non-normative formats: .
Copyright © @@@@ W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply.
This document describes the Web Services Description Language (WSDL) Version 1.2 RDF mapping.
This document is an editors' copy that has no official standing.
1. URI References for WSDL constructs
2. References
A. Acknowledgements (Non-Normative)
B. Part 4 Change Log (Non-Normative)
1. URI References for WSDL constructs
1.1 WSDL URIs
1.2 Fragment Identifiers
1.3 Extension Elements
1.4 Example
1.5 Relation to WSDL 1.1
2. References
2.1 Normative References
2.2 Informative References
A. Acknowledgements (Non-Normative)
B. Part 4 Change Log (Non-Normative)
B.1 WSDL Specification Changes
Editorial note: JJM | 20031013 |
In a later revision of this specification, this document will contain a full WSDL to RDF mapping. Currently, this document contains only a means for constructing URI references for WSDL constructs. There are known issues with the algorithm used; in particular, the use of fragment identifiers may be problematic, as is currently being investigated by the W3C Technical Architecture Group. We expect that a future revision of this specification will contain a revised algorithm. |
This appendix provides a syntax for URI references for constructs found in a WSDL document. This includes first class constructs such as interface, binding, and service and subordinate constructs such as interface operations. The URI references are easy to understand and compare, while imposing no burden on the WSDL author.
There are two main cases for WSDL URIs:
the URI of a WSDL document
the URI of a WSDL namespace
The URI of a WSDL document can be dereferenced to give a resource representation that contributes component definitions to a single WSDL namespace. If the media type is set to the WSDL media type, then the fragment identifiers can be used to identify the main components that are defined in the document.
However, this appendix specifies the use of the namespace URI with the WSDL fragment identifiers to form a URI-reference.
Editorial note: MJG | 20030203 |
The URI of a WSDL namespace may not be dereferencable, or if it is dereferencable, then it may not resolve to a resource representation that has the WSDL media type. For example, a namespace URI may resolve to an HTML document that describes the namespace. Since the namespace URI does not necessarily reference a resource with the WSDL media type, the use of WSDL fragment identifiers with it is not strictly in compliance with the definition of URI-reference. Comment from the W3C Technical Architecture Group on this point is invited. |
The following fragment identifier syntax is compliant with the [XPointer Framework].
The URI reference for a WSDL construct is the {target namespace} property of either the construct itself, in the case of interfaces, bindings, services or operations, or the {target namespace} property of an ancestor construct.
The URI provided by the {target namespace} property is combined with a fragment identifier, where the fragment identifier is constructed from the {name} property of the construct and the {name} properties of its ancestors as a path according to Table 1-1. In that table the first column gives the name of the WSDL construct as the [local name] of the element information item that represents that construct in a WSDL document. Columns two, three and four populate the variables x, y and z respectively. These variables are then used to construct the fragment in column five.
Construct | x | y | z | Fragment |
---|---|---|---|---|
interface | {name} property of interface | n/a | n/a | interface(x) |
operation | {name} property of operation | {name} property of parent interface | n/a | operation(y/x) |
input | {messageReference} property of message reference | {name} property of parent operation | {name} property of grandparent interface | input(z/y/x) |
output | {messageReference} property of message reference | {name} property of parent operation | {name} property of grandparent interface | output(z/y/x) |
infault | {name} property of message reference | {name} property of parent operation | {name} property of grandparent interface | infault(z/y/x) |
outfault | {name} property of message reference | {name} property of parent operation | {name} property of grandparent interface | outfault(z/y/x) |
binding | {name} property of binding | n/a | n/a | binding(x) |
service | {name} property of service | n/a | n/a | service(x) |
endpoint | {name} property of endpoint | {name} property of parent service | n/a | endpoint(y/x) |
Note that the above rules are defined in terms of component
properties rather than transfer syntax. Because of the mappings
defined for these properties, values are always
available, even if certain optional attribute information items
are missing from the WSDL document. This allows meaningful
URI-references to be formed for constructs like Message Reference
components (see [WSDL 1.2 Core Language]) whose element information items
<input> and <output> may not actually carry a
messageReference
attribute information item.
WSDL has an open content model. It is therefore possible for an extension to define new components. The XPointer Framework scheme for components added by extensions is:
extension(extension-namespace, extension-specific-syntax)
where extension-namespace is the namespace that identifies the extension, e.g. for SOAP the namespace is http://www.w3.org/@@@@/@@/wsdl/soap12, and extension-specific-syntax is defined by the extension. The owner of the extension must define any components contributed by the extension and a syntax for identifying them.
Consider the following WSDL located at http://schemas.airlines.org/TicketAgent.wsdl:
Example 1-1. URI References - Example WSDL
<?xml version="1.0" encoding="UTF-8"?> <definitions name="TicketAgent" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://airline.wsdl/ticketagent/" xmlns:tns="http://airline.wsdl/ticketagent/" xmlns:xsd1="http://airline/" > <import location="TicketAgent.xsd" namespace="http://airline/" /> <interface name="TicketAgent"> <operation name="listFlights" > <input messageReference="listFlightsRequest" body="xsd1:listFlightsRequest" /> <output messageReference="listFlightsResponse" body="xsd1:listFlightsResponse" /> </operation> <operation name="reserveFlight" > <input messageReference="reserveFlightRequest" body="xsd1:reserveFlightRequest" /> <output messageReference="reserveFlightResponse" body="xsd1:reserveFlightResponse" /> </operation> </interface> </definitions>
Its conceptual elements have the following URI-references:
Example 1-2. URI References - Example URIs
http://airline.wsdl/ticketagent/#interface(TicketAgent) http://airline.wsdl/ticketagent/#operation(TicketAgent/listFlights) http://airline.wsdl/ticketagent/#input(TicketAgent/listFlights/listFlightsRequest) http://airline.wsdl/ticketagent/#output(TicketAgent/listFlights/listFlightsResponse) http://airline.wsdl/ticketagent/#operation(TicketAgent/reserveFlight) http://airline.wsdl/ticketagent/#input(TicketAgent/reserveFlight/reserveFlightRequest) http://airline.wsdl/ticketagent/#output(TicketAgent/reserveFlight/reserveFlightResponse)
This document is the work of the W3C Web Service Description Working Group.
Members of the Working Group are (at the time of writing, and by alphabetical order): Adi Sakala (IONA Technologies), Alan Davies (SeeBeyond), Allen Brookes (Rogue Wave Softwave), Amelia Lewis (TIBCO/Extensibility), Arthur Ryman (IBM), Bijan Parsia (University of Maryland), Dale Moberg (Cyclone Commerce), Dan Kulp (IONA Technologies), David Booth (W3C), Dietmar Gaertner (Software AG), Don Mullen (TIBCO Software), Erik Ackerman (Lexmark), Glen Daniels (Macromedia), Igor Sedukhin (Computer Associates), Ingo Melzer (DaimlerChrysler Research and Technology), Jacek Kopecky (Systinet), Jean-Jacques Moreau (Canon), Jeff Mischkinsky (Oracle Corporation), Jeffrey Schlimmer (Microsoft Corporation), Jerry Thrasher (Lexmark), Jim Hendler (University of Maryland), Johan Pauhlsson (L'Échangeur), Jonathan Marsh (Chair, Microsoft Corporation), Kevin Canyang Liu (SAP), Laurent De Teneuille (L'Échangeur), Lily Liu (webMethods, Inc.), Martin Gudgin (Microsoft Corporation), Michael Champion (Software AG), Michael Mahan (Nokia), Michael Mealling (Verisign), Mike Ballantyne (Electronic Data Systems), Mike Davoren (W. W. Grainger), Mike McHugh (W. W. Grainger), Philippe Le Hégaret (W3C), Prasad Yendluri (webMethods, Inc.), Roberto Chinnici (Sun Microsystems), Sandeep Kumar (Cisco Systems), Sandra Swearingen (U.S. Department of Defense, U.S. Air Force), Sanjiva Weerawarana (IBM), Steve Graham (Global Grid Forum), Steve Lind (AT&T), Steve Tuecke (Global Grid Forum), Tom Jordahl (Macromedia), Umit Yalcinalp (Oracle Corporation), Waqar Sadiq (Electronic Data Systems), William Vambenepe (Hewlett-Packard Company), Youenn Fablet (Canon)
Previous members were: Aaron Skonnard (DevelopMentor), Don Wright (Lexmark), Barbara Zengler (DaimlerChrysler Research and Technology), Jochen Ruetschlin (DaimlerChrysler Research and Technology), Joyce Yang (Oracle Corporation), Keith Ballinger (Microsoft), Krishna Sankar (Cisco Systems), Mario Jeckle (DaimlerChrysler Research and Technology), Pallavi Malu (Intel Corporation), William Stumbo (Xerox), Daniel Schutzer (Citigroup), Dave Solo (Citigroup), Stefano Pogliani (Sun Microsystems), Stephen White (SeeBeyond), Tim Finin (University of Maryland)
The people who have contributed to discussions on www-ws-desc@w3.org are also gratefully acknowledged.