XML Schema "coords-v1.20.xsd"
Target Namespace:
http://www.ivoa.net/xml/STC/STCcoords/v1.20
Defined Components:
88 global elements, 24 local elements, 15 complexTypes, 13 simpleTypes
Default Namespace-Qualified Form:
Local Elements: qualified; Local Attributes: unqualified
Schema Location:
/home/msdemlei/gavo/trunk/gavo/resources/schemata/coords-v1.20.xsd; see XML source
XML Source
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2005 sp2 U (http://www.altova.com) by Arnold Rots (Smithsonian Observatory) -->
<!-- edited with XMLSPY v2004 rel. 4 U (http://www.xmlspy.com) by Arnold Rots (Smithsonian Observatory) -->
<!-- edited with XML Spy v4.4 U (http://www.xmlspy.com) by Arnold Rots (Smithsonian Astrophysical Observatory) -->
<!-- $Id: coords.xsd,v 2.7 2005/02/25 19:30:24 arots Exp arots $ -->
<!-- Schema definition for the coordinates in SpaceTimeCoords -->
<!--Change Log:
$Log: coords.xsd,v $
Revision 2.7 2005/02/25 19:30:24 arots
Added position angle type and redefined its meaning: North, X, or Y
Changed units micron to mu, A to Angstrom, in compliance with FITS standard

Revision 2.6 2005/01/05 14:22:11 arots
Release Version 1.10
Added Pixel Space; overhaul of inheritance and polymorphism

Revision 2.4 2004/07/23 21:17:50 arots
Modified ivoa schema locations; changed URN from nvo- to vo-

Revision 2.3 2004/07/16 22:37:53 arots
Release version v1.0.

revision 2.2
date: 2004/07/07 16:16:22; author: arots; state: Exp; lines: +176 -193
Completed conversion to substitution groups.
This version is ready for review.

revision 2.1
date: 2004/05/23 03:32:59; author: arots; state: Exp; lines: +893 -1
Fixed Coords to AstroCoords in STCmeta elements.

revision 2.0
date: 2004/05/21 21:09:17; author: arots; state: Exp; lines: +1 -747
Reworking with substitution groups and generalized CoordSys & Coords.

revision 1.15
date: 2004/03/31 21:20:30; author: arots; state: Exp; lines: +80 -112
Proper units and improvements.

Revision 1.14 2003/05/15 10:04:23 arots
Remove erroneous Name elements.

Revision 1.13 2003/05/08 20:28:19 arots
Added spectral coordinate.

revision 1.12
date: 2003/05/02 19:01:37; author: arots; state: Exp; lines: +41 -10
Changed JD and MJD to decimal type; added annotation.

Revision 1.11 2003/04/30 16:54:52 arots
Replaced substitutiongroups by choice - didn't work well.

Revision 1.10 2003/04/30 13:27:12 arots
Fixed up change log, changed schema locations.

Revision 1.9 2003/04/29 20:56:40 arots
Completed new astronTimeType and proper handling of units.

Revision 1.8 2003/04/28 16:25:34 arots
Split off stc.xsd as main, to avoid recursive inclusion.
Bring into line with region.xsd.

Revision 1.7 2003/04/17 19:05:41 arots
removed region definitions.

Revision 1.6 2003/04/01 17:45:36 arots
Put reference position back in; added annotation.

Revision 1.5 2003/03/27 20:20:16 arots
Preserved ObservatoryLocation as independent element, as well.

Revision 1.4 2003/03/27 20:06:26 arots
Extensive revision: vectorized spatial coordinates,
included ObservatoryLocation in ObservationLocation.

Revision 1.3 2002/07/11 11:44:01 arots
Corrected RCS Id.

Revision 1.2 2002/07/11 08:58:25 arots
All elements.

Revision 1.1 2002/07/10 12:04:31 arots
Initial revision
-->
<xs:schema elementFormDefault="qualified" targetNamespace="http://www.ivoa.net/xml/STC/STCcoords/v1.20" xmlns:crd="http://www.ivoa.net/xml/STC/STCcoords/v1.20" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- Attribute types: units and time scale-->
<xs:simpleType name="unitType">
<xs:annotation>
<xs:documentation>Basic unit type</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<xs:simpleType name="timeUnitType">
<xs:annotation>
<xs:documentation>
Time units may be second (s), hour (h: 3600 s), day (d: 86400 s), Julian year (a, yr: 365.25 d), Julian century (cy: 36525 d), or empty (i.e., dimensionless) for ISO-8601 format
</xs:documentation>
</xs:annotation>
<xs:restriction base="crd:unitType">
<xs:enumeration value="s"/>
<xs:enumeration value="h"/>
<xs:enumeration value="d"/>
<xs:enumeration value="a"/>
<xs:enumeration value="yr"/>
<xs:enumeration value="cy"/>
<xs:enumeration value=""/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="posUnitType">
<xs:annotation>
<xs:documentation>
Coordinate units may be angular (degrees, radians, hours, arcmins, arcsecs), linear (meters, km, mm, AUs, parsecs, kpc, Mpc, lightyears), or empty (i.e., dimensionless)
</xs:documentation>
</xs:annotation>
<xs:restriction base="crd:unitType">
<xs:enumeration value="deg"/>
<xs:enumeration value="deg deg m"/>
<xs:enumeration value="rad"/>
<xs:enumeration value="h"/>
<xs:enumeration value="arcmin"/>
<xs:enumeration value="arcsec"/>
<xs:enumeration value="m"/>
<xs:enumeration value="km"/>
<xs:enumeration value="mm"/>
<xs:enumeration value="AU"/>
<xs:enumeration value="pc"/>
<xs:enumeration value="kpc"/>
<xs:enumeration value="Mpc"/>
<xs:enumeration value="lyr"/>
<xs:enumeration value=""/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="angleUnitType">
<xs:annotation>
<xs:documentation>
Angular coordinate units may be degrees, radians, hours, arcmins, arcsecs
</xs:documentation>
</xs:annotation>
<xs:restriction base="crd:unitType">
<xs:enumeration value="deg"/>
<xs:enumeration value="rad"/>
<xs:enumeration value="h"/>
<xs:enumeration value="arcmin"/>
<xs:enumeration value="arcsec"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="posAngleReferenceType">
<xs:annotation>
<xs:documentation>
Position angles may be counted from North (through East), (positive) X (to positive Y), or (positive) Y (to positive X) axis
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="North"/>
<xs:enumeration value="X"/>
<xs:enumeration value="Y"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="velTimeUnitType">
<xs:annotation>
<xs:documentation>
Velocity units are a posUnitType / velTimeType; the latter may be second, day, hour, year (a or yr), century, but not empty
</xs:documentation>
</xs:annotation>
<xs:restriction base="crd:unitType">
<xs:enumeration value="s"/>
<xs:enumeration value="h"/>
<xs:enumeration value="d"/>
<xs:enumeration value="a"/>
<xs:enumeration value="yr"/>
<xs:enumeration value="cy"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="spectralUnitType">
<xs:annotation>
<xs:documentation>
Spectral units may be frequency (Hz, kHz, MHz, GHz), wavelength (meters, mm, micron, nm, Angstrom), or energy (eV, keV, MeV, GeV, TeV)
</xs:documentation>
</xs:annotation>
<xs:restriction base="crd:unitType">
<xs:enumeration value="Hz"/>
<xs:enumeration value="kHz"/>
<xs:enumeration value="MHz"/>
<xs:enumeration value="GHz"/>
<xs:enumeration value="m"/>
<xs:enumeration value="mm"/>
<xs:enumeration value="um"/>
<xs:enumeration value="nm"/>
<xs:enumeration value="Angstrom"/>
<xs:enumeration value="eV"/>
<xs:enumeration value="keV"/>
<xs:enumeration value="MeV"/>
<xs:enumeration value="GeV"/>
<xs:enumeration value="TeV"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="timeScaleType">
<xs:annotation>
<xs:documentation>
The actual time scale used: TT, TAI, UTC, TDB, etc.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="TT">
<xs:annotation>
<xs:documentation>Terrestrial Time; the basis for ephmerides</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="TDT">
<xs:annotation>
<xs:documentation>Obsolete synonym for TT</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="ET">
<xs:annotation>
<xs:documentation>
Ephemeris Time; predecessor of, and continuous with, TT
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="TEB">
<xs:annotation>
<xs:documentation>
Barycentric Ephemeris Time:the independent variable in planetay ephemerides; time at the solar system barycenter synchronous with TT on an annual basis; often called TDB
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="TDB">
<xs:annotation>
<xs:documentation>
Barycentric Dynamic Time: time at the solar system barycenter synchronous with TT on an annual basis; often confused with TEB
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="TCG">
<xs:annotation>
<xs:documentation>Terrestrial Coordinate Time</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="TCB">
<xs:annotation>
<xs:documentation>
Barycentric Coordinate Time; runs slower than TDB but is consistent with physical constants
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="TAI">
<xs:annotation>
<xs:documentation>
International Atomic Time; runs 32.184 s behind TT
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="IAT">
<xs:annotation>
<xs:documentation>Synonym for TAI</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="UTC">
<xs:annotation>
<xs:documentation>
Coordinated Universal Time; currently (2004) runs 34 leapseconds behind TAI
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="LST">
<xs:annotation>
<xs:documentation>
Local Siderial Time; only for ground-based observations; note that the second is shorter
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="LOCAL">
<xs:annotation>
<xs:documentation>
Only to be used for simulations in conjunction with a relocatable spatial frame
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="posAngleType">
<xs:annotation>
<xs:documentation>
Position angles are doubles and include optionally a unit attribute (default deg) and a reference attribute (default X)
</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="xs:double">
<xs:attribute default="deg" name="unit" type="crd:angleUnitType"/>
<xs:attribute default="X" name="reference" type="crd:posAngleReferenceType"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<!--The definition of astronTimeType-->
<xs:element abstract="true" name="AbsoluteTime" type="xs:anyType">
<xs:annotation>
<xs:documentation>
Substitution group for absoluteTimeType component of astronTimeType
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ISOTime" substitutionGroup="crd:AbsoluteTime" type="xs:dateTime">
<xs:annotation>
<xs:documentation>
ISO8601 time; note: only a limited subset of ISO 8601 is allowed: yyyy-mm-ddThh:mm:ss.sss...
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ISOTimeRef" substitutionGroup="crd:AbsoluteTime" type="xs:IDREF">
<xs:annotation>
<xs:documentation>IDREF to an ISO8601 time</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="JDTime" substitutionGroup="crd:AbsoluteTime" type="xs:decimal">
<xs:annotation>
<xs:documentation>JD time</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="JDTimeRef" substitutionGroup="crd:AbsoluteTime" type="xs:IDREF">
<xs:annotation>
<xs:documentation>IDREF to a JD time</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="MJDTime" substitutionGroup="crd:AbsoluteTime" type="xs:decimal">
<xs:annotation>
<xs:documentation>MJD time (=JD - 2400000.5)</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="MJDTimeRef" substitutionGroup="crd:AbsoluteTime" type="xs:IDREF">
<xs:annotation>
<xs:documentation>IDREF to an MJD time</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TimeOrigin" substitutionGroup="crd:AbsoluteTime">
<xs:annotation>
<xs:documentation>A relocatable time origin for simulations</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="RELOCATABLE"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element abstract="true" name="RelativeTime" type="xs:anyType">
<xs:annotation>
<xs:documentation>
Substitution group: Relative time is elapsed time relative to the absolute reference time component
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="TimeOffset" substitutionGroup="crd:RelativeTime">
<xs:annotation>
<xs:documentation>Actual elapsed time offset</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:decimal">
<xs:attribute default="s" name="unit" type="crd:timeUnitType" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="TimeOffsetRef" substitutionGroup="crd:RelativeTime">
<xs:annotation>
<xs:documentation>
IDREF to the elapsed relative time part of a AstronTime
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:IDREF">
<xs:attribute default="s" name="unit" type="crd:timeUnitType" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:complexType name="astronTimeType">
<xs:annotation>
<xs:documentation>
astronTime is the generalized astronomical time type and consists of two or three elements: TimeScale, optional relative time offset, and an absolute time (ISO8601 or a decimal JD or MJD; or it may be an IDREF to one of those three)
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="Timescale" type="crd:timeScaleType"/>
<xs:element minOccurs="0" ref="crd:RelativeTime"/>
<xs:element ref="crd:AbsoluteTime"/>
</xs:sequence>
</xs:complexType>
<!--Some specific vectors of doubles-->
<xs:simpleType name="doubleArrayType">
<xs:annotation>
<xs:documentation>For vector coordinates we need arrays of doubles</xs:documentation>
</xs:annotation>
<xs:list itemType="xs:double"/>
</xs:simpleType>
<xs:simpleType name="double2Type">
<xs:annotation>
<xs:documentation>A vector of 2 doubles</xs:documentation>
</xs:annotation>
<xs:restriction base="crd:doubleArrayType">
<xs:length value="2"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="double3Type">
<xs:annotation>
<xs:documentation>A vector of 3 doubles</xs:documentation>
</xs:annotation>
<xs:restriction base="crd:doubleArrayType">
<xs:length value="3"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="double4Type">
<xs:annotation>
<xs:documentation>A vector of 4 doubles</xs:documentation>
</xs:annotation>
<xs:restriction base="crd:doubleArrayType">
<xs:length value="4"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="double9Type">
<xs:annotation>
<xs:documentation>A vector of 9 doubles</xs:documentation>
</xs:annotation>
<xs:restriction base="crd:doubleArrayType">
<xs:length value="9"/>
</xs:restriction>
</xs:simpleType>
<!--Substitution group for coordinate values-->
<xs:element abstract="true" name="CoordValue" type="xs:anyType">
<xs:annotation>
<xs:documentation>
The head element for the CoordinateValue substitution group
</xs:documentation>
</xs:annotation>
</xs:element>
<!--Substitution groups for 1-D coordinates -->
<xs:element abstract="true" name="CValue" substitutionGroup="crd:CoordValue" type="xs:anyType">
<xs:annotation>
<xs:documentation>Substitution group for a scalar coordinate value</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Value" substitutionGroup="crd:CValue" type="xs:double">
<xs:annotation>
<xs:documentation>double</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ValueRef" substitutionGroup="crd:CValue" type="xs:IDREF">
<xs:annotation>
<xs:documentation>IDREF to a Value</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element abstract="true" name="CError" type="xs:anyType">
<xs:annotation>
<xs:documentation>Substitution group for a scalar coordinate error</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Error" substitutionGroup="crd:CError" type="xs:double">
<xs:annotation>
<xs:documentation>double</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ErrorRef" substitutionGroup="crd:CError" type="xs:IDREF">
<xs:annotation>
<xs:documentation>IDREF to an Error</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element abstract="true" name="CResolution" type="xs:anyType">
<xs:annotation>
<xs:documentation>
Substitution group for a scalar coordinate resolution
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Resolution" substitutionGroup="crd:CResolution" type="xs:double">
<xs:annotation>
<xs:documentation>double</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ResolutionRef" substitutionGroup="crd:CResolution" type="xs:IDREF">
<xs:annotation>
<xs:documentation>IDREF to a Resolution</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element abstract="true" name="CSize" type="xs:anyType">
<xs:annotation>
<xs:documentation>Substitution group for a scalar coordinate size</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Size" substitutionGroup="crd:CSize" type="xs:double">
<xs:annotation>
<xs:documentation>double</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="SizeRef" substitutionGroup="crd:CSize" type="xs:IDREF">
<xs:annotation>
<xs:documentation>IDREF to a Size</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element abstract="true" name="CPixSize" type="xs:anyType">
<xs:annotation>
<xs:documentation>
Substitution group for a scalar coordinate pixel size
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PixSize" substitutionGroup="crd:CPixSize" type="xs:double">
<xs:annotation>
<xs:documentation>double</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PixSizeRef" substitutionGroup="crd:CPixSize" type="xs:IDREF">
<xs:annotation>
<xs:documentation>IDREF to a Pixel Size</xs:documentation>
</xs:annotation>
</xs:element>
<!--1-D coordinate types-->
<xs:complexType abstract="true" name="coordinateType">
<xs:annotation>
<xs:documentation>
Abstract coordinate type; a concrete Coordinate consists of a Value, Error, Resolution, Size, and PixSize
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="Name" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="scalarCoordinateType">
<xs:annotation>
<xs:documentation>Generic scalar coordinate type</xs:documentation>
<xs:documentation>
Single CError, CResolution, CSize, CPixSize elements indicate definite values; pairs indicate ranges
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="crd:coordinateType">
<xs:sequence>
<xs:element minOccurs="0" ref="crd:CValue"/>
<xs:element maxOccurs="2" minOccurs="0" ref="crd:CError"/>
<xs:element maxOccurs="2" minOccurs="0" ref="crd:CResolution"/>
<xs:element maxOccurs="2" minOccurs="0" ref="crd:CSize"/>
<xs:element maxOccurs="2" minOccurs="0" ref="crd:CPixSize"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="timeCoordinateType">
<xs:annotation>
<xs:documentation>Time coordinate type</xs:documentation>
<xs:documentation>
Single CError, CResolution, CSize, CPixSize elements indicate definite values; pairs indicate ranges
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="crd:coordinateType">
<xs:sequence>
<xs:element minOccurs="0" name="TimeInstant" type="crd:astronTimeType"/>
<xs:element maxOccurs="2" minOccurs="0" ref="crd:CError"/>
<xs:element maxOccurs="2" minOccurs="0" ref="crd:CResolution"/>
<xs:element maxOccurs="2" minOccurs="0" ref="crd:CSize"/>
<xs:element maxOccurs="2" minOccurs="0" ref="crd:CPixSize"/>
</xs:sequence>
<xs:attribute default="s" name="unit" type="crd:timeUnitType" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!--Substitution groups for 2-D coordinates -->
<xs:complexType name="size2Type">
<xs:annotation>
<xs:documentation>
Consists of a Size (2 doubles) and optional position angle element
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="Size" type="crd:double2Type"/>
<xs:element minOccurs="0" name="PosAngle" type="crd:posAngleType"/>
</xs:sequence>
</xs:complexType>
<xs:element abstract="true" name="CValue2" substitutionGroup="crd:CoordValue" type="xs:anyType">
<xs:annotation>
<xs:documentation>Substitution group for a 2-D coordinate value</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Value2" substitutionGroup="crd:CValue2" type="crd:double2Type">
<xs:annotation>
<xs:documentation>double vector</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Value2Ref" substitutionGroup="crd:CValue2" type="xs:IDREF">
<xs:annotation>
<xs:documentation>IDREF to a Value2</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element abstract="true" name="CError2" type="xs:anyType">
<xs:annotation>
<xs:documentation>Substitution group for a 2-D coordinate error</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Error2" substitutionGroup="crd:CError2" type="crd:double2Type">
<xs:annotation>
<xs:documentation>2 doubles Error element</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Error2PA" substitutionGroup="crd:CError2" type="crd:size2Type">
<xs:annotation>
<xs:documentation>size2Type Error element</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Error2Matrix" substitutionGroup="crd:CError2" type="crd:double4Type">
<xs:annotation>
<xs:documentation>2x2 matrix Error element</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Error2Ref" substitutionGroup="crd:CError2" type="xs:IDREF">
<xs:annotation>
<xs:documentation>IDREF to an Error2</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element abstract="true" name="CResolution2" type="xs:anyType">
<xs:annotation>
<xs:documentation>
Substitution group for a 2-D coordinate resolution
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Resolution2" substitutionGroup="crd:CResolution2" type="crd:double2Type">
<xs:annotation>
<xs:documentation>2 doubles Resolution element</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Resolution2PA" substitutionGroup="crd:CResolution2" type="crd:size2Type">
<xs:annotation>
<xs:documentation>size2Type Resolution element</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Resolution2Matrix" substitutionGroup="crd:CResolution2" type="crd:double4Type">
<xs:annotation>
<xs:documentation>2x2 matrix Resolution element</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Resolution2Ref" substitutionGroup="crd:CResolution2" type="xs:IDREF">
<xs:annotation>
<xs:documentation>IDREF to a Resolution2</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element abstract="true" name="CSize2" type="xs:anyType">
<xs:annotation>
<xs:documentation>Substitution group for a 2-D coordinate size</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Size2" substitutionGroup="crd:CSize2" type="crd:double2Type">
<xs:annotation>
<xs:documentation>2 doubles Size element</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Size2PA" substitutionGroup="crd:CSize2" type="crd:size2Type">
<xs:annotation>
<xs:documentation>size2Type Size element</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Size2Matrix" substitutionGroup="crd:CSize2" type="crd:double4Type">
<xs:annotation>
<xs:documentation>2x2 matrix Size element</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Size2Ref" substitutionGroup="crd:CSize2" type="xs:IDREF">
<xs:annotation>
<xs:documentation>IDREF to a Size2</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element abstract="true" name="CPixSize2" type="xs:anyType">
<xs:annotation>
<xs:documentation>
Substitution group for a 2-D coordinate pixel size
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PixSize2" substitutionGroup="crd:CPixSize2" type="crd:double2Type">
<xs:annotation>
<xs:documentation>2 doubles PixSize element</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PixSize2PA" substitutionGroup="crd:CPixSize2" type="crd:size2Type">
<xs:annotation>
<xs:documentation>size2Type PixSize element</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PixSize2Matrix" substitutionGroup="crd:CPixSize2" type="crd:double4Type">
<xs:annotation>
<xs:documentation>2x2 matrix PixSize element</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PixSize2Ref" substitutionGroup="crd:CPixSize2" type="xs:IDREF">
<xs:annotation>
<xs:documentation>IDREF to a PixSize2</xs:documentation>
</xs:annotation>
</xs:element>
<!--2-D coordinate types-->
<xs:complexType name="vector2CoordinateType">
<xs:annotation>
<xs:documentation>Generic 2-D coordinate type</xs:documentation>
<xs:documentation>
Single CError2, CResolution2, CSize2, CPixSize2 elements indicate definite values; pairs indicate ranges
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="crd:coordinateType">
<xs:sequence>
<xs:element minOccurs="0" ref="crd:CValue2"/>
<xs:element maxOccurs="2" minOccurs="0" ref="crd:CError2"/>
<xs:element maxOccurs="2" minOccurs="0" ref="crd:CResolution2"/>
<xs:element maxOccurs="2" minOccurs="0" ref="crd:CSize2"/>
<xs:element maxOccurs="2" minOccurs="0" ref="crd:CPixSize2"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!--Substitution groups for 3-D coordinates -->
<xs:complexType name="size3Type">
<xs:annotation>
<xs:documentation>
Consists of a Size (3 doubles) and optional position angle element
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="Size" type="crd:double3Type"/>
<xs:element minOccurs="0" name="PosAngle1" type="crd:posAngleType"/>
<xs:element minOccurs="0" name="PosAngle2" type="crd:posAngleType"/>
</xs:sequence>
</xs:complexType>
<xs:element abstract="true" name="CValue3" substitutionGroup="crd:CoordValue" type="xs:anyType">
<xs:annotation>
<xs:documentation>Substitution group for a 3-D coordinate value</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Value3" substitutionGroup="crd:CValue3" type="crd:double3Type">
<xs:annotation>
<xs:documentation>Vector of 3 doubles</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Value3Ref" substitutionGroup="crd:CValue3" type="xs:IDREF">
<xs:annotation>
<xs:documentation>IDREF to a Value3</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element abstract="true" name="CError3" type="xs:anyType">
<xs:annotation>
<xs:documentation>Substitution group for a 3-D coordinate error</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Error3" substitutionGroup="crd:CError3" type="crd:double3Type">
<xs:annotation>
<xs:documentation>3 doubles Error element</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Error3PA" substitutionGroup="crd:CError3" type="crd:size3Type">
<xs:annotation>
<xs:documentation>size3Type Error element</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Error3Matrix" substitutionGroup="crd:CError3" type="crd:double9Type">
<xs:annotation>
<xs:documentation>3x3 matrix Error element</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Error3Ref" substitutionGroup="crd:CError3" type="xs:IDREF">
<xs:annotation>
<xs:documentation>IDREF to an Error3</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element abstract="true" name="CResolution3" type="xs:anyType">
<xs:annotation>
<xs:documentation>
Substitution group for a 3-D coordinate resolution
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Resolution3" substitutionGroup="crd:CResolution3" type="crd:double3Type">
<xs:annotation>
<xs:documentation>3 doubles Resoltuion element</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Resolution3PA" substitutionGroup="crd:CResolution3" type="crd:size3Type">
<xs:annotation>
<xs:documentation>size3Type Resolution element</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Resolution3Matrix" substitutionGroup="crd:CResolution3" type="crd:double9Type">
<xs:annotation>
<xs:documentation>3x3 matrix Resoltuion element</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Resolution3Ref" substitutionGroup="crd:CResolution3" type="xs:IDREF">
<xs:annotation>
<xs:documentation>IDREF to a Resolution3</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element abstract="true" name="CSize3" type="xs:anyType">
<xs:annotation>
<xs:documentation>Substitution group for a 3-D coordinate size</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Size3" substitutionGroup="crd:CSize3" type="crd:double3Type">
<xs:annotation>
<xs:documentation>3 doubles Size element</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Size3PA" substitutionGroup="crd:CSize3" type="crd:size3Type">
<xs:annotation>
<xs:documentation>size3Type Size element</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Size3Matrix" substitutionGroup="crd:CSize3" type="crd:double9Type">
<xs:annotation>
<xs:documentation>3x3 matrix Size element</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Size3Ref" substitutionGroup="crd:CSize3" type="xs:IDREF">
<xs:annotation>
<xs:documentation>IDREF to a Size3</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element abstract="true" name="CPixSize3" type="xs:anyType">
<xs:annotation>
<xs:documentation>
Substitution group for a 3-D coordinate pixel size
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PixSize3" substitutionGroup="crd:CPixSize3" type="crd:double3Type">
<xs:annotation>
<xs:documentation>3 doubles PixSize element</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PixSize3PA" substitutionGroup="crd:CPixSize3" type="crd:size3Type">
<xs:annotation>
<xs:documentation>size3Type PixSize element</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PixSize3Matrix" substitutionGroup="crd:CPixSize3" type="crd:double9Type">
<xs:annotation>
<xs:documentation>3x3 matrix PixSize element</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PixSize3Ref" substitutionGroup="crd:CPixSize3" type="xs:IDREF">
<xs:annotation>
<xs:documentation>IDREF to a PixSize3</xs:documentation>
</xs:annotation>
</xs:element>
<!--3-D coordinate types-->
<xs:complexType name="vector3CoordinateType">
<xs:annotation>
<xs:documentation>Generic 3-D coordinate type</xs:documentation>
<xs:documentation>
Single CError3, CResolution3, CSize3, CPixSize3 elements indicate definite values; pairs indicate ranges
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="crd:coordinateType">
<xs:sequence>
<xs:element minOccurs="0" ref="crd:CValue3"/>
<xs:element maxOccurs="2" minOccurs="0" ref="crd:CError3"/>
<xs:element maxOccurs="2" minOccurs="0" ref="crd:CResolution3"/>
<xs:element maxOccurs="2" minOccurs="0" ref="crd:CSize3"/>
<xs:element maxOccurs="2" minOccurs="0" ref="crd:CPixSize3"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- Coord Substitution Groups-->
<xs:element abstract="true" name="Coordinate" type="crd:coordinateType">
<xs:annotation>
<xs:documentation>Coordinate substitution group</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ScalarCoordinate" substitutionGroup="crd:Coordinate">
<xs:annotation>
<xs:documentation>Generic scalar coordinate element</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="crd:scalarCoordinateType">
<xs:attribute name="unit" type="xs:string" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="StringCoordinate" substitutionGroup="crd:Coordinate">
<xs:annotation>
<xs:documentation>Generic string coordinate element</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="crd:coordinateType">
<xs:sequence>
<xs:element name="Value" type="xs:string"/>
</xs:sequence>
<xs:attribute name="unit" type="xs:string" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="PixelCoordinate" substitutionGroup="crd:Coordinate">
<xs:annotation>
<xs:documentation>Generic coordinate element for pixels</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="crd:coordinateType">
<xs:sequence>
<xs:element name="Value" type="xs:double"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element abstract="true" name="Position" type="crd:coordinateType">
<xs:annotation>
<xs:documentation>Position coordinate substitution group</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Position1D" substitutionGroup="crd:Position">
<xs:annotation>
<xs:documentation>1-D Position coordinate</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="crd:scalarCoordinateType">
<xs:attribute name="unit" type="crd:posUnitType" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Position2D" substitutionGroup="crd:Position">
<xs:annotation>
<xs:documentation>2-D Position coordinate</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="crd:vector2CoordinateType">
<xs:attribute name="unit" type="crd:posUnitType" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Position3D" substitutionGroup="crd:Position">
<xs:annotation>
<xs:documentation>3-D Position coordinate</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="crd:vector3CoordinateType">
<xs:attribute name="unit" type="crd:posUnitType" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element abstract="true" name="Velocity" type="crd:coordinateType">
<xs:annotation>
<xs:documentation>Velocity coordinate substitution group</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Velocity1D" substitutionGroup="crd:Velocity">
<xs:annotation>
<xs:documentation>1-D Velocity coordinate</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="crd:scalarCoordinateType">
<xs:attribute name="unit" type="crd:posUnitType" use="required"/>
<xs:attribute name="vel_time_unit" type="crd:velTimeUnitType" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Velocity2D" substitutionGroup="crd:Velocity">
<xs:annotation>
<xs:documentation>2-D Velocity coordinate</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="crd:vector2CoordinateType">
<xs:attribute name="unit" type="crd:posUnitType" use="required"/>
<xs:attribute name="vel_time_unit" type="crd:velTimeUnitType" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Velocity3D" substitutionGroup="crd:Velocity">
<xs:annotation>
<xs:documentation>3-D Velocity coordinate</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="crd:vector3CoordinateType">
<xs:attribute name="unit" type="crd:posUnitType" use="required"/>
<xs:attribute name="vel_time_unit" type="crd:velTimeUnitType" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<!--FITS file type to hold coordinate values-->
<xs:complexType name="fitsType">
<xs:annotation>
<xs:documentation>
Specifies a FITS file and optionally a specific HDU by HDU number or HDU name
</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="xs:anyURI">
<xs:attribute name="hdu_num" type="xs:integer"/>
<xs:attribute name="hdu_name" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="coordFITSColumnsType">
<xs:annotation>
<xs:documentation>
Refers coordinate components to specific columns in the FITS file HDU
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="Name" type="xs:string"/>
<xs:element minOccurs="0" name="Value" type="xs:string">
<xs:annotation>
<xs:documentation>
The column name for the coordinate value; comma-separated if multi-dimensional
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="Error" type="xs:string">
<xs:annotation>
<xs:documentation>
The column name for the coordinate error; comma-separated if multi-dimensional
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="Resolution" type="xs:string">
<xs:annotation>
<xs:documentation>
The column name for the coordinate resolution; comma-separated if multi-dimensional
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="Size" type="xs:string">
<xs:annotation>
<xs:documentation>
The column name for the coordinate size; comma-separated if multi-dimensional
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="PixSize" type="xs:string">
<xs:annotation>
<xs:documentation>
The column name for the coordinate pixel size; comma-separated if multi-dimensional
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="astroCoordsFileType">
<xs:annotation>
<xs:documentation>Coordinate references to a specific FITS file</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="FITSFile" type="crd:fitsType"/>
<xs:element minOccurs="0" name="FITSTime" type="crd:coordFITSColumnsType"/>
<xs:element minOccurs="0" name="FITSPosition" type="crd:coordFITSColumnsType"/>
<xs:element minOccurs="0" name="FITSVelocity" type="crd:coordFITSColumnsType"/>
<xs:element minOccurs="0" name="FITSSpectral" type="crd:coordFITSColumnsType"/>
<xs:element minOccurs="0" name="FITSRedshift" type="crd:coordFITSColumnsType"/>
</xs:sequence>
</xs:complexType>
<!-- Coords Types-->
<xs:complexType name="coordsType">
<xs:annotation>
<xs:documentation>The generic coordsType</xs:documentation>
</xs:annotation>
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:element ref="crd:Coordinate"/>
</xs:sequence>
<xs:attribute name="coord_system_id" type="xs:IDREF" use="required"/>
</xs:complexType>
<xs:complexType name="astroCoordsType">
<xs:annotation>
<xs:documentation>The astronomical (STC) coordsType</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="crd:coordsType">
<xs:sequence>
<xs:element minOccurs="0" name="Time" type="crd:timeCoordinateType"/>
<xs:element minOccurs="0" ref="crd:Position"/>
<xs:element minOccurs="0" ref="crd:Velocity"/>
<xs:element minOccurs="0" name="Spectral">
<xs:complexType>
<xs:complexContent>
<xs:extension base="crd:scalarCoordinateType">
<xs:attribute name="unit" type="crd:spectralUnitType" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="Redshift">
<xs:complexType>
<xs:complexContent>
<xs:extension base="crd:scalarCoordinateType">
<xs:attribute name="unit" type="crd:posUnitType" use="optional"/>
<xs:attribute name="vel_time_unit" type="crd:velTimeUnitType" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="CoordFile" type="crd:astroCoordsFileType">
<xs:annotation>
<xs:documentation>
Some or all coordinate values may be given in file
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="pixelCoordsType">
<xs:annotation>
<xs:documentation>The pixel coordinates type</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:restriction base="crd:coordsType">
<xs:sequence maxOccurs="unbounded">
<xs:element ref="crd:PixelCoordinate"/>
</xs:sequence>
<xs:attribute name="coord_system_id" type="xs:IDREF" use="required"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="Coords" type="crd:coordsType">
<xs:annotation>
<xs:documentation>Head element of Coords group (not abstract)</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="AstroCoords" substitutionGroup="crd:Coords" type="crd:astroCoordsType">
<xs:annotation>
<xs:documentation>
The coordinate element consists either of a coordinate file or a sequence of time element, spatial coordinate element, velocity element, and redshift element; the spatial and velocity elements may be scalar or vector; it needs to refer to a coordinate system
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PixelCoords" substitutionGroup="crd:Coords" type="crd:pixelCoordsType">
<xs:annotation>
<xs:documentation>Contains pixel coordinates</xs:documentation>
</xs:annotation>
</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:
  • To configure the generated documentation so much as you want. Thanks to our template technology, it was possible to support more than 300 template parameters (working the same as "options" of an ordinary doc-gen), which will give you an unprecedented control over the generated content!
  • To use certain features disabled in the free mode (such as the full documenting of substitution groups).
  • To enable/disable documenting of the initial, imported, included and redefined XML schemas selectively.
  • To document local element components both globally and locally (similar to attributes).
  • To enable/disable reproducing of namespace prefixes.
  • To format your annotations with XHTML tags and reproduce that formatting both in HTML and RTF output.
  • To insert images in your annotations using XHTML <img> tags (supported both in HTML and RTF output).
  • To use PlainDoc.tpl main template to generate all the XML schema documentation in the form of a single HTML file.
  • To use the same template to generate the incredible quality RTF documentation.
  • To document only selected XML schema components specified by name.
  • To remove this very advertisement text
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/