atom feed2 messages in org.oasis-open.lists.wsrfRe: [wsrf] New RMD issue: Simplificat...
FromSent OnAttachments
Ian RobinsonApr 24, 2006 7:06 am 
Tim BanksApr 24, 2006 8:56 am 
Subject:Re: [wsrf] New RMD issue: Simplification of metadataDescriptorLocation type
From:Tim Banks (tim_@uk.ibm.com)
Date:Apr 24, 2006 8:56:54 am
List:org.oasis-open.lists.wsrf

+1 to the separation of this issue. +1 to the proposed anyURI datatype

Also, I'd like to suggest that we rename the wsrmd:MetadataDescriptorLocation to wsrmd:DefinitionsLocation.

I can see that current name derives from the terminology in section 2 of the spec: "MetadataDescriptor Document: An XML instance document whose root is a Definitions element from the wsrmd: namespace. This document contains definitions for zero or more MetadataDescriptor components." The overloading of 'MetadataDescriptor' is confusing - is it a document or an element within the document?

There is an analogy with xsd which would make matters much clearer. In the case of xsd, the schemaLocation on <xsd:import> indicates that the contents of the <schema> element from a separate document are being imported to assist qname references from the importing document. The targetNamespace attribute on <schema> identifies the imported namespace. In our case, we need to reference the contents of the namespace populated by the contents of the <Definitions> element from a separate source, and the wsrmd:xxxxLocation is a hint about where to find the description of those contents. By this analogy, we could call it wsrmd:DefinitionsLocation.

Ok, it's not a huge improvement, but every little bit helps.

Ian Robinson/UK/IBM@IBMGB wrote on 24/04/2006 14:51:49:

I would like to separate the following concern out from the discussion on issue WSRF174 into a new issue in its own right, independent of the outcome of WSRF174.

This relates back to the final observation in [1] that, since we now define at most one MDD per WS-Resource, we can simplify the type of MetadataDescriptorLocation from "list of pairs of URIs" to a single URI that provides information on the location of the MDD. The reason there is currently a list of pairs or URIs is so that we could (in the past) accomodate a number of different MDDs, each of which pertains to a specific namespace (the first URI in the pair). We have moved away from this and now need only a single URI for the location of the single MDD.

In order to have a single, consistent story for locating the MDD, I propose the following additions to the resolution of issue 174:

Change the definition of the wsrmd:MetadataDescriptorLocation from "wsrmd:PairsOfURIType" to "xsd:anyURI" Specifically, change the schema from this:

<!-- ======================== Utility Types ======================= --> <xsd:simpleType name="PairsOfURIType"> <xsd:list itemType="xsd:anyURI" /> </xsd:simpleType>

<!-- ================ PortType Attribute Extensions ================ --> <xsd:attribute name="metadataDescriptorLocation" type="wsrmd:PairsOfURIType" />

to this:

<!-- ================ PortType Attribute Extensions ================ --> <xsd:attribute name="metadataDescriptorLocation" type="xsd:anyURI" />

Further, change XML snippets to reflect this - for example lines 235-241 become: <portType name="OperatingSystem" wsrf-rp:ResourceProperties="os:OSResourceProperties" ..wsrmd:metadataDescriptor=”os:OperatingSystemMetadataDescriptor” ..wsrmd:metadataDescriptorLocation= ”http://example.com/metadataDescriptors/OperatingSystem.wsrmd”

… </portType>

Change "10.1 Extending WSDL 1.1 PortType" to read:

"...

<wsdl:definitions …> <wsdl:portType … wsrmd:metadataDescriptor=”xs:QName”? wsrmd:metadataDescriptorLocation=”xs:anyURI”? … > … </wsdl:portType>

This definition is further constrained as follows:

/wsdl:portType/@wsrmd:metadataDescriptor

If this attribute appears on a WSDL 1.1 portType element its value MUST be a QName that corresponds to a MetadataDescriptor component. Further, the value of the MetadataDescriptor component contained in that document MUST have {interface} that matches the QName of the portType containing @wsrmd:metadataDescriptor. Any service that implements this portType MUST be associated with a MetadataDescriptor that is, or specializes the MetadataDescriptor identified by the value of this attribute.

/wsdl:portType/@wsrmd:metadataDescriptorLocation

If this attribute appears on a WSDL 1.1 portType element its value MUST be a URI that corresponds to a URL at which can be found more information about the MetadataDescriptor document, such as an XML document containing a MetadataDescriptor Definitions element as its root element.

"

We should make the same change for the MetadataDescriptor @wsdlLocation which is currently defined on lines 493 - 495 as:

"{wsdlLocation} a set of URI pairs, each pair associating a namespace URI with a URL of a document containing a WSDL definition of that namespace. This is a similar mechanism to that used in WSDL 2.0 [WSDL2.0]. "

The new definition of this attribute would be:

"{wsdlLocation} a URI that corresponds to the URL of a document containing the WSDL definition of the WS-Resource."

is attribute should should be changed from "a set of" to "a pair of" indicating the location of a single WSDL document.

[1] http://www.oasis-open. org/apps/org/workgroup/wsrf/email/archives/200603/msg00006.html