<?xml version="1.0" encoding="UTF-8"?>
<xs:schema 
	xmlns:d='http://www-clips.imag.fr/geta/services/dml'
	xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

  <!-- 
 XML Schema for FeM dictionary.
 
 Namespace = http://www-clips.imag.fr/geta/services/dml/thaidict.xsd

 This schema is identified by the location:
 http://www-clips.imag.fr/geta/services/dml/fem.xsd             
  -->
<xs:annotation>
  <xs:documentation xml:lang="en">
 XML Schema for FeM dictionary.
 
 Namespace = http://www-clips.imag.fr/geta/services/dml/fem.xsd

 This schema is identified by the location:
 http://www-clips.imag.fr/geta/services/dml/fem.xsd             
  </xs:documentation> 
</xs:annotation>

 <xs:import 
  namespace='http://www-clips.imag.fr/geta/services/dml' 
  schemaLocation='http://www-clips.imag.fr/geta/services/dml/dml.xsd' />

  <!-- volume contains a list of entry elements -->
  <xs:element name="Dictionary">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Word" minOccurs="1" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="name" type="xs:string" use="optional"/>
      <xs:attribute name="source-language" type="d:lang" use="optional"/>
      <xs:attribute name="target-languages" type="d:lang" use="optional"/>
    </xs:complexType>
  </xs:element>
  
  <!-- Entry element -->
  <xs:element name="WORD">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="POS" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Semantic" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="RelationSet" minOccurs="1" maxOccurs="1"/>
      </xs:sequence>
      <xs:attribute name="id" type="xs:string" use="required"/>
  <!-- headword element -->
      <xs:attribute name="value" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>
  
  <!-- POS element -->
  <xs:element name="POS">
    <xs:complexType>
      <xs:attribute name="value" type="posType" use="required"/>
    </xs:complexType>
  </xs:element>

  <!-- Semantic element -->
  <xs:element name="Semantic">
    <xs:complexType>
      <xs:attribute name="value" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>
  
  <!-- RelationSet element -->
  <xs:element name="RelationSet">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Relation" minOccurs="1" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
 
  <!-- Relation element -->
  <xs:element name="Relation">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Value" minOccurs="1" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="name" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>
  
  <!-- Value element -->
  <xs:element name="Value">
    <xs:complexType mixed="true">
      <xs:attribute name="attribute" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>
    
<!-- posType type -->
<!-- Here are defined the parts-of-speech of the Thai language -->
 <simpleType name='posType'>
  <restriction base='xs:string'>
<!-- Common Noun (name invariable)  -->
        <enumeration value="cn"/>
<!-- title -->
        <enumeration value="tit"/>
<!-- Collective Noun (name plural)  -->
        <enumeration value="ctn"/>
<!-- Proper Name  -->
        <enumeration value="pn"/>
<!-- Question Noun -->
        <enumeration value="ques"/>
<!-- Cardinal Number (name )  -->
        <enumeration value="num1"/>
<!-- Ordinal Number (name )  -->
        <enumeration value="num2"/>
<!-- Ordinal Number maker -->
        <enumeration value="rm"/>
<!--  Nominalized Prefix (used for nominalization) -->
        <enumeration value="np"/>
<!--  Occupation Prefix (used with verb) -->
        <enumeration value="npv"/>
<!--  Nominalized Prefix (used with noun) -->
        <enumeration value="npn"/>
<!-- intransitive verb -->
        <enumeration value="iv"/>
<!-- intransitive verb -modifier- -->
        <enumeration value="ivmod" />
<!-- intransitive verb attribute -->
        <enumeration value="ivatt"/>
<!-- intransitive verb adverb -->
        <enumeration value="ivadv"/>
<!-- transitive verb -->
        <enumeration value="tv"/>
<!-- transitive verb -modifier- -->
        <enumeration value="tvmod"/>
<!-- transitive verb attribute -->
        <enumeration value="tvatt"/>
<!-- transitive verb adverb -->
        <enumeration value="tvadv"/>
<!-- causative verb -->
        <enumeration value="cauv"/>
<!-- complementary verb -->
        <enumeration value="cv"/>
<!-- Existential verb -->
        <enumeration value="exv"/>
<!-- Negative verb -->
        <enumeration value="neg"/>
<!-- Post verb -->
        <enumeration value="postv"/>
<!-- Pre verb -->
        <enumeration value="prev"/>
<!-- Modifier -->
        <enumeration value="mod"/>
<!-- adverb-->
        <enumeration value="adv"/>
<!-- attribute-->
        <enumeration value="att"/>
<!-- determinant-->
        <enumeration value="det"/>
<!-- honoric marker-->
        <enumeration value="honm"/>
<!--  In determiner-->
        <enumeration value="indet"/>
<!-- particle-->
        <enumeration value="particle"/>
<!-- adverb marker1 (advm + v) -->
        <enumeration value="advm1"/>
<!-- adverb marker2 (advm + n)-->
        <enumeration value="advm2"/>
<!-- adverb marker3 (advm + v) -->
        <enumeration value="advm3"/>
<!-- adverb marker4 (advm + num,mod) -->
        <enumeration value="advm4"/>
<!-- attribute conjonction -->
        <enumeration value="attconj"/>
<!-- conjonction -->
        <enumeration value="conj"/>
<!-- Noun Clause Conjonction it occurs with words with the meaning of communication -->
        <enumeration value="nclconj1"/>
<!-- Noun Clause Conjonction it occurs with sentence-->
        <enumeration value="nclconj2"/>
<!-- interjection -->
        <enumeration value="intj"/>
<!-- preposition -->
        <enumeration value="prep"/>
<!-- verbe pronominal (pronominal verb) -->
        <enumeration value="vpr"/>
<!-- Common pronom -->
        <enumeration value="cp"/>
<!-- Relative pronom -->
        <enumeration value="rp"/>
<!-- Definite pronom -->
        <enumeration value="dp"/>
 </restriction>
</simpleType>

</xs:schema>

