THE KANJIDIC2 XSD


<schema
  xmlns='http://www.w3.org/2000/10/XMLSchema'
  targetNamespace='http://www.w3.org/namespace/'
  xmlns:t='http://www.w3.org/namespace/'>

 <element name='kanjidic2'>
  <complexType>
   <sequence>
    <element ref='t:header'/>
    <element ref='t:character' minOccurs='0' maxOccurs='unbounded'/>
   </sequence>
  </complexType>
 </element>

 <element name='header'>
  <complexType>
   <sequence>
    <element ref='t:file_version'/>
    <element ref='t:database_version'/>
    <element ref='t:date_of_creation'/>
   </sequence>
  </complexType>
 </element>

 <element name='file_version'>
  <complexType mixed='true'>
  </complexType>
 </element>

 <element name='database_version'>
  <complexType mixed='true'>
  </complexType>
 </element>

 <element name='date_of_creation'>
  <complexType mixed='true'>
  </complexType>
 </element>

 <element name='character'>
  <complexType>
   <sequence minOccurs='0' maxOccurs='unbounded'>
    <element ref='t:literal'/>
    <element ref='t:codepoint'/>
    <element ref='t:radical'/>
    <element ref='t:misc'/>
    <element ref='t:dic_number' minOccurs='0' maxOccurs='1'/>
    <element ref='t:query_code' minOccurs='0' maxOccurs='1'/>
    <element ref='t:reading_meaning' minOccurs='0' maxOccurs='1'/>
    <element ref='t:nanori' minOccurs='0' maxOccurs='1'/>
   </sequence>
  </complexType>
 </element>

 <element name='literal'>
  <complexType mixed='true'>
  </complexType>
 </element>

 <element name='codepoint'>
  <complexType>
   <sequence>
    <element ref='t:cp_value' maxOccurs='unbounded'/>
   </sequence>
  </complexType>
 </element>

 <element name='cp_value'>
  <complexType mixed='true'>
   <attribute name='cp_type' type='string' use='required'/>
  </complexType>
 </element>

 <element name='radical'>
  <complexType>
   <sequence>
    <element ref='t:rad_value' maxOccurs='unbounded'/>
   </sequence>
  </complexType>
 </element>

 <element name='rad_value'>
  <complexType mixed='true'>
   <attribute name='rad_type' type='string' use='required'/>
  </complexType>
 </element>

 <element name='misc'>
  <complexType>
   <sequence>
    <element ref='t:grade' minOccurs='0' maxOccurs='1'/>
    <element ref='t:stroke_count' maxOccurs='unbounded'/>
    <element ref='t:variant' minOccurs='0' maxOccurs='unbounded'/>
    <element ref='t:freq' minOccurs='0' maxOccurs='unbounded'/>
    <element ref='t:rad_name' minOccurs='0' maxOccurs='unbounded'/>
   </sequence>
  </complexType>
 </element>

 <element name='grade'>
  <complexType mixed='true'>
  </complexType>
 </element>

 <element name='stroke_count'>
  <complexType mixed='true'>
  </complexType>
 </element>

 <element name='variant'>
  <complexType mixed='true'>
   <attribute name='var_type' type='string' use='required'/>
  </complexType>
 </element>

 <element name='freq'>
  <complexType mixed='true'>
  </complexType>
 </element>

 <element name='rad_name'>
  <complexType mixed='true'>
  </complexType>
 </element>

 <element name='dic_number'>
  <complexType>
   <sequence>
    <element ref='t:dic_ref' maxOccurs='unbounded'/>
   </sequence>
  </complexType>
 </element>

 <element name='dic_ref'>
  <complexType mixed='true'>
   <attribute name='m_page' type='string' use='optional'/>
  </complexType>
 </element>

 <element name='query_code'>
  <complexType>
   <sequence>
    <element ref='t:q_code' maxOccurs='unbounded'/>
   </sequence>
  </complexType>
 </element>

 <element name='q_code'>
  <complexType mixed='true'>
   <attribute name='qc_type' type='string' use='required'/>
  </complexType>
 </element>

 <element name='reading_meaning'>
  <complexType>
   <sequence>
    <element ref='t:rmgroup' minOccurs='0' maxOccurs='unbounded'/>
    <element ref='t:nanori' minOccurs='0' maxOccurs='unbounded'/>
   </sequence>
  </complexType>
 </element>

 <element name='nanori'>
  <complexType mixed='true'>
  </complexType>
 </element>

 <element name='rmgroup'>
  <complexType>
   <sequence>
    <element ref='t:reading' minOccurs='0' maxOccurs='unbounded'/>
    <element ref='t:meaning' minOccurs='0' maxOccurs='unbounded'/>
   </sequence>
  </complexType>
 </element>

 <element name='reading'>
  <complexType mixed='true'>
   <attribute name='r_status' type='string' use='optional'/>
  </complexType>
 </element>

 <element name='meaning'>
  <complexType mixed='true'>
   <attribute name='m_lang' type='string' use='optional'/>
  </complexType>
 </element>
</schema>