VOSI tables target namespace

Markus Demleitner msdemlei at ari.uni-heidelberg.de
Tue Jul 22 03:35:40 PDT 2014


Dear GWS,

Ghosts from the past are haunting our schema repository on
http://www.ivoa.net/xml/index.html.  There's still a line there with

VOSITables 	VO Standard Interface description of available tables

and a green v1.0 box next to it.

Problem is: That schema file isn't referenced by the standard, which
says

  [...] table metadata shall be represented as an XML document of
  which the root element is of type
  {http://www.ivoa.net/xml/VODataService/v1.1}TableSet.

And sure enough, that unused schema is trouble.  The first few lines
show why:

  <xsd:schema targetNamespace="http://www.ivoa.net/xml/VOSICapabilities/v1.0"
            xmlns:tns="http://www.ivoa.net/xml/VOSICapabilities/v1.0"
            [...]
-- this schema claims to be defining the namespace
http://www.ivoa.net/xml/VOSICapabilities/v1.0 which really belongs to
http://www.ivoa.net/xml/VOSICapabilities/VOSICapabilities-v1.0.xsd --
and this blows up as soon as you, as I just did, import all
supposedly current IVOA XML schema files into one validator.

What's to be done?  I'd say pull the file entirely, but I'd be fine
with making the box red ("deprecated") instead of green (as it is
now).

Except.  Except I'm not sure whether we need the file after all, and
an erratum to the standard to go with it.  The reason I noticed the
issue in the first place is that I'm moving my XSD validation from
Xerces to libxml2.  And that, for the standard prescription of having
tableset as root, say things like:

  tableset.xml:1: element tableset: Schemas validity error : Element 'tableset': No matching global declaration available for the validation root.

when faced with a document like

<tableset xmlns:vs="http://www.ivoa.net/xml/VODataService/v1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ivoa.net/xml/VODataService/v1.1 http://vo.ari.uni-heidelberg.de/docs/schemata/VODataService-v1.1.xsd" xsi:type="vs:TableSet">
...
</tableset>

(note the xsi:type), while xerces has always been ok with this kind
of thing.

I can't say I completely understand libxml2's message at this point,
but I'd say it doesn't like the fact that tableset is a local element
in VODataService even though we're casting it to some global type.  I
can't see anything in the XML schema spec that would forbid such a
thing as a document root element, but given the size of the spec and
my (lack of) familiarity with it that doesn't mean much.

So: If anyone has deeper insights here, I'd appreciate elucidation.
Meanwhile, I'll try to condense the condition into a small test case
and inquire on the libxml2 list.

Cheers,

        Markus



More information about the grid mailing list