VOSpace-1.0 WSDL and schema
This is a discussion page for the WSDL and schema for the VOSpace-1.0 service.
This is somewhere where we can post proposals for schema and WSDL to enable interested parties to discuss the different versions.
For each version there is a Change request section - please add to this and vote on other suggestions
- +1 if you agree
- -1 if you disagree
- 0 if you have no particular preference
Once we have finalised the WSDL and schema, the final versions will be posted on the main Grid & Web Services
page.
The experiments that were on this page have been
moved
News
- Schema discussion page created.
Core schema
This is the main section for schema and WSDL files.
The files for the 1.0 VOSpace release are
-
VOSpaceContract-v1.0rc4.wsdl
the service WSDL contract
-
VOSpaceTypes-v1.0rc4.xsd
the XSD schema file containing the XML type definitions.
Version 1.0rc4
There is a know problem with this version.
In rc3 we changed Protocol and View params from
<xsd:element name="param" xsi:type="vos:ParamType">
to use the same type as Node properties
<xsd:element name="param" xsi:type="vos:PropertyType">
This meant that params were identified by uri rather than a string name.
The original intention was that we would use the fragment symbol '#' to reference the param description within the resource document for the protocol or view.
<protocol uri="ivo://net.ivoa.vospace/protocols/ftp-get">
<param uri="#name">
....
</param>
</protocol>
In this example, the param uri refers to the definition of the
name
param within the ftp-get protocol resource.
The full uri of the param would be
ivo://net.ivoa.vospace/protocols/ftp-get#name
However, the latest metadata schema allows more than one protocol or view to be defined in a single resource document.
<vor:Resource xsi:type="vsp:VOSpaceProtocol">
....
<protocol id="http-get">
....
</protocol>
<protocol id="ftp-get">
<param id="name">
....
</param>
</protocol>
....
</vor:Resource>
This uses one resource document to register all of the vospace protocols as a set, and using the '#' fragment identifier to resolve one protocol within the set.
For example, the full uri for the
ftp-get
protocol would be
ivo://net.ivoa.vospace/protocols#ftp-get
However, this means that we can't use the '#' fragment identifier to refer to a specific parameter within a protocol without overloading its meaning and using it twice. e.g.
ivo://net.ivoa.vospace/protocols#ftp-get#name
.
I can't see a strong use case for registering params as separate entities outside protocols and views, so we probably don't need a full uri to identifiy a param. In which case, to solve the above problems we might as well change back to using a string key to identify params within protocols and views.
So, next version of the schema will revert to using
ParamType for protocol and view params, identified by a string key rather than a uri.
<xsd:element name="param" xsi:type="vos:ParamType">
Note also that allowing more than one protocol description within one resource document means that we can end up with more than one element with the same
id
attribute.
<vor:Resource xsi:type="vsp:VOSpaceProtocol">
....
<protocol id="ftp-get">
<param id="name">
....
</param>
<param id="pass">
....
</param>
</protocol>
<protocol id="ftp-put">
<param id="name">
....
</param>
<param id="pass">
....
</param>
</protocol>
....
</vor:Resource>
In this example, we have two param elements with
id="name"
and two param elements with
id="pass"
.
Ideally, the
id
attributes should be unique within an XML document, so the identifying attribute on param elements should probably be changed to
key
, matching the way they are used in the main schema.
Version 1.0rc3
vospace-interface-1.0rc3.zip
This matches v0.22 of the specification document.
Version 1.0rc2
This release attempts to follow the interface described in version 0.21 of the specification document as closely as possible.
Changes from previous version
- Use namespaces in release candidates that include release number
- Make sure that the naming of operations/parameters more closely matches the written specification
- Remove enumerations for security related types
- Remove enumerations of transport keys
- Remove enumerations of parameter key values
- Remove any idea of callbacks
- Remove the use of ChangeOwner operation
Change Requests
Keep Transports/Formats as separate opertation
--
PaulHarrison - 13 Jun 2006
I agree with adding the new methods.
However, this should be changed in the specification first, not the WSDL. Move this to the specification change page.
--
DaveMorris - 16 Jun 2006
Votes
Refactor use of DataObjectReference
This construct was there principally to get round difficulties in specifying the use-case "create a file with a server generated name" before the vos: URI scheme was approved. Not needed any more.
--
PaulHarrison - 16 Jun 2006
Needs to be much clearer what this represents.
--
DaveMorris - 16 Jun 2006
Consider use of Status responses for some operations
Changing the method signatures to return status codes should be defined in the specification first, not the WSDL. Move this to the specification change page.
--
DaveMorris - 16 Jun 2006
Votes
Include WSDL for VO Standard Interfaces
Is the VOSI WSDL finalized?
Votes
Version 1.0rc1
This is the first 'official' release candidate of the VOSpace interface definition, and is based on version 0.21 of the specification document, though is known not to follow this document exactly, as there are areas still to be finalized for which the WSDL is the best 'source'.