Schema Name VOEventMini.xsd
Target Namespace http://voevent.dc3.com/VOEventMini/v1.1
Attribute Groups STCReference
Complex Types Author
Citations
Coordinates
CoordinateSystem
Description
Double1
Group
How
Inference
ISOTime
IVORN
JDTime
Location
MJDTime
ObsDataLocation
Param
posAngleTypes
Position2D
Position3D
Reference
Time
TimeInstant
Value2
Value3
What
WhereWhen
Who
Why
Elements VOEvent
Simple Types angleUnitTypes
astroCoordSystemTypes
citeTypes
posAngleReferenceTypes
posUnitTypes
roleTypes
timeScaleTypes
timeUnitTypes
unitType
velTimeUnitTypes
XSD Schema Code
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xmlns="http://voevent.dc3.com/VOEventMini/v1.1" targetNamespace="http://voevent.dc3.com/VOEventMini/v1.1" >
  <xs:import schemaLocation="http://www.ivoa.net/xml/Xlink/xlink.xsd" namespace="http://www.w3.org/1999/xlink"/>
  <xs:element name="VOEvent">
    <xs:complexType>
      <xs:all>
        <xs:element minOccurs="0" name="Who" type="Who"/>
        <xs:element minOccurs="0" name="What" type="What"/>
        <xs:element minOccurs="0" name="WhereWhen" type="WhereWhen"/>
        <xs:element minOccurs="0" name="How" type="How"/>
        <xs:element minOccurs="0" name="Why" type="Why"/>
        <xs:element minOccurs="0" name="Citations" type="Citations"/>
        <xs:element minOccurs="0" name="Description" type="Description"/>
        <xs:element minOccurs="0" name="Reference" type="Reference"/>
      </xs:all>

      <xs:attribute name="version" type="xs:token" use="required"/>
      <xs:attribute name="ivorn" type="xs:anyURI" use="required"/>
      <xs:attribute default="observation" name="role" type="roleTypes" use="optional"/>
    </xs:complexType>

  </xs:element>

  <xs:complexType name="Author">
    <xs:all>
      <xs:element minOccurs="0" name="title" type="xs:string"/>
      <xs:element minOccurs="0" name="shortName" type="xs:string"/>
      <xs:element minOccurs="0" name="logoURL" type="xs:string"/>
      <xs:element minOccurs="0" name="contactName" type="xs:string"/>
      <xs:element minOccurs="0" name="contactEmail" type="xs:string"/>
      <xs:element minOccurs="0" name="contactPhone" type="xs:string"/>
      <xs:element minOccurs="0" name="contributor" type="xs:string"/>
    </xs:all>

  </xs:complexType>

  <xs:complexType name="Citations">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="EventIVORN" type="IVORN"/>
      <xs:element name="Description" type="Description"/>
      <xs:element name="Reference" type="Reference"/>
    </xs:choice>

  </xs:complexType>

  <xs:complexType name="Coordinates">
    <xs:all>
      <xs:element minOccurs="0" name="Time" type="Time"/>
      <xs:element minOccurs="0" name="Position2D" type="Position2D"/>
      <xs:element minOccurs="0" name="Position3D" type="Position3D"/>
    </xs:all>

    <xs:attributeGroup ref="STCReference"/>
    <xs:attribute name="coord_system_id" use="required">
      <xs:simpleType>
        <xs:restriction base="astroCoordSystemTypes"/>
      </xs:simpleType>

    </xs:attribute>

  </xs:complexType>
