<!--
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/)
-->
<!-- Note: This DTD is not compatible with prior versions of the keyboard data.
     See ldmlKeyboard.dtd  and CLDR v43 and prior. -->

<!ELEMENT keyboard3 ( import*, locales?, version?, info, settings?, displays?, keys?, flicks?, forms?, layers*, variables?, transforms*, special* ) >
<!ATTLIST keyboard3 locale CDATA #REQUIRED >
    <!--@MATCH:validity/bcp47-wellformed-->
<!ATTLIST keyboard3 conformsTo (45) #REQUIRED >
    <!--@MATCH:version-->
    <!--@METADATA-->
<!ATTLIST keyboard3 xmlns CDATA #IMPLIED >
    <!--@MATCH:any-->
    <!--@METADATA-->

<!ELEMENT import EMPTY >
<!ATTLIST import path CDATA #REQUIRED >
    <!--@MATCH:any-->
<!ATTLIST import base (cldr) #IMPLIED >

<!ELEMENT locales ( locale* ) >

<!ELEMENT locale EMPTY >
<!ATTLIST locale id CDATA #REQUIRED >
    <!--@MATCH:validity/bcp47-wellformed-->

<!ELEMENT version EMPTY >
<!ATTLIST version number CDATA #IMPLIED >
    <!--@MATCH:semver-->
    <!--@VALUE-->
<!ATTLIST version cldrVersion CDATA #FIXED "45" >
    <!--@MATCH:version-->
    <!--@METADATA-->

<!ELEMENT info EMPTY >
<!ATTLIST info name CDATA #REQUIRED >
    <!--@MATCH:any-->
    <!--@VALUE-->
<!ATTLIST info author CDATA #IMPLIED >
    <!--@MATCH:any-->
    <!--@VALUE-->
<!ATTLIST info layout CDATA #IMPLIED >
    <!--@MATCH:any-->
    <!--@VALUE-->
<!ATTLIST info indicator CDATA #IMPLIED >
    <!--@MATCH:any-->
    <!--@VALUE-->

<!ELEMENT settings EMPTY >
    <!--@ORDERED-->
<!ATTLIST settings normalization (disabled) #IMPLIED >
    <!--@VALUE-->

<!ELEMENT displays ( import*, display*, displayOptions*, special* ) >

<!ELEMENT display EMPTY >
<!ATTLIST display keyId NMTOKEN #IMPLIED >
    <!--@MATCH:any-->
<!ATTLIST display output CDATA #IMPLIED >
    <!--@MATCH:any-->
    <!--@ALLOWS_UESC-->
<!ATTLIST display display CDATA #REQUIRED >
    <!--@MATCH:any-->
    <!--@VALUE-->
    <!--@ALLOWS_UESC-->

<!ELEMENT displayOptions EMPTY >
<!ATTLIST displayOptions baseCharacter CDATA #IMPLIED >
    <!--@MATCH:any-->
    <!--@VALUE-->
    <!--@ALLOWS_UESC-->

<!ELEMENT special ANY >

<!ELEMENT keys ( import*, key*, special* ) >

<!ELEMENT key EMPTY >
<!ATTLIST key id NMTOKEN #REQUIRED >
    <!--@MATCH:any-->
<!ATTLIST key flickId NMTOKEN #IMPLIED >
    <!--@MATCH:any-->
<!ATTLIST key gap (true) #IMPLIED >
    <!--@VALUE-->
<!ATTLIST key output CDATA #IMPLIED >
    <!--@MATCH:any-->
    <!--@VALUE-->
    <!--@ALLOWS_UESC-->
<!ATTLIST key longPressKeyIds NMTOKENS #IMPLIED >
    <!--@MATCH:any-->
    <!--@VALUE-->
<!ATTLIST key longPressDefaultKeyId NMTOKEN #IMPLIED >
    <!--@MATCH:any-->
    <!--@VALUE-->
<!ATTLIST key multiTapKeyIds NMTOKENS #IMPLIED >
    <!--@MATCH:any-->
    <!--@VALUE-->
<!ATTLIST key stretch (true) #IMPLIED >
    <!--@VALUE-->
<!ATTLIST key layerId NMTOKEN #IMPLIED >
    <!--@MATCH:any-->
    <!--@VALUE-->
<!ATTLIST key width CDATA #IMPLIED >
    <!--@MATCH:range/0.01~100.0-->
    <!--@VALUE-->

<!ELEMENT flicks ( import*, flick*, special* ) >

<!ELEMENT flick ( flickSegment+, special* ) >
<!ATTLIST flick id NMTOKEN #REQUIRED >
    <!--@MATCH:any-->

