<?xml version="1.0" encoding="UTF-8" ?>
<!--
Note: The .xsd files are a Technology Preview. They are subject to change or removal in future CLDR versions.
Note: DTD @-annotations are not currently converted to .xsd. For full CLDR file validation, use the DTD and CLDR tools.
-->

<!--
  Copyright © 1991-2024 Unicode, Inc.
  For terms of use, see http://www.unicode.org/copyright.html
  SPDX-License-Identifier: Unicode-3.0
  CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
--><!--
  Important Note:
  
  This DTD describes a technical preview of Keyboard Test Data
--><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xs:element name="keyboardTest3">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="info"/>
        <xs:element maxOccurs="unbounded" minOccurs="0" ref="repertoire"/>
        <xs:element maxOccurs="unbounded" minOccurs="0" ref="tests"/>
        <xs:element maxOccurs="unbounded" minOccurs="0" ref="special"/>
      </xs:sequence>
      <xs:attribute name="conformsTo" use="required">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="techpreview"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  
  
  
  <xs:element name="info">
    <xs:complexType>
      <xs:attribute name="keyboard" use="required"/>
      <xs:attribute name="author"/>
      <xs:attribute name="name" type="xs:NMTOKEN" use="required"/>
    </xs:complexType>
  </xs:element>
  
  
  
  
  
  
  <xs:element name="repertoire">
    <xs:complexType>
      <xs:attribute name="chars" use="required"/>
      <xs:attribute name="type">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="default"/>
            <xs:enumeration value="simple"/>
            <xs:enumeration value="gesture"/>
            <xs:enumeration value="flick"/>
            <xs:enumeration value="longPress"/>
            <xs:enumeration value="multiTap"/>
            <xs:enumeration value="hardware"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="name" type="xs:NMTOKEN" use="required"/>
    </xs:complexType>
  </xs:element>
  
  
  
  
  
  <xs:element name="tests">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="test"/>
        <xs:element maxOccurs="unbounded" minOccurs="0" ref="special"/>
      </xs:sequence>
      <xs:attribute name="name" type="xs:NMTOKEN" use="required"/>
    </xs:complexType>
  </xs:element>
  
  
  <xs:element name="test">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="startContext"/>
        <xs:choice maxOccurs="unbounded" minOccurs="0">
          <xs:element ref="keystroke"/>
          <xs:element ref="emit"/>
          <xs:element ref="backspace"/>
          <xs:element ref="check"/>
        </xs:choice>
        <xs:element maxOccurs="unbounded" minOccurs="0" ref="special"/>
      </xs:sequence>
      <xs:attribute name="name" type="xs:NMTOKEN" use="required"/>
    </xs:complexType>
  </xs:element>
  
  
  <xs:element name="startContext">
    <xs:complexType>
      <xs:attribute name="to" use="required"/>
    </xs:complexType>
  </xs:element>
  
  
  
  
  <xs:element name="keystroke">
    <xs:complexType>
      <xs:attribute name="key" type="xs:NMTOKEN" use="required"/>
      <xs:attribute name="flick" type="xs:NMTOKENS"/>
      <xs:attribute name="longPress"/>
      <xs:attribute name="tapCount"/>
    </xs:complexType>
  </xs:element>
  
  
  
  
  
  
  
  
  
  
  <xs:element name="emit">
    <xs:complexType>
      <xs:attribute name="to" use="required"/>
    </xs:complexType>
  </xs:element>
  
  
  
  
  
  <xs:element name="backspace">
    <xs:complexType/>
  </xs:element>
  
  
  <xs:element name="check">
    <xs:complexType>
      <xs:attribute name="result" use="required"/>
    </xs:complexType>
  </xs:element>
  
  
  
  
  
  <xs:element name="special" type="any"/>
  <xs:complexType mixed="true" name="any">
    <xs:sequence>
      <xs:any maxOccurs="unbounded" minOccurs="0" processContents="strict"/>
    </xs:sequence>
  </xs:complexType>
</xs:schema>