<!-- Empty sequence here NOT in original schema -->
  <xs:complexType name="CoordinateSystem">
    <xs:sequence/>
    <xs:attributeGroup ref="STCReference"/>
  </xs:complexType>

  <xs:complexType name="Description">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute default="text/plain" name="format" type="xs:string"/>
      </xs:extension>

    </xs:simpleContent>

  </xs:complexType>

  <xs:complexType name="Double1">
    <xs:simpleContent>
      <xs:extension base="xs:double">
        <xs:attribute name="id" type="xs:ID" use="optional"/>
        <xs:attribute name="idref" type="xs:IDREF" use="optional"/>
        <xs:attribute name="ucd" type="xs:string" use="optional"/>
        <xs:attribute name="type" type="xs:string" use="optional"/>
        <xs:attribute name="href" type="xs:anyURI" use="optional"/>
        <xs:attribute name="ID_type" type="xs:string" use="optional"/>
        <xs:attribute name="IDREF_type" type="xs:string" use="optional"/>
        <xs:attribute name="time_unit" type="timeUnitTypes" use="optional"/>
        <xs:attribute name="pos_unit" type="posUnitTypes" use="optional"/>
        <xs:attribute name="pos_angle_unit" type="angleUnitTypes" use="optional"/>
        <xs:attribute name="vel_time_unit" type="velTimeUnitTypes" use="optional"/>
        <xs:attribute name="gen_unit" type="unitType" use="optional"/>
      </xs:extension>

    </xs:simpleContent>

  </xs:complexType>

  <xs:complexType name="Group">
    <xs:choice maxOccurs="unbounded">
      <xs:element minOccurs="0" name="Param" type="Param"/>
      <xs:element minOccurs="0" maxOccurs="1" name="Description" type="Description"/>
      <xs:element minOccurs="0" maxOccurs="1" name="Reference" type="Reference"/>
    </xs:choice>

    <xs:attribute name="type" type="xs:string" use="optional"/>
    <xs:attribute name="name" type="xs:string" use="optional"/>
  </xs:complexType>

  <xs:complexType name="How">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="Description" type="Description"/>
      <xs:element name="Reference" type="Reference"/>
    </xs:choice>

  </xs:complexType>

  <xs:complexType name="Inference">
    <xs:all>
      <xs:element minOccurs="0" name="Name" type="xs:string"/>
      <xs:element minOccurs="0" name="Concept" type="xs:string"/>
      <xs:element minOccurs="0" name="Description" type="Description"/>
      <xs:element minOccurs="0" name="Reference" type="Reference"/>
    </xs:all>

    <xs:attribute name="probability" type="xs:float"/>
    <xs:attribute name="relation" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="ISOTime">
    <xs:simpleContent>
      <xs:extension base="xs:dateTime">
        <xs:attributeGroup ref="STCReference"/>
      </xs:extension>

    </xs:simpleContent>

  </xs:complexType>

  <xs:complexType name="IVORN">
    <xs:simpleContent>
      <xs:extension base="xs:anyURI">
        <xs:attribute name="cite" type="citeTypes" use="optional"/>
      </xs:extension>

    </xs:simpleContent>

  </xs:complexType>

  <xs:complexType name="JDTime">
    <xs:simpleContent>
      <xs:extension base="xs:double">
        <xs:attributeGroup ref="STCReference"/>
      </xs:extension>

    </xs:simpleContent>

  </xs:complexType>

  <xs:complexType name="Location">
    <xs:sequence>
      <xs:element minOccurs="0" name="AstroCoordSystem" type="CoordinateSystem"/>
      <xs:element minOccurs="0" name="AstroCoords" type="Coordinates"/>
    </xs:sequence>

    <xs:attributeGroup ref="STCReference"/>
  </xs:complexType>

  <xs:complexType name="MJDTime">
    <xs:simpleContent>
      <xs:extension base="xs:double">
        <xs:attributeGroup ref="STCReference"/>
      </xs:extension>

    </xs:simpleContent>

  </xs:complexType>

  <xs:complexType name="ObsDataLocation">
    <xs:sequence>
      <xs:element name="ObservatoryLocation" type="Location"/>
      <xs:element name="ObservationLocation" type="Location"/>
    </xs:sequence>

    <xs:attributeGroup ref="STCReference"/>
  </xs:complexType>
<!-- The empty sequence here is NOT in the original schema -->
  <xs:complexType name="Param">
    <xs:sequence/>
    <xs:attribute name="name" type="xs:token" use="optional"/>
    <xs:attribute name="ucd" type="xs:token" use="optional"/>
    <xs:attribute name="value" type="xs:string" use="optional"/>
    <xs:attribute name="unit" type="unitType" use="optional"/>
    <xs:attribute name="url" type="xs:anyURI" use="optional">
      <xs:annotation>
        <xs:documentation>For swift botch, not part of spec</xs:documentation>
      </xs:annotation>

    </xs:attribute>

  </xs:complexType>

  <xs:complexType name="Position2D">
    <xs:sequence>
      <xs:element minOccurs="0" name="Name1" type="xs:string"/>
      <xs:element minOccurs="0" name="Name2" type="xs:string"/>
      <xs:element name="Value2" type="Value2"/>
      <xs:element minOccurs="0" name="Error2Radius" type="Double1"/>
    </xs:sequence>

    <xs:attributeGroup ref="STCReference"/>
    <xs:attribute name="coord_system_id" type="xs:string" use="optional"/>
    <xs:attribute name="frame_id" type="xs:IDREF"/>
    <xs:attribute name="unit" type="posUnitTypes"/>
  </xs:complexType>

  <xs:complexType name="Position3D">
    <xs:sequence>
      <xs:element minOccurs="0" name="Name1" type="xs:string"/>
      <xs:element minOccurs="0" name="Name2" type="xs:string"/>
      <xs:element minOccurs="0" name="Name3" type="xs:string"/>
      <xs:element name="Value3" type="Value3"/>
      <xs:element minOccurs="0" name="Error3Radius" type="Double1"/>
    </xs:sequence>

    <xs:attributeGroup ref="STCReference"/>
    <xs:attribute name="coord_system_id" type="xs:string" use="optional"/>
    <xs:attribute name="frame_id" type="xs:IDREF"/>
    <xs:attribute name="unit" type="posUnitTypes"/>
  </xs:complexType>
