<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="http://www.w3.org/2001/vxml" 
xmlns="http://www.w3.org/2001/vxml" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
elementFormDefault="qualified" version="1.0">
    <xsd:annotation>
        <xsd:documentation>VoiceXML 2.0 datatypes (20021115)</xsd:documentation>
    </xsd:annotation>
    <xsd:annotation>
        <xsd:documentation>
Copyright 1998-2002 W3C (MIT, INRIA, Keio), All Rights Reserved. Permission to
use, copy, modify and distribute the VoiceXML schema and its accompanying
documentation for any purpose and without fee is hereby granted in perpetuity,
provided that the above copyright notice and this paragraph appear in all
copies.  The copyright holders make no representation about the suitability of
the schema for any purpose. It is provided "as is" without expressed or
implied warranty.
</xsd:documentation>
    </xsd:annotation>
    <xsd:annotation>
        <xsd:documentation>
	XML Schema datatypes module for VoiceXML 2.0
	</xsd:documentation>
    </xsd:annotation>
    <xsd:annotation>
        <xsd:documentation>General Datatypes</xsd:documentation>
    </xsd:annotation>
    <xsd:simpleType name="Boolean.datatype">
        <xsd:annotation>
            <xsd:documentation>Boolean: true or false only</xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:NMTOKENS">
            <xsd:enumeration value="true"/>
            <xsd:enumeration value="false"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="URI.datatype">
        <xsd:annotation>
            <xsd:documentation>URI (RFC2396)</xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:anyURI"/>
    </xsd:simpleType>
    <xsd:simpleType name="Script.datatype">
        <xsd:annotation>
            <xsd:documentation>Script Expression (ECMA-262 ECMAScript)</xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:string"/>
    </xsd:simpleType>
    <xsd:simpleType name="Integer.datatype">
        <xsd:annotation>
            <xsd:documentation>Non-negative integer</xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:nonNegativeInteger"/>
    </xsd:simpleType>
    <xsd:simpleType name="Duration.datatype">
        <xsd:annotation>
            <xsd:documentation>Time designation following Time [CSS2]; negative numbers not allowed (6.5)</xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:string">
            <xsd:pattern value="(\+)?([0-9]*\.)?[0-9]+(ms|s)"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="ContentType.datatype">
        <xsd:annotation>
            <xsd:documentation>Content type [RFC2045]</xsd:documentation>
        </xsd:annotation>
        <xsd:list itemType="xsd:string"/>
    </xsd:simpleType>
    <xsd:annotation>
        <xsd:documentation>VoiceXML specific datatypes</xsd:documentation>
    </xsd:annotation>

    <xsd:simpleType name="RestrictedVariableName.datatype">
        <xsd:annotation>
            <xsd:documentation>Variable name which are NMTOKEN. Additional
        constraints: doesn't start with "_", doesn't contain "." , must 
follow ECMAScript variable naming conventions; not include ECMAScript 
reserve words</xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:NMTOKEN">
	<!--	<xsd:pattern value="[\c]+"/>
	<xsd:pattern value="[^_][\c]+"/> -->
	</xsd:restriction>
    </xsd:simpleType>


    <xsd:simpleType name="VariableName.datatype">
        <xsd:annotation>
            <xsd:documentation>Variable name which are model on NMTOKENS
        except that "$" is permitted. Additional constraints: must 
follow ECMAScript variable naming conventions; not include ECMAScript 
reserve words</xsd:documentation>
        </xsd:annotation>
	<xsd:restriction base="xsd:token">
	<xsd:pattern value="['$'\c]+"/>
	</xsd:restriction>
    </xsd:simpleType>



    <xsd:simpleType name="RestrictedVariableNames.datatype">
        <xsd:annotation>
            <xsd:documentation>space separated list of restricted variable names </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:NMTOKENS">
	</xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="VariableNames.datatype">
        <xsd:annotation>
            <xsd:documentation>space separated list of variable names including shadow variables</xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:string">
	<xsd:pattern value="['$'\c]+([\s]+['$'\c]+)*"/>
	</xsd:restriction>
    </xsd:simpleType>


    <xsd:simpleType name="DTMFSequence.datatype">
        <xsd:annotation>
            <xsd:documentation>DTMF sequence ([0-9#*] with spaces)</xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:string">
            <xsd:pattern value="([\s]*[0-9#*]+[\s]*)+"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="EventName.datatype">
        <xsd:annotation>
            <xsd:documentation>EventName (5.2)</xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:NMTOKEN"/>
    </xsd:simpleType>
    <xsd:simpleType name="EventNames.datatype">
        <xsd:annotation>
            <xsd:documentation>space separated list of EventName.datatype</xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:NMTOKENS"/>
    </xsd:simpleType>
    <xsd:simpleType name="Bargeintype.datatype">
        <xsd:annotation>
            <xsd:documentation>bargeintype: speech or hotword (4.1.5)</xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:NMTOKEN">
            <xsd:enumeration value="speech"/>
            <xsd:enumeration value="hotword"/>
        </xsd:restriction>
    </xsd:simpleType>


<xsd:simpleType name="Fetchhint.datatype">
 <xsd:annotation>
  <xsd:documentation>prefetch or safe</xsd:documentation>
 </xsd:annotation>
  <xsd:restriction base="xsd:NMTOKEN">
      <xsd:enumeration value="prefetch"/>
      <xsd:enumeration value="safe"/>
 </xsd:restriction>
</xsd:simpleType>


<xsd:simpleType name="Accept.datatype">
 <xsd:annotation>
  <xsd:documentation>exact or approximate</xsd:documentation>
 </xsd:annotation>
 <xsd:restriction base="xsd:NMTOKEN">
       <xsd:enumeration value="exact"/>
       <xsd:enumeration value="approximate"/>
 </xsd:restriction>
</xsd:simpleType>


<xsd:simpleType name="GrammarScope.datatype">
 <xsd:annotation>
  <xsd:documentation>dialog or document</xsd:documentation>
 </xsd:annotation>
   <xsd:restriction base="xsd:NMTOKEN">
       <xsd:enumeration value="document"/>
       <xsd:enumeration value="dialog"/>
   </xsd:restriction>
</xsd:simpleType>

     <xsd:simpleType name="Method.datatype">
 <xsd:annotation>
  <xsd:documentation>get or post</xsd:documentation>
 </xsd:annotation>
                <xsd:restriction base="xsd:NMTOKEN">
                    <xsd:enumeration value="get"/>
                    <xsd:enumeration value="post"/>
                </xsd:restriction>
            </xsd:simpleType>


  <xsd:simpleType name="FilledMode.datatype">
 <xsd:annotation>
  <xsd:documentation>any or all</xsd:documentation>
 </xsd:annotation>
       <xsd:restriction base="xsd:string">
                      <xsd:enumeration value="any"/>
                       <xsd:enumeration value="all"/>
                   </xsd:restriction>
               </xsd:simpleType>


<xsd:simpleType name="Valuetype.datatype">
 <xsd:annotation>
  <xsd:documentation>data or ref</xsd:documentation>
 </xsd:annotation>
<xsd:restriction base="xsd:string">
    <xsd:enumeration value="data"/>
     <xsd:enumeration value="ref"/>
         </xsd:restriction>
 </xsd:simpleType>

</xsd:schema>
