1 <xs:schema 
   2     xmlns:xs="http://www.w3.org/2001/XMLSchema"
   3     targetNamespace="http://www.astro.com/astro" 
   4     xmlns:astro="http://www.astro.com/astro"
   5     elementFormDefault="qualified"
   6     attributeFormDefault="qualified"
   7 >
   8     <!-- Star Identification String Type  -->
   9     <xs:simpleType name="staridType">
  10         <xs:restriction base="xs:string">
  11             <xs:maxLength value="4"/>
  12         </xs:restriction>
  13     </xs:simpleType>
  14 
  15     <!-- Hour Type -->
  16     <xs:simpleType name="hourType">
  17         <xs:restriction base="xs:decimal">
  18             <xs:minInclusive value="0.0"/>
  19             <xs:maxInclusive value="24.0"/>
  20         </xs:restriction>
  21     </xs:simpleType>
  22 
  23     <!-- Minute Type -->
  24     <xs:simpleType name="minuteType">
  25         <xs:restriction base="xs:decimal">
  26             <xs:minInclusive value="0.0"/>
  27             <xs:maxInclusive value="60.0"/>
  28         </xs:restriction>
  29     </xs:simpleType>
  30 
  31     <!-- Second Type -->
  32     <xs:simpleType name="secondType">
  33         <xs:restriction base="xs:decimal">
  34             <xs:minInclusive value="0.0"/>
  35             <xs:maxInclusive value="60.0"/>
  36         </xs:restriction>
  37     </xs:simpleType>
  38 
  39     <xs:simpleType name="decimalValueType">
  40         <xs:restriction base="xs:decimal">
  41         </xs:restriction>
  42     </xs:simpleType> 
  43 
  44     <xs:simpleType name="degType">
  45         <xs:restriction base="xs:decimal">
  46             <xs:minInclusive value="-90.0"/>
  47             <xs:maxInclusive value="90.0"/>
  48         </xs:restriction>
  49     </xs:simpleType> 
  50 
  51     <xs:simpleType name="vmagType">
  52         <xs:restriction base="xs:decimal">
  53             <xs:minInclusive value="-3.0"/>
  54             <xs:maxInclusive value="12.0"/>
  55         </xs:restriction>
  56     </xs:simpleType> 
  57 
  58 
  59     <xs:simpleType name="signType">
  60         <xs:restriction base="xs:string">
  61             <xs:enumeration value="+"/>
  62             <xs:enumeration value="-"/>
  63             <xs:enumeration value=""/>
  64         </xs:restriction>
  65     </xs:simpleType> 
  66 
  67     <xs:complexType name="raType">
  68         <xs:sequence>
  69             <xs:element name="h"  type="astro:hourType"/>
  70             <xs:element name="m"  type="astro:minuteType"/>
  71             <xs:element name="s"  type="astro:secondType"/>
  72             <xs:element name="dv" type="astro:decimalValueType"/>
  73         </xs:sequence>
  74     </xs:complexType>
  75 
  76     <xs:complexType name="decType">
  77         <xs:sequence>
  78             <xs:element name="sgn" type="astro:signType"/>
  79             <xs:element name="d"   type="astro:degType"/>
  80             <xs:element name="m"   type="astro:minuteType"/>
  81             <xs:element name="s"   type="astro:secondType"/>
  82             <xs:element name="dv"  type="astro:decimalValueType"/>
  83         </xs:sequence>
  84     </xs:complexType>
  85 
  86 
  87     <xs:complexType name="starType">
  88         <xs:sequence>
  89             <xs:element name="hr"            type="astro:staridType"/>
  90             <xs:element name="constellation" type="xs:string"/>
  91             <xs:element name="fullname"      type="xs:string"/>
  92             <xs:element name="ra"            type="astro:raType"/>
  93             <xs:element name="dec"           type="astro:decType"/>
  94             <xs:element name="glng"          type="xs:decimal"/>
  95             <xs:element name="glat"          type="xs:decimal"/>
  96             <xs:element name="vmag"          type="astro:vmagType"/>
  97             <xs:element name="spec"          type="xs:string"/>
  98         </xs:sequence>
  99     </xs:complexType>
 100 
 101 
 102     <!-- The real part of the catalog starts here -->
 103     <xs:element name="stardb">
 104        <xs:complexType>
 105           <xs:sequence>
 106 
 107              <!-- for testing purposes -->
 108              <xs:element name="_test01" type="xs:string"
 109                 minOccurs="0" maxOccurs="1"/>
 110              <xs:element name="test-02" type="xs:string"/>
 111              <xs:element name="test.03" type="xs:string"/>
 112              <xs:element name="_test-04" type="xs:string"/>
 113 
 114              <!-- astro data elements -->
 115              <xs:element name="star" type="astro:starType"
 116                 minOccurs="0" maxOccurs="unbounded"/>
 117           </xs:sequence>
 118        </xs:complexType>
 119     </xs:element>
 120     <!-- The real part of the catalog ends here -->
 121 
 122 </xs:schema>