<!-- The empty sequence is in the real schema, it closes this to content -->
  <xs:complexType name="Reference">
    <xs:sequence/>
    <xs:attribute name="uri" type="xs:anyURI" use="required"/>
    <xs:attribute name="name" type="xs:string"/>
    <xs:attribute default="url" name="type" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="Time">
    <xs:sequence>
      <xs:element name="TimeInstant" type="TimeInstant"/>
      <xs:element minOccurs="0" maxOccurs="2" name="Error" type="Double1"/>
      <xs:element minOccurs="0" name="Name" type="xs:string"/>
      <xs:element minOccurs="0" maxOccurs="2" name="Resolution" type="Double1"/>
      <xs:element minOccurs="0" maxOccurs="2" name="Size" type="Double1"/>
    </xs:sequence>

    <xs:attributeGroup ref="STCReference"/>
    <xs:attribute name="coord_system_id" type="xs:string" use="optional"/>
    <xs:attribute name="frame_id" type="xs:IDREF"/>
    <xs:attribute name="unit" type="timeUnitTypes"/>
  </xs:complexType>

  <xs:complexType name="TimeInstant">
    <xs:all>
      <xs:element minOccurs="0" name="ISOTime" type="ISOTime"/>
      <xs:element minOccurs="0" name="JDTime" type="JDTime"/>
      <xs:element minOccurs="0" name="MJDTime" type="MJDTime"/>
    </xs:all>

  </xs:complexType>

  <xs:complexType name="Value2">
    <xs:sequence>
      <xs:element name="C1" type="Double1"/>
      <xs:element name="C2" type="Double1"/>
    </xs:sequence>

    <xs:attributeGroup ref="STCReference"/>
    <xs:attribute name="unit" type="posUnitTypes" use="optional"/>
    <xs:attribute name="vel_time_unit" type="velTimeUnitTypes"/>
    <xs:attribute name="gen_unit" type="unitType"/>
  </xs:complexType>

  <xs:complexType name="Value3">
    <xs:sequence>
      <xs:element name="C1" type="Double1"/>
      <xs:element name="C2" type="Double1"/>
      <xs:element name="C3" type="Double1"/>
    </xs:sequence>

    <xs:attributeGroup ref="STCReference"/>
    <xs:attribute name="unit" type="posUnitTypes" use="optional"/>
    <xs:attribute name="vel_time_unit" type="velTimeUnitTypes"/>
    <xs:attribute name="gen_unit" type="unitType"/>
  </xs:complexType>

  <xs:complexType name="What">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element minOccurs="0" name="Param" type="Param"/>
      <xs:element minOccurs="0" name="Group" type="Group"/>
      <xs:element minOccurs="0" name="Description" type="Description"/>
      <xs:element minOccurs="0" name="Reference" type="Reference"/>
    </xs:choice>

  </xs:complexType>

  <xs:complexType name="WhereWhen">
    <xs:all>
      <xs:element name="ObsDataLocation" type="ObsDataLocation"/>
      <xs:element minOccurs="0" name="Description" type="Description"/>
      <xs:element minOccurs="0" name="Reference" type="Reference"/>
    </xs:all>

  </xs:complexType>

  <xs:complexType name="Who">
    <xs:all>
      <xs:element minOccurs="0" name="AuthorIVORN" type="IVORN"/>
      <xs:element minOccurs="0" name="Date" type="xs:dateTime"/>
      <xs:element minOccurs="0" name="Description" type="Description"/>
      <xs:element minOccurs="0" name="Author" type="Author"/>
      <xs:element minOccurs="0" name="Reference" type="Reference"/>
    </xs:all>

  </xs:complexType>

  <xs:complexType name="Why">
    <xs:sequence>
      <xs:element minOccurs="0" name="Name" type="xs:string"/>
      <xs:element minOccurs="0" name="Concept" type="xs:string"/>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Inference" type="Inference"/>
      <xs:element minOccurs="0" name="Description" type="Description"/>
      <xs:element minOccurs="0" name="Reference" type="Reference"/>
    </xs:sequence>

    <xs:attribute name="importance" type="xs:float"/>
    <xs:attribute name="expires" type="xs:dateTime"/>
  </xs:complexType>

  <xs:attributeGroup name="STCReference">
    <xs:attribute name="id" type="xs:ID" use="optional"/>
    <xs:attribute name="idref" type="xs:IDREF" use="optional"/>
    <xs:attribute name="ucd" type="xs:string" use="optional"/>
    <xs:attribute default="simple" ref="xlink:type" use="optional"/>
    <xs:attribute ref="xlink:href" use="optional"/>
    <xs:attribute name="ID_type" type="xs:string" use="optional"/>
    <xs:attribute name="IDREF_type" type="xs:string" use="optional"/>
  </xs:attributeGroup>

  <xs:simpleType name="angleUnitTypes">
    <xs:restriction base="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="citeTypes">
    <xs:restriction base="xs:string">
      <xs:enumeration value="followup"/>
      <xs:enumeration value="supersedes"/>
      <xs:enumeration value="retraction"/>
    </xs:restriction>

  </xs:simpleType>

  <xs:complexType name="posAngleTypes">
    <xs:simpleContent>
      <xs:extension base="xs:double">
        <xs:attribute default="deg" name="unit" type="angleUnitTypes"/>
        <xs:attribute default="X" name="reference" type="posAngleReferenceTypes"/>
      </xs:extension>

    </xs:simpleContent>

  </xs:complexType>

  <xs:simpleType name="posAngleReferenceTypes">
    <xs:restriction base="xs:string">
      <xs:enumeration value="North"/>
      <xs:enumeration value="X"/>
      <xs:enumeration value="Y"/>
    </xs:restriction>

  </xs:simpleType>

  <xs:simpleType name="posUnitTypes">
    <xs:restriction base="unitType">
      <xs:enumeration value="deg"/>
      <xs:enumeration value="deg deg m"/>
      <xs:enumeration value="deg deg Mpc"/>
      <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="roleTypes">
    <xs:restriction base="xs:string">
      <xs:enumeration value="observation"/>
      <xs:enumeration value="test"/>
      <xs:enumeration value="utility"/>
      <xs:enumeration value="retraction"/>
    </xs:restriction>

  </xs:simpleType>

  <xs:simpleType name="timeScaleTypes">
    <xs:restriction base="xs:string">
      <xs:enumeration value="TT"/>
      <xs:enumeration value="TDT"/>
      <xs:enumeration value="ET"/>
      <xs:enumeration value="TDB"/>
      <xs:enumeration value="TEB"/>
      <xs:enumeration value="TCG"/>
      <xs:enumeration value="TCB"/>
      <xs:enumeration value="TAI"/>
      <xs:enumeration value="IAT"/>
      <xs:enumeration value="UTC"/>
      <xs:enumeration value="GPS"/>
      <xs:enumeration value="LST"/>
      <xs:enumeration value="GMST"/>
      <xs:enumeration value="LOCAL"/>
    </xs:restriction>

  </xs:simpleType>

  <xs:simpleType name="timeUnitTypes">
    <xs:restriction base="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="unitType">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>

  <xs:simpleType name="velTimeUnitTypes">
    <xs:restriction base="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="astroCoordSystemTypes">
    <xs:restriction base="xs:string">
      <xs:enumeration value="TT-ICRS-TOPO"/>
      <xs:enumeration value="UTC-ICRS-TOPO"/>
      <xs:enumeration value="TT-FK5-TOPO"/>
      <xs:enumeration value="UTC-FK5-TOPO"/>
      <xs:enumeration value="TT-ICRS-GEO"/>
      <xs:enumeration value="UTC-ICRS-GEO"/>
      <xs:enumeration value="TT-FK5-GEO"/>
      <xs:enumeration value="UTC-FK5-GEO"/>
      <xs:enumeration value="TDB-ICRS-BARY"/>
      <xs:enumeration value="TDB-FK5-BARY"/>
      <xs:enumeration value="UTC-GEOD-TOPO"/>
    </xs:restriction>

  </xs:simpleType>

</xs:schema>