<!--
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 -->

<!ELEMENT keyboardTest3 ( info, repertoire*, tests*, special* ) >
    <!--@TECHPREVIEW-->
<!ATTLIST keyboardTest3 conformsTo (techpreview) #REQUIRED >
    <!--@MATCH:any-->
    <!--@METADATA-->

<!ELEMENT info EMPTY >
    <!--@TECHPREVIEW-->
<!ATTLIST info keyboard CDATA #REQUIRED >
    <!--@MATCH:any-->
    <!--@VALUE-->
<!ATTLIST info author CDATA #IMPLIED >
    <!--@MATCH:any-->
    <!--@METADATA-->
<!ATTLIST info name NMTOKEN #REQUIRED >
    <!--@MATCH:regex/[A-Za-z0-9][A-Za-z0-9-]*-->

<!ELEMENT repertoire EMPTY >
    <!--@TECHPREVIEW-->
<!ATTLIST repertoire chars CDATA #REQUIRED >
    <!--@MATCH:any-->
    <!--@VALUE-->
<!ATTLIST repertoire type (default | simple | gesture | flick | longPress | multiTap | hardware) #IMPLIED >
    <!--@VALUE-->
<!ATTLIST repertoire name NMTOKEN #REQUIRED >
    <!--@MATCH:regex/[A-Za-z0-9][A-Za-z0-9-]*-->

<!ELEMENT tests ( test+, special* ) >
    <!--@TECHPREVIEW-->
<!ATTLIST tests name NMTOKEN #REQUIRED >
    <!--@MATCH:regex/[A-Za-z0-9][A-Za-z0-9-]*-->

<!ELEMENT test ( startContext?, ( keystroke | emit | backspace | check )*, special* ) >
    <!--@TECHPREVIEW-->
<!ATTLIST test name NMTOKEN #REQUIRED >
    <!--@MATCH:regex/[A-Za-z0-9][A-Za-z0-9-]*-->

<!ELEMENT startContext EMPTY >
    <!--@TECHPREVIEW-->
<!ATTLIST startContext to CDATA #REQUIRED >
    <!--@MATCH:any-->
    <!--@VALUE-->
    <!--@ALLOWS_UESC-->

<!ELEMENT keystroke EMPTY >
    <!--@ORDERED-->
    <!--@TECHPREVIEW-->
<!ATTLIST keystroke key NMTOKEN #REQUIRED >
    <!--@MATCH:any-->
    <!--@VALUE-->
<!ATTLIST keystroke flick NMTOKENS #IMPLIED >
    <!--@MATCH:any-->
    <!--@VALUE-->
<!ATTLIST keystroke longPress CDATA #IMPLIED >
    <!--@MATCH:range/1~999-->
    <!--@VALUE-->
<!ATTLIST keystroke tapCount CDATA #IMPLIED >
    <!--@MATCH:range/2~999-->
    <!--@VALUE-->

<!ELEMENT emit EMPTY >
    <!--@ORDERED-->
    <!--@TECHPREVIEW-->
<!ATTLIST emit to CDATA #REQUIRED >
    <!--@MATCH:any-->
    <!--@VALUE-->
    <!--@ALLOWS_UESC-->

<!ELEMENT backspace EMPTY >
    <!--@ORDERED-->
    <!--@TECHPREVIEW-->

<!ELEMENT check EMPTY >
    <!--@ORDERED-->
    <!--@TECHPREVIEW-->
<!ATTLIST check result CDATA #REQUIRED >
    <!--@MATCH:any-->
    <!--@VALUE-->
    <!--@ALLOWS_UESC-->

<!ELEMENT special ANY >
    <!--@TECHPREVIEW-->
