update to resource schema
Ray Plante
rplante at poplar.ncsa.uiuc.edu
Wed Mar 19 08:36:36 PST 2003
This message follows on a discussion within the NVO MWG about XML-ing our
Resource metadata.
---------- Forwarded message ----------
Date: Tue, 18 Mar 2003 17:10:37 -0600 (CST)
From: Ray Plante <rplante at poplar.ncsa.uiuc.edu>
Reply-To: Ray Plante <rplante at ncsa.uiuc.edu>
To: metadata at us-vo.org
Subject: update to resource schema
Hi,
Attached is another crack at the Resource XML schema, now called
VOResource.xsd. In addition, I've attached an example xml file and a
couple of XMLSpy renderings of parts of the schema. Don't sweat the
details. I mainly want to illustrate how we can handle some of the issues
we discussed 3 weeks ago.
In particular:
* The root node, VODescription, is simply a container for holding
one or more resource descriptions.
* The "VODescription" image shows the top level of the schema.
Essentially what this is meant to show is that "Organization",
"Project", and "Service" are all specific kinds of the
generic Resources. The "Service" image shows that it extends
the generic Resource content (in yellow) and by adding add an
"Interface" element.
* Several of the elements, "Curation", "Coverage", and "Interface",
support an attribute called "defaultsTo". This allows the document
to refer to another resource that it can share metadata with. Use of
this can be seen in the attached "adil.xml": each resource inherits
the Curation data from the previous resource; only those items that
are different are overriden.
* The last service shown in adil.xml shows how specialized metadata,
defined elsewhere, is incorporated to describe a specific
class of standard service. (This is mainly illustrative as it still
needs work--suggestions welcome.)
* The identifiers are just illustrative. These would need to conform
to the standard for VO IDs.
The schema still needs tweaking. For example, spatial coverage should use
Arnold's schema. Some of the Curation content will probably get pulled
out (e.g. ServiceURL).
Comments so far?
cheers,
Ray
-------------- next part --------------
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xsd:annotation>
<xsd:documentation>
Implementation of an XML Schema describing a resource to
be used in the Virtual Observatory Project. Based on "Resource
and Service Metadata for the Virtual Observatory", Version 6,
February 2002 by Bob Hanisch et al.
</xsd:documentation>
</xsd:annotation>
<!-- Define new datatypes -->
<xsd:complexType name="genericResource">
<xsd:annotation>
<xsd:documentation>
This is a base type for defining specific kinds of resources
(e.g. service, data collection, etc.). See Resource for a
generic definition of a resource.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element ref="Title"/>
<xsd:element ref="Identifier"/>
<xsd:element ref="Curation"/>
<xsd:element ref="Coverage"/>
</xsd:sequence>
<xsd:attribute name="ref" type="xsd:anyURI">
<xsd:annotation>
<xsd:documentation>
The resource indicated by this element is the one referred
to by the given URI. This attribute should be ignored unless
the element's content is empty.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="managedBy" type="xsd:anyURI">
<xsd:annotation>
<xsd:documentation>
The URI for another resource that is responsible for maintaining
this resource.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
<xsd:complexType name="nameList">
<xsd:sequence>
<xsd:element name="Item" type="xsd:string" minOccurs="1"
maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>
Member of an itemized list
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="dateType">
<xsd:sequence>
<xsd:element name="Begin" type="xsd:decimal" minOccurs="1"
maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>
Begin date in decimal years
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="End" type="xsd:decimal" minOccurs="0"
maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>
End date in decimal years (optional)
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ServiceInterface">
<xsd:complexContent>
<xsd:extension base="xsd:anyType">
<xsd:attribute ref="defaultTo"/>
<xsd:attribute name="class">
<xsd:annotation>
<xsd:documentation>
the catagory of service that this service belongs to
</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="VO-SIA">
<xsd:annotation>
<xsd:documentation>
The standard VO Simple Image Access Protocol Interface
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="VO-Cone">
<xsd:annotation>
<xsd:documentation>
The standard VO Cone Search Interface
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="HTTP-Form">
<xsd:annotation>
<xsd:documentation>
A form interface that is intended to be used
interactively only via a Web Browser
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="HTTP-Get">
<xsd:annotation>
<xsd:documentation>
An HTTP service accessible via a HTTP GET query
following a well-defined syntax.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="WebService">
<xsd:annotation>
<xsd:documentation>
A generic Web Service described by a WSDL document
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- End of special definitions -->
<!-- reusable attributes -->
<xsd:attribute name="defaultTo" type="xsd:anyURI">
<xsd:annotation>
<xsd:documentation>
If provided, then any data not provided by the content of
this element should default to the corresponding data found
in the resource description pointed to by the given URI.
</xsd:documentation>
<xsd:documentation>
The URI should, therefore, refer to a Resource Description.
This URI is expected to be resolved by a VO registry.
</xsd:documentation>
<xsd:documentation>
Example: if a Curation element uses this attribute, the
default values for the curation data should be drawn from
the Curation element of the referred Resource description.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<!-- End of reusable attributes -->
<!-- reusable elements -->
<xsd:element name="VODescription">
<xsd:annotation>
<xsd:documentation>
A description of one or more VO Resources
</xsd:documentation>
<xsd:documentation>
This element is used as a general container for multiple resource
descriptions and is intended to be used as a root element.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="Resource" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Resource" type="genericResource">
<xsd:annotation>
<xsd:documentation>
Any entity that is curated by an organization and is
identifiable by a URI
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Curation">
<xsd:annotation>
<xsd:documentation>
Information regarding the general curation of the resource
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute ref="defaultTo">
<xsd:annotation>
<xsd:documentation>
This will often be set to the URI given in the Resource's
"managedBy" attribute.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:sequence>
<xsd:element ref="Publisher" minOccurs="0"/>
<xsd:element ref="Creator" minOccurs="0"/>
<xsd:element ref="Subject" minOccurs="0"/>
<xsd:element ref="Description" minOccurs="0"/>
<xsd:element ref="Contributor" minOccurs="0"/>
<xsd:element ref="Date" minOccurs="0"/>
<xsd:element ref="Version" minOccurs="0"/>
<xsd:element ref="ReferenceURL" minOccurs="0"/>
<xsd:element ref="ServiceURL" minOccurs="0"/>
<xsd:element ref="Contact" minOccurs="0"/>
<xsd:element ref="Type" minOccurs="0"/>
<xsd:element ref="ContentLevel" minOccurs="0"/>
<xsd:element ref="Facility" minOccurs="0"/>
<xsd:element ref="Instrument" minOccurs="0"/>
<xsd:element ref="Format" minOccurs="0"/>
<xsd:element ref="Rights" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Title">
<xsd:annotation>
<xsd:documentation>Name Given to the Resource</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="xsd:string">
<xsd:attribute ref="defaultTo"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="Publisher" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
Entity responsible for making the resource available
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Creator">
<xsd:annotation>
<xsd:documentation>
Block describing the entity primarily responsible for
making the content of the resource
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="CreatorName" minOccurs="0"/>
<xsd:element ref="Logo" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CreatorName" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
Name of Entity primarily responsible for making the content
of the resource
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Logo" type="xsd:anyURI">
<xsd:annotation>
<xsd:documentation>
URL pointing to a graphical logo, which may be used to help
identify the information source
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Subject" type="nameList">
<xsd:annotation>
<xsd:documentation>
List of topics, object types, or other descriptive keywords
about the resource
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Description" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
An account of the content of the resource
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Contributor" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
Entity responsible for contributions to the content of
the resource
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Date" type="xsd:date">
<xsd:annotation>
<xsd:documentation>
Date associated with an event in the life cycle of the
resource (YYYY-MM-DD)
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Version" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
Label associated with creation or availablilty
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Identifier" type="xsd:anyURI">
<xsd:annotation>
<xsd:documentation>
Unambiguous reference to the resource within a given context
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="ReferenceURL" type="xsd:anyURI">
<xsd:annotation>
<xsd:documentation>
URL pointing to further information about the resource
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="ServiceURL" type="xsd:anyURI">
<xsd:annotation>
<xsd:documentation>
URL pointing to further information about the service
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Contact">
<xsd:annotation>
<xsd:documentation>
Block describing contact persons responsible for the resource
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="Name" minOccurs="0"/>
<xsd:element ref="Email" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Name" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
Name of contact persons responsible for the resource
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Email" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
E-mail address for contacting the persons responsible for
the resource
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Type" type="nameList">
<xsd:annotation>
<xsd:documentation>
Nature or genre of the content of the resource
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Coverage">
<xsd:annotation>
<xsd:documentation>
Extent of the scope of the content of the resource
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:attribute ref="defaultTo"/>
<xsd:sequence>
<xsd:element ref="Spatial" minOccurs="0"/>
<xsd:element ref="Spectral" minOccurs="0"/>
<xsd:element ref="Temporal" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Spatial" type="xsd:string">
<xsd:annotation>
<xsd:documentation>Sky coverage of the resource</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Spectral">
<xsd:annotation>
<xsd:documentation>
Spectral coverage of the resource
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="SpecDesc" minOccurs="0"/>
<xsd:element ref="Bandpass" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="SpecDesc" type="nameList">
<xsd:annotation>
<xsd:documentation>Specific Spectral Coverage
Description</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Bandpass" type="nameList">
<xsd:annotation>
<xsd:documentation>Specific Bandpass Coverage
Specification</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Temporal" type="dateType">
<xsd:annotation>
<xsd:documentation>Temporal coverage of the resource. Separate begin
and end dates in decimal years (YYYY.DD)</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="ContentLevel" type="nameList">
<xsd:annotation>
<xsd:documentation>Description of the content level, or intended
audience</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Facility" type="xsd:string">
<xsd:annotation>
<xsd:documentation>Observatory or facility where the data was
obtained</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Instrument" type="xsd:string">
<xsd:annotation>
<xsd:documentation>Instrument used to collect the
data</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Format" type="nameList">
<xsd:annotation>
<xsd:documentation>Encoding format of data provided by the
resource</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Rights" type="xsd:string">
<xsd:annotation>
<xsd:documentation>Information about rights held in and over the
resource</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Organization" type="genericResource"
substitutionGroup="Resource">
<xsd:annotation>
<xsd:documentation>
A group or person that manages data or services for VO applications
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Project" type="genericResource"
substitutionGroup="Resource">
<xsd:annotation>
<xsd:documentation>
An organization with a focused set of data and services that
it maintains.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Service" substitutionGroup="Resource">
<xsd:annotation>
<xsd:documentation>
A resource that provides an interface for executing some
operation or retrieving data.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="genericResource">
<xsd:sequence>
<xsd:element ref="Interface"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="Interface" type="ServiceInterface">
<xsd:annotation>
<xsd:documentation>
A resource that provides an interface for executing some
operation or retrieving data.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:schema>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: adil.xml
Type: text/xml
Size: 3914 bytes
Desc: adil.xml
URL: <http://www.ivoa.net/pipermail/registry/attachments/20030319/f10804d5/attachment-0001.xml>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: VOResource.jpg
Type: image/jpeg
Size: 23457 bytes
Desc: VODescription
URL: <http://www.ivoa.net/pipermail/registry/attachments/20030319/f10804d5/attachment-0001.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: VOResource3.png
Type: image/png
Size: 41938 bytes
Desc: Service
URL: <http://www.ivoa.net/pipermail/registry/attachments/20030319/f10804d5/attachment-0001.png>
More information about the registry
mailing list