The WSDL WG has had a longstanding requirement to "ensure that all
conceptual elements in the description of Messages are addressable by a
URI reference." [1]
To fulfill this requirement, the WSDL WG has developed (non-normatively)
a form of URIs for identifying WSDL abstract components. The form we
suggest is documented as an appendix to the WSDL specification [2]. It
is similar to the work in Schema Component Designators [3].
Each abstract WSDL component belongs to a namespace, declared in the
WSDL file. Each WSDL component has a local name, but (just as in
Schema) this local name is not always sufficient to uniquely identify
the component within the namesapce. Each kind of component has its own
symbol space (message, portType, etc.), and some components are scoped
to their parents (parts in a message). To uniquely identify the
abstract component requires a combination of the:
- namespace URI [NSURI]
- symbol space [SS]
- local name [NAME]
- parent component's local name [PNAME]
- grandparent component's local name [GNAME]
Our mechanism maps these items to an XPointer-Framework-compatible URI
of the form:
{NSURI} # {SS} ( {GNAME} / {PNAME} / {NAME} )
For example:
http://airline.wsdl/ticketagent/#operation(TicketAgent/listFlights)
However, RFC 2396 states that the fragment identifier syntax is
dependent upon the media type of the returned resource. The WSDL
namespace URI is not (necessarily) the same as the location of the WSDL
document. Dereferencing a WSDL namespace URI will not necessarily
return a WSDL document, or even an XML document. For instance, it might
be HTML.
Is it wise to use fragment IDs for identifying abstract components
within a namespace, even though it is the most natural and convenient
mechanism? Is there another mechanism that would be preferable?
This issue also touches on other TAG issues:
rdfmsQnameUriMapping-6 [4]
namespaceDocument-8 [5]
- Jonathan Marsh, WSDL WG
--------------------------------------
[1] http://www.w3.org/TR/ws-desc-reqs/#semanweb
[2]
http://dev.w3.org/cvsweb/~checkout~/2002/ws/desc/wsdl12/wsdl12.html#wsdl
-uri-references (editor's draft)
[3] http://www.w3.org/TR/xmlschema-ref/
[4] http://www.w3.org/2001/tag/ilist#rdfmsQnameUriMapping-6
[5] http://www.w3.org/2001/tag/ilist#namespaceDocument-8