<!ELEMENT flickSegment EMPTY >
<!ATTLIST flickSegment directions NMTOKENS #REQUIRED >
    <!--@MATCH:regex/(n|e|s|w|ne|nw|se|sw)([ ]+(n|e|s|w|ne|nw|se|sw))*-->
<!ATTLIST flickSegment keyId NMTOKEN #REQUIRED >
    <!--@MATCH:any-->
    <!--@VALUE-->

<!ELEMENT forms ( import*, form*, special* ) >

<!ELEMENT form ( scanCodes+, special* ) >
<!ATTLIST form id NMTOKEN #IMPLIED >
    <!--@MATCH:regex/[A-Za-z0-9][A-Za-z0-9_-]*-->

<!ELEMENT scanCodes EMPTY >
<!ATTLIST scanCodes codes NMTOKENS #REQUIRED >
    <!--@MATCH:regex/[0-9a-fA-F]{2}( [0-9a-fA-F]{2})*-->
    <!--@VALUE-->

<!ELEMENT layers ( import*, layer*, special* ) >
<!ATTLIST layers formId NMTOKEN #REQUIRED >
    <!--@MATCH:regex/[A-Za-z0-9][A-Za-z0-9_-]*-->
<!ATTLIST layers minDeviceWidth CDATA #IMPLIED >
    <!--@MATCH:range/1~999-->

<!ELEMENT layer ( row+, special* ) >
<!ATTLIST layer id NMTOKEN #IMPLIED >
    <!--@MATCH:regex/[A-Za-z0-9][A-Za-z0-9_-]*-->
<!ATTLIST layer modifiers NMTOKENS #IMPLIED >
    <!--@MATCH:regex/(none|([A-Za-z0-9]+)( [A-Za-z0-9]+)*)-->

<!ELEMENT row EMPTY >
    <!--@ORDERED-->
<!ATTLIST row keys NMTOKENS #REQUIRED >
    <!--@MATCH:any-->
    <!--@VALUE-->

<!ELEMENT variables ( import*, string*, set*, uset*, special* ) >

<!ELEMENT string EMPTY >
<!ATTLIST string id NMTOKEN #REQUIRED >
    <!--@MATCH:regex/[0-9A-Za-z_]{1,32}-->
<!ATTLIST string value CDATA #REQUIRED >
    <!--@MATCH:any-->
    <!--@VALUE-->
    <!--@ALLOWS_UESC-->

<!ELEMENT set EMPTY >
<!ATTLIST set id NMTOKEN #REQUIRED >
    <!--@MATCH:regex/[0-9A-Za-z_]{1,32}-->
<!ATTLIST set value CDATA #REQUIRED >
    <!--@MATCH:any-->
    <!--@VALUE-->
    <!--@ALLOWS_UESC-->

<!ELEMENT uset EMPTY >
<!ATTLIST uset id NMTOKEN #REQUIRED >
    <!--@MATCH:regex/[0-9A-Za-z_]{1,32}-->
<!ATTLIST uset value CDATA #REQUIRED >
    <!--@MATCH:any-->
    <!--@VALUE-->

<!ELEMENT transforms ( import*, transformGroup*, special* ) >
<!ATTLIST transforms type (simple | backspace) #REQUIRED >
    <!--@MATCH:literal/simple, backspace-->

<!ELEMENT transformGroup ( import*, ( transform* | reorder* ), special* ) >

<!ELEMENT transform EMPTY >
    <!--@ORDERED-->
<!ATTLIST transform from CDATA #REQUIRED >
    <!--@MATCH:any-->
    <!--@VALUE-->
    <!--@ALLOWS_UESC-->
<!ATTLIST transform to CDATA #IMPLIED >
    <!--@MATCH:any-->
    <!--@VALUE-->
    <!--@ALLOWS_UESC-->

<!ELEMENT reorder EMPTY >
    <!--@ORDERED-->
<!ATTLIST reorder before CDATA #IMPLIED >
    <!--@MATCH:any-->
    <!--@VALUE-->
    <!--@ALLOWS_UESC-->
<!ATTLIST reorder from CDATA #REQUIRED >
    <!--@MATCH:any-->
    <!--@VALUE-->
    <!--@ALLOWS_UESC-->
<!ATTLIST reorder order CDATA #IMPLIED >
    <!--@MATCH:any-->
    <!--@VALUE-->
<!ATTLIST reorder tertiary CDATA #IMPLIED >
    <!--@MATCH:any-->
    <!--@VALUE-->
<!ATTLIST reorder tertiaryBase CDATA #IMPLIED >
    <!--@MATCH:any-->
    <!--@VALUE-->
<!ATTLIST reorder preBase CDATA #IMPLIED >
    <!--@MATCH:any-->
    <!--@VALUE-->
