ILDG Home
UKLFT Home
MDC index
GLOW index
GLOW list
|
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.4" targetNamespace="http://www.ivoa.net/xml/VOTable/v1.3" elementFormDefault="qualified" xmlns="http://www.ivoa.net/xml/VOTable/v1.3">
<xs:annotation>
<xs:documentation>
VOTable is meant to serialize tabular documents in the
context of Virtual Observatory applications. This schema
corresponds to the VOTable document available from
http://www.ivoa.net/Documents/latest/VOT.html
</xs:documentation>
</xs:annotation>
<xs:complexType name="anyTEXT" mixed="true">
<xs:sequence>
<xs:any minOccurs="0" processContents="skip" maxOccurs="unbounded">
</xs:any>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="astroYear">
<xs:restriction base="xs:token">
<xs:pattern value="[JB]?[0-9]+([.][0-9]*)?">
</xs:pattern>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ucdType">
<xs:restriction base="xs:token">
<xs:annotation>
<xs:documentation>
Accept UCD1+
Accept also old UCD1 (but not / + %) including SIAP convention (with :)
</xs:documentation>
</xs:annotation>
<xs:pattern value="[A-Za-z0-9_.:;\-]*">
</xs:pattern>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="arrayDEF">
<xs:restriction base="xs:token">
<xs:pattern value="([0-9]+x)*[0-9]*[*]?(s\W)?">
</xs:pattern>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="encodingType">
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="gzip">
</xs:enumeration>
<xs:enumeration value="base64">
</xs:enumeration>
<xs:enumeration value="dynamic">
</xs:enumeration>
<xs:enumeration value="none">
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="dataType">
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="boolean">
</xs:enumeration>
<xs:enumeration value="bit">
</xs:enumeration>
<xs:enumeration value="unsignedByte">
</xs:enumeration>
<xs:enumeration value="short">
</xs:enumeration>
<xs:enumeration value="int">
</xs:enumeration>
<xs:enumeration value="long">
</xs:enumeration>
<xs:enumeration value="char">
</xs:enumeration>
<xs:enumeration value="unicodeChar">
</xs:enumeration>
<xs:enumeration value="float">
</xs:enumeration>
<xs:enumeration value="double">
</xs:enumeration>
<xs:enumeration value="floatComplex">
</xs:enumeration>
<xs:enumeration value="doubleComplex">
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="precType">
<xs:restriction base="xs:token">
<xs:pattern value="[EF]?[0-9][0-9]*">
</xs:pattern>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="yesno">
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="yes">
</xs:enumeration>
<xs:enumeration value="no">
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="Min">
<xs:attribute name="value" type="xs:string" use="required">
</xs:attribute>
<xs:attribute default="yes" type="yesno" name="inclusive">
</xs:attribute>
</xs:complexType>
<xs:complexType name="Max">
<xs:attribute use="required" name="value" type="xs:string">
</xs:attribute>
<xs:attribute default="yes" type="yesno" name="inclusive">
</xs:attribute>
</xs:complexType>
<xs:complexType name="Option">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="OPTION" type="Option">
</xs:element>
</xs:sequence>
<xs:attribute type="xs:token" name="name">
</xs:attribute>
<xs:attribute name="value" type="xs:string" use="required">
</xs:attribute>
</xs:complexType>
<xs:complexType name="Values">
<xs:sequence>
<xs:element minOccurs="0" type="Min" name="MIN">
</xs:element>
<xs:element minOccurs="0" name="MAX" type="Max">
</xs:element>
<xs:element name="OPTION" type="Option" minOccurs="0" maxOccurs="unbounded">
</xs:element>
</xs:sequence>
<xs:attribute type="xs:ID" name="ID">
</xs:attribute>
<xs:attribute name="type" default="legal">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="legal">
</xs:enumeration>
<xs:enumeration value="actual">
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute type="xs:token" name="null">
</xs:attribute>
<xs:attribute name="ref" type="xs:IDREF">
</xs:attribute>
</xs:complexType>
<xs:complexType name="Link">
<xs:annotation>
<xs:documentation>
content-role was previsouly restricted as:
<xs:attribute name="content-role">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="query"/>
<xs:enumeration value="hints"/>
<xs:enumeration value="doc"/>
<xs:enumeration value="location"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute> is now a token.
</xs:documentation>
</xs:annotation>
<xs:attribute name="ID" type="xs:ID">
</xs:attribute>
<xs:attribute type="xs:token" name="content-role">
</xs:attribute>
<xs:attribute type="xs:token" name="content-type">
</xs:attribute>
<xs:attribute type="xs:string" name="title">
</xs:attribute>
<xs:attribute type="xs:string" name="value">
</xs:attribute>
<xs:attribute name="href" type="xs:anyURI">
</xs:attribute>
<xs:attribute name="gref" type="xs:token">
</xs:attribute>
<xs:attribute type="xs:anyURI" name="action">
</xs:attribute>
</xs:complexType>
<xs:complexType name="Info">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:ID" name="ID">
</xs:attribute>
<xs:attribute use="required" name="name" type="xs:token">
</xs:attribute>
<xs:attribute name="value" type="xs:string" use="required">
</xs:attribute>
<xs:attribute name="unit" type="xs:token">
</xs:attribute>
<xs:attribute name="xtype" type="xs:token">
</xs:attribute>
<xs:attribute type="xs:IDREF" name="ref">
</xs:attribute>
<xs:attribute type="ucdType" name="ucd">
</xs:attribute>
<xs:attribute name="utype" type="xs:string">
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="CoordinateSystem">
<xs:annotation>
<xs:documentation>Deprecated in Version 1.2</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute use="required" name="ID" type="xs:ID">
</xs:attribute>
<xs:attribute name="equinox" type="astroYear">
</xs:attribute>
<xs:attribute name="epoch" type="astroYear">
</xs:attribute>
<xs:attribute name="system" default="eq_FK5">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="eq_FK4">
</xs:enumeration>
<xs:enumeration value="eq_FK5">
</xs:enumeration>
<xs:enumeration value="ICRS">
</xs:enumeration>
<xs:enumeration value="ecl_FK4">
</xs:enumeration>
<xs:enumeration value="ecl_FK5">
</xs:enumeration>
<xs:enumeration value="galactic">
</xs:enumeration>
<xs:enumeration value="supergalactic">
</xs:enumeration>
<xs:enumeration value="xy">
</xs:enumeration>
<xs:enumeration value="barycentric">
</xs:enumeration>
<xs:enumeration value="geo_app">
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="Timeorigin">
<xs:annotation>
<xs:documentation>
This is a time origin of a time coordinate, given as a
Julian Date for the the time scale and reference point
defined. It is usually given as a floating point
literal; for convenience, the magic strings “MJD-origin”
(standing for 2400000.5) and “JD-origin” (standing for 0)
are also allowed.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:pattern value="[+-]?([0-9]+\.?[0-9]*|\.[0-9]+)([eE][+-]?[0-9]+)?|(JD|MJD)-origin"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="TimeSystem">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute use="required" type="xs:ID" name="ID">
</xs:attribute>
<xs:attribute type="Timeorigin" name="timeorigin">
<xs:annotation>
<xs:documentation>
The time origin is the offset or the time coordinate to Julian
Date. The timeorigin attribute MUST be given unless the time's
representation contains a year of a calendar era, in which case it
MUST NOT be present.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:token" name="timescale" use="required">
<xs:annotation>
<xs:documentation>
This is the time scale used. Values SHOULD be
taken from the IVOA timescale vocabulary (http://www.ivoa.net/rdf/timescale).
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:token" name="refposition" use="required">
<xs:annotation>
<xs:documentation>
The reference position SHOULD be taken from the IVOA
refposition vocabulary (http://www.ivoa.net/rdf/refposition).
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="Definitions">
<xs:annotation>
<xs:documentation>Deprecated in Version 1.1</xs:documentation>
</xs:annotation>
<xs:choice maxOccurs="unbounded" minOccurs="0">
<xs:element type="CoordinateSystem" name="COOSYS">
</xs:element>
<xs:element type="TimeSystem" name="TIMESYS">
</xs:element>
<xs:element name="PARAM" type="Param">
</xs:element>
</xs:choice>
</xs:complexType>
<xs:complexType name="Field">
<xs:sequence>
<xs:element minOccurs="0" type="anyTEXT" name="DESCRIPTION">
</xs:element>
<xs:element type="Values" name="VALUES" minOccurs="0">
</xs:element>
<xs:element name="LINK" type="Link" maxOccurs="unbounded" minOccurs="0">
</xs:element>
</xs:sequence>
<xs:attribute name="ID" type="xs:ID">
</xs:attribute>
<xs:attribute name="unit" type="xs:token">
</xs:attribute>
<xs:attribute use="required" type="dataType" name="datatype">
</xs:attribute>
<xs:attribute type="precType" name="precision">
</xs:attribute>
<xs:attribute name="width" type="xs:positiveInteger">
</xs:attribute>
<xs:attribute name="xtype" type="xs:token">
</xs:attribute>
<xs:attribute name="ref" type="xs:IDREF">
</xs:attribute>
<xs:attribute type="xs:token" name="name" use="required">
</xs:attribute>
<xs:attribute name="ucd" type="ucdType">
</xs:attribute>
<xs:attribute type="xs:string" name="utype">
</xs:attribute>
<xs:attribute name="arraysize" type="xs:string">
</xs:attribute>
<xs:attribute name="type">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="hidden">
</xs:enumeration>
<xs:enumeration value="no_query">
</xs:enumeration>
<xs:enumeration value="trigger">
</xs:enumeration>
<xs:enumeration value="location">
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
<xs:complexType name="Param">
<xs:complexContent>
<xs:extension base="Field">
<xs:attribute use="required" type="xs:string" name="value">
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Group">
<xs:sequence>
<xs:element minOccurs="0" type="anyTEXT" name="DESCRIPTION">
</xs:element>
<xs:choice maxOccurs="unbounded" minOccurs="0">
<xs:element name="FIELDref" type="FieldRef">
</xs:element>
<xs:element type="ParamRef" name="PARAMref">
</xs:element>
<xs:element type="Param" name="PARAM">
</xs:element>
<xs:element name="GROUP" type="Group">
</xs:element>
</xs:choice>
</xs:sequence>
<xs:attribute type="xs:ID" name="ID">
</xs:attribute>
<xs:attribute name="name" type="xs:token">
</xs:attribute>
<xs:attribute name="ref" type="xs:IDREF">
</xs:attribute>
<xs:attribute name="ucd" type="ucdType">
</xs:attribute>
<xs:attribute name="utype" type="xs:string">
</xs:attribute>
</xs:complexType>
<xs:complexType name="FieldRef">
<xs:attribute type="xs:IDREF" name="ref" use="required">
</xs:attribute>
<xs:attribute type="ucdType" name="ucd">
</xs:attribute>
<xs:attribute name="utype" type="xs:string">
</xs:attribute>
</xs:complexType>
<xs:complexType name="ParamRef">
<xs:attribute use="required" name="ref" type="xs:IDREF">
</xs:attribute>
<xs:attribute name="ucd" type="ucdType">
</xs:attribute>
<xs:attribute name="utype" type="xs:string">
</xs:attribute>
</xs:complexType>
<xs:complexType name="Data">
<xs:annotation>
<xs:documentation>Added in Version 1.2: INFO for diagnostics</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:choice>
<xs:element name="TABLEDATA" type="TableData">
</xs:element>
<xs:element type="Binary" name="BINARY">
</xs:element>
<xs:element type="Binary2" name="BINARY2">
</xs:element>
<xs:element name="FITS" type="FITS">
</xs:element>
</xs:choice>
<xs:element maxOccurs="unbounded" minOccurs="0" name="INFO" type="Info">
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TableData">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" type="Tr" name="TR">
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Td">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:annotation>
<xs:documentation>
The 'encoding' attribute is added here to avoid
problems of code generators which do not properly
interpret the TR/TD structures.
'encoding' was chosen because it appears in
appendix A.5
</xs:documentation>
</xs:annotation>
<xs:attribute name="encoding" type="encodingType">
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="Tr">
<xs:annotation>
<xs:documentation>
The ID attribute is added here to the TR tag to avoid
problems of code generators which do not properly
interpret the TR/TD structures
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="TD" type="Td">
</xs:element>
</xs:sequence>
<xs:attribute type="xs:ID" name="ID">
</xs:attribute>
</xs:complexType>
<xs:complexType name="FITS">
<xs:sequence>
<xs:element type="Stream" name="STREAM">
</xs:element>
</xs:sequence>
<xs:attribute type="xs:positiveInteger" name="extnum">
</xs:attribute>
</xs:complexType>
<xs:complexType name="Binary">
<xs:sequence>
<xs:element name="STREAM" type="Stream">
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Binary2">
<xs:sequence>
<xs:element type="Stream" name="STREAM">
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Stream">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute default="locator" name="type">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="locator">
</xs:enumeration>
<xs:enumeration value="other">
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute type="xs:anyURI" name="href">
</xs:attribute>
<xs:attribute name="actuate" default="onRequest">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="onLoad">
</xs:enumeration>
<xs:enumeration value="onRequest">
</xs:enumeration>
<xs:enumeration value="other">
</xs:enumeration>
<xs:enumeration value="none">
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute default="none" name="encoding" type="encodingType">
</xs:attribute>
<xs:attribute name="expires" type="xs:dateTime">
</xs:attribute>
<xs:attribute name="rights" type="xs:token">
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="Table">
<xs:annotation>
<xs:documentation>Added in Version 1.2: INFO for diagnostics</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element minOccurs="0" type="anyTEXT" name="DESCRIPTION">
</xs:element>
<xs:element maxOccurs="unbounded" minOccurs="0" type="Info" name="INFO">
</xs:element>
<xs:choice maxOccurs="unbounded" minOccurs="1">
<xs:element type="Field" name="FIELD">
</xs:element>
<xs:element name="PARAM" type="Param">
</xs:element>
<xs:element type="Group" name="GROUP">
</xs:element>
</xs:choice>
<xs:element maxOccurs="unbounded" minOccurs="0" type="Link" name="LINK">
</xs:element>
<xs:element minOccurs="0" name="DATA" type="Data">
</xs:element>
<xs:element type="Info" name="INFO" minOccurs="0" maxOccurs="unbounded">
</xs:element>
</xs:sequence>
<xs:attribute name="ID" type="xs:ID">
</xs:attribute>
<xs:attribute type="xs:token" name="name">
</xs:attribute>
<xs:attribute name="ref" type="xs:IDREF">
</xs:attribute>
<xs:attribute name="ucd" type="ucdType">
</xs:attribute>
<xs:attribute name="utype" type="xs:string">
</xs:attribute>
<xs:attribute name="nrows" type="xs:nonNegativeInteger">
</xs:attribute>
</xs:complexType>
<xs:complexType name="Resource">
<xs:annotation>
<xs:documentation>Added in Version 1.2: INFO for diagnostics in several places</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element type="anyTEXT" name="DESCRIPTION" minOccurs="0">
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded" name="INFO" type="Info">
</xs:element>
<xs:choice maxOccurs="unbounded" minOccurs="0">
<xs:element name="COOSYS" type="CoordinateSystem">
</xs:element>
<xs:element name="TIMESYS" type="TimeSystem">
</xs:element>
<xs:element type="Group" name="GROUP">
</xs:element>
<xs:element type="Param" name="PARAM">
</xs:element>
</xs:choice>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element maxOccurs="unbounded" minOccurs="0" name="LINK" type="Link">
</xs:element>
<xs:choice>
<xs:element type="Table" name="TABLE">
</xs:element>
<xs:element type="Resource" name="RESOURCE">
</xs:element>
</xs:choice>
<xs:element minOccurs="0" maxOccurs="unbounded" name="INFO" type="Info">
</xs:element>
</xs:sequence>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax">
</xs:any>
</xs:sequence>
<xs:attribute name="name" type="xs:token">
</xs:attribute>
<xs:attribute type="xs:ID" name="ID">
</xs:attribute>
<xs:attribute name="utype" type="xs:string">
</xs:attribute>
<xs:attribute name="type" default="results">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="results">
</xs:enumeration>
<xs:enumeration value="meta">
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:anyAttribute namespace="##other" processContents="lax">
</xs:anyAttribute>
</xs:complexType>
<xs:element name="VOTABLE">
<xs:complexType>
<xs:sequence>
<xs:element type="anyTEXT" name="DESCRIPTION" minOccurs="0">
</xs:element>
<xs:element minOccurs="0" type="Definitions" name="DEFINITIONS">
</xs:element>
<xs:choice maxOccurs="unbounded" minOccurs="0">
<xs:element type="CoordinateSystem" name="COOSYS">
</xs:element>
<xs:element type="TimeSystem" name="TIMESYS">
</xs:element>
<xs:element type="Group" name="GROUP">
</xs:element>
<xs:element type="Param" name="PARAM">
</xs:element>
<xs:element type="Info" name="INFO" minOccurs="0" maxOccurs="unbounded">
</xs:element>
</xs:choice>
<xs:element minOccurs="1" maxOccurs="unbounded" name="RESOURCE" type="Resource">
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded" name="INFO" type="Info">
</xs:element>
</xs:sequence>
<xs:attribute type="xs:ID" name="ID">
</xs:attribute>
<xs:attribute name="version">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="1.3">
</xs:enumeration>
<xs:enumeration value="1.4">
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>
|