<?xml version="1.0" encoding="UTF-8"?> <!--W3C Schema for VOTable = Virtual Observatory Tabular Format .Version 1.0 : 15-Apr-2002 .Version 1.09: 23-Jan-2004 Version 1.09 .Version 1.09: 30-Jan-2004 Version 1.091 .Version 1.09: 22-Mar-2004 Version 1.092 .Version 1.094: 02-Jun-2004 GROUP does not contain FIELD .Version 1.1 : 10-Jun-2004 remove the complexContent .Version 1.11: GL: 23-May-2006 remove most root elements, use name= type= iso ref= structure .Version 1.11: GL: 29-Aug-2006 review and added comments (prefixed by GL) before sending to Francois Ochsenbein .Version 1.12: FO: Preliminary Version 1.2 .Version 1.18: FO: Tested (jax) version 1.2 .Version 1.19: FO: Completed INFO attributes .Version 1.20: FO: Added xtype; content-role is less restrictive (May2009) .Version 1.20a: FO: PR-20090710 Cosmetics. .Version 1.20b: FO: INFO does not accept sub-elements (2009-09-29) .Version 1.20c: FO: elementFormDefault="qualified" to stay compatible with 1.1 .Version 1.3: MT: Added BINARY2 element .Version 1.3: MT: Further relaxed LINK content-role type to token .Version 1.3-Erratum-2 MT: Made slight change to precType pattern .Version 1.4pre1: MD: merged 1.3-Erratrum 2, added TIMESYS. .Version 1.4wd-a: TD: updates for initial draft of v1.4. .Version 1.4: TD: Change version to 1.4 --> <xs:schema elementFormDefault="qualified" targetNamespace="http://www.ivoa.net/xml/VOTable/v1.3" version="1.4" xmlns="http://www.ivoa.net/xml/VOTable/v1.3" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <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> <!-- Here we define some interesting new datatypes: - anyTEXT may have embedded XHTML (conforming HTML) - astroYear is an epoch in Besselian or Julian year, e.g. J2000 - arrayDEF specifies an array size e.g. 12x23x* - dataType defines the acceptable datatypes - ucdType defines the acceptable UCDs (UCD1+) - precType defines the acceptable precisions - yesno defines just the 2 alternatives --> <xs:sequence> <xs:any maxOccurs="unbounded" minOccurs="0" processContents="skip"/> </xs:sequence> </xs:complexType> <xs:pattern value="[JB]?[0-9]+([.][0-9]*)?"/> </xs:restriction> </xs:simpleType> <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_.:;\-]*"/> <!-- UCD1 use also / + % --> </xs:restriction> </xs:simpleType> <xs:pattern value="([0-9]+x)*[0-9]*[*]?(s\W)?"/> </xs:restriction> </xs:simpleType> <xs:enumeration value="gzip"/> <xs:enumeration value="base64"/> <xs:enumeration value="dynamic"/> <xs:enumeration value="none"/> </xs:restriction> </xs:simpleType> <xs:enumeration value="boolean"/> <xs:enumeration value="bit"/> <xs:enumeration value="unsignedByte"/> <xs:enumeration value="short"/> <xs:enumeration value="int"/> <xs:enumeration value="long"/> <xs:enumeration value="char"/> <xs:enumeration value="unicodeChar"/> <xs:enumeration value="float"/> <xs:enumeration value="double"/> <xs:enumeration value="floatComplex"/> <xs:enumeration value="doubleComplex"/> </xs:restriction> </xs:simpleType> <xs:pattern value="[EF]?[0-9][0-9]*"/> </xs:restriction> </xs:simpleType> <xs:enumeration value="yes"/> <xs:enumeration value="no"/> </xs:restriction> </xs:simpleType> </xs:complexType> </xs:complexType> <xs:sequence> </xs:sequence> </xs:complexType> <!-- VALUES expresses the values that can be taken by the data in a column or by a parameter --> <xs:sequence> </xs:sequence> <xs:simpleType> <xs:enumeration value="legal"/> <xs:enumeration value="actual"/> </xs:restriction> </xs:simpleType> </xs:attribute> <!-- xs:attribute name="invalid" type="yesno" default="no"/ --> </xs:complexType> <!-- The LINK is a URL (href) or some other kind of reference (gref) --> <xs:annotation> <xs:documentation> content-role was previsouly restricted as: <![CDATA[ <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> <!-- Deprecated in V1.1 --> </xs:complexType> <!-- INFO is defined in Version 1.2 as a PARAM of String type <xs:complexType name="Info"> <xs:complexContent> <xs:restriction base="Param"> <xs:attribute name="unit" fixed=""/> <xs:attribute name="datatype" fixed="char"/> <xs:attribute name="arraysize" fixed="*"/> </xs:restriction> </xs:complexContent> </xs:complexType> -or- as a full definition: <xs:complexType name="Info"> <xs:sequence> <xs:element name="DESCRIPTION" type="anyTEXT" minOccurs="0"/> <xs:element name="VALUES" type="Values" minOccurs="0"/> <xs:element name="LINK" type="Link" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="name" type="xs:token" use="required"/> <xs:attribute name="value" type="xs:string" use="required"/> <xs:attribute name="ID" type="xs:ID"/> <xs:attribute name="unit" type="xs:token"/> <xs:attribute name="xtype" type="xs:token"/> <xs:attribute name="ref" type="xs:IDREF"/> <xs:attribute name="ucd" type="ucdType"/> <xs:attribute name="utype" type="xs:string"/> </xs:complexType> --> <!-- No sub-element is accepted in INFO for backward compatibility --> <xs:simpleContent> </xs:extension> </xs:simpleContent> </xs:complexType> <!-- Expresses the coordinate system we are using --> <!-- Deprecated V1.2 --> <xs:annotation> <xs:documentation> Deprecated in Version 1.2 </xs:documentation> </xs:annotation> <xs:simpleContent> <xs:simpleType> <xs:enumeration value="eq_FK4"/> <xs:enumeration value="eq_FK5"/> <xs:enumeration value="ICRS"/> <xs:enumeration value="ecl_FK4"/> <xs:enumeration value="ecl_FK5"/> <xs:enumeration value="galactic"/> <xs:enumeration value="supergalactic"/> <xs:enumeration value="xy"/> <xs:enumeration value="barycentric"/> <xs:enumeration value="geo_app"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:extension> </xs:simpleContent> </xs:complexType> <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:pattern value="[+-]?([0-9]+\.?[0-9]*|\.[0-9]+)([eE][+-]?[0-9]+)?|(JD|MJD)-origin"/> </xs:restriction> </xs:simpleType> <xs:simpleContent> <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: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: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:annotation> <xs:documentation> Deprecated in Version 1.1 </xs:documentation> </xs:annotation> <xs:choice maxOccurs="unbounded" minOccurs="0"> </xs:choice> </xs:complexType> <!-- FIELD is the definition of what is in a column of the table --> <xs:sequence> <!-- minOccurs="0" maxOccurs="unbounded" --> <!-- maxOccurs="2" --> </xs:sequence> <!-- GL: is the next deprecated element remaining (is not in PARAM, but will in new model be inherited) --> <!-- type is not in the Version 1.1, but is kept for backward compatibility purposes --> <xs:simpleType> <xs:enumeration value="hidden"/> <xs:enumeration value="no_query"/> <xs:enumeration value="trigger"/> <xs:enumeration value="location"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> <!-- A PARAM is similar to a FIELD, but it also has a "value" attribute --> <!-- GL: implemented here as a subtype as suggested we do in Kyoto. --> <xs:complexContent> </xs:extension> </xs:complexContent> </xs:complexType> <!-- GROUP groups columns; may include descriptions, fields/params/groups --> <xs:sequence> <!-- GL I guess I can understand the next choice element as one may (?) really want to group fields and params and groups in a particular order. --> <xs:choice maxOccurs="unbounded" minOccurs="0"> <!-- GL a GroupRef could remove recursion --> </xs:choice> </xs:sequence> </xs:complexType> <!-- FIELDref and PARAMref are references to FIELD or PARAM defined in the parent TABLE or RESOURCE --> <!-- GL This can not be enforced in XML Schema, so why not IDREF in <Group> ? In particular if the UCD and utype attributes will NOT be added --> </xs:complexType> </xs:complexType> <!-- DATA is the actual table data, in one of three formats --> <!-- GL in Kyoto we discussed the option of having the specific Data items be subtypes of Data: --> <!-- <xs:complexType name="Data" abstract="true"/> <xs:complexType name="TableData"> <xs:complexContent> <xs:extension base="Data"> ... etc </xs:extension> </xs:complexContent> </xs:complexType> --> <xs:annotation> <xs:documentation> Added in Version 1.2: INFO for diagnostics </xs:documentation> </xs:annotation> <xs:sequence> <xs:choice> </xs:choice> </xs:sequence> </xs:complexType> <!-- Pure XML data --> <xs:sequence> </xs:sequence> </xs:complexType> <xs:simpleContent> <!-- xs:attribute name="ref" type="xs:IDREF"/ --> <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:extension> </xs:simpleContent> </xs:complexType> <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:sequence> </xs:complexType> <!-- FITS file, perhaps with specification of which extension to seek to --> <xs:sequence> </xs:sequence> </xs:complexType> <!-- BINARY data format --> <xs:sequence> </xs:sequence> </xs:complexType> <!-- BINARY2 data format --> <xs:sequence> </xs:sequence> </xs:complexType> <!-- STREAM can be local or remote, encoded or not --> <xs:simpleContent> <xs:simpleType> <xs:enumeration value="locator"/> <xs:enumeration value="other"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:simpleType> <xs:enumeration value="onLoad"/> <xs:enumeration value="onRequest"/> <xs:enumeration value="other"/> <xs:enumeration value="none"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:extension> </xs:simpleContent> </xs:complexType> <!-- A TABLE is a sequence of FIELD/PARAMs and LINKS and DESCRIPTION, possibly followed by a DATA section --> <xs:annotation> <xs:documentation> Added in Version 1.2: INFO for diagnostics </xs:documentation> </xs:annotation> <xs:sequence> <!-- GL: why a choice iso for example --> <!-- <xs:element name="PARAM" type="Param" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="FIELD" type="Field" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="GROUP" type="Group" minOccurs="0" maxOccurs="unbounded"/> --> <!-- This could also enforce groups to be defined after the fields and params to which they must have a reference, which is somewhat more logical --> <!-- Added Version 1.2: --> <!-- An empty table without any FIELD/PARAM should not be acceptable --> <xs:choice maxOccurs="unbounded" minOccurs="1"> </xs:choice> <!-- This would allow several DATA parts in a table (future extension?) <xs:sequence minOccurs="0" maxOccurs="unbounded"> <xs:element name="DATA" type="Data"/> <xs:element name="INFO" type="Info" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> --> </xs:sequence> </xs:complexType> <!-- RESOURCES can contain DESCRIPTION, (INFO|PARAM|COSYS), LINK, TABLEs --> <xs:annotation> <xs:documentation> Added in Version 1.2: INFO for diagnostics in several places </xs:documentation> </xs:annotation> <xs:sequence> <xs:choice maxOccurs="unbounded" minOccurs="0"> </xs:choice> <xs:sequence maxOccurs="unbounded" minOccurs="0"> <xs:choice> </xs:choice> </xs:sequence> <!-- Suggested Doug Tody, to include new RESOURCE types --> <xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="lax"/> </xs:sequence> <xs:simpleType> <xs:enumeration value="results"/> <xs:enumeration value="meta"/> </xs:restriction> </xs:simpleType> </xs:attribute> <!-- Suggested Doug Tody, to include new RESOURCE attributes --> <xs:anyAttribute namespace="##other" processContents="lax"/> </xs:complexType> <!-- VOTable is the root element --> <xs:complexType> <xs:sequence> <!-- Deprecated --> <xs:choice maxOccurs="unbounded" minOccurs="0"> </xs:choice> </xs:sequence> <xs:simpleType> <xs:enumeration value="1.3"/> <xs:enumeration value="1.4"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> </xs:schema> |
This XML schema documentation has been generated with DocFlex/XML RE 1.8.0 using DocFlex/XML XSDDoc 2.2.0 template set. DocFlex/XML RE is a reduced edition of DocFlex/XML, which is a tool for programming and running highly sophisticated documentation and reports generators by the data obtained from any kind of XML files. The actual doc-generators are implemented in the form of special templates that are designed visually using a high quality Template Designer GUI basing on the XML schema (or DTD) files describing the data source XML. DocFlex/XML XSDDoc is a commercial template application of DocFlex/XML that implements a high-end XML Schema documentation generator with simultaneous support of framed multi-file HTML, single-file HTML and RTF output formats. (More formats are planned in the future). A commercial license for "DocFlex/XML XSDDoc" will allow you:
Once having only such a license, you will be able to run the fully-featured XML schema documentation generator both with DocFlex/XML SDK and with DocFlex/XML RE, which is a reduced free edition containing only the template interpretor / output generator. No other licenses will be required! But this is not all. In addition to it, a commercial license for DocFlex/XML SDK will allow you to modify the XSDDoc templates themselves as much as you want. You will be able to achieve whatever was impossible to do with the template parameters only. And, of course, you could develop any template applications by your own! Please note: By purchasing a license for this software, you not only acquire a useful tool, you will also make an important investment in its future development, the result of which you could enjoy later by yourself. Every single your purchase matters and makes a difference for us! To buy a license, please follow this link: http://www.filigris.com/shop/ |