xref: /aosp_15_r20/external/cldr/keyboards/dtd/ldmlKeyboard.dtd (revision 912701f9769bb47905792267661f0baf2b85bed5)
1<!--
2Copyright © 1991-2024 Unicode, Inc.
3For terms of use, see http://www.unicode.org/copyright.html
4SPDX-License-Identifier: Unicode-3.0
5CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
6-->
7<!-- This is a descriptive keyboard format frozen in v43 and included for backwards compatibility.
8     All new applications should use the prescriptive format available in ldmlKeyboard3.dtd -->
9
10<!ELEMENT keyboard ( version, generation?, info?, names, settings?, import*, keyMap+, displayMap?, layer*, vkeys*, transforms*, reorders?, backspaces? ) >
11    <!--@DEPRECATED-->
12<!ATTLIST keyboard locale CDATA #REQUIRED >
13    <!--@MATCH:any/TODO-->
14    <!--@DEPRECATED-->
15
16<!ELEMENT version EMPTY >
17<!ATTLIST version platform CDATA #REQUIRED >
18    <!--@MATCH:version-->
19    <!--@VALUE-->
20<!ATTLIST version number CDATA #REQUIRED >
21    <!--@MATCH:regex/\$Revision.*\$-->
22    <!--@METADATA-->
23<!ATTLIST version cldrVersion CDATA #FIXED "43.1" >
24    <!--@MATCH:version-->
25    <!--@METADATA-->
26
27<!ELEMENT generation EMPTY >
28    <!--@DEPRECATED-->
29<!ATTLIST generation date CDATA #REQUIRED >
30    <!--@VALUE-->
31    <!--@DEPRECATED-->
32
33<!ELEMENT info EMPTY >
34<!ATTLIST info author CDATA #IMPLIED >
35    <!--@VALUE-->
36<!ATTLIST info normalization CDATA #IMPLIED >
37    <!--@MATCH:literal/NFC, NFD, other-->
38    <!--@VALUE-->
39<!ATTLIST info layout CDATA #IMPLIED >
40    <!--@VALUE-->
41<!ATTLIST info indicator CDATA #IMPLIED >
42    <!--@VALUE-->
43
44<!ELEMENT names ( name+ ) >
45
46<!ELEMENT name EMPTY >
47<!ATTLIST name value CDATA #REQUIRED >
48    <!--@MATCH:any-->
49    <!--@VALUE-->
50
51<!ELEMENT settings EMPTY >
52    <!--@ORDERED-->
53<!ATTLIST settings fallback (omit) #IMPLIED >
54    <!--@VALUE-->
55<!ATTLIST settings transformFailure (omit) #IMPLIED >
56    <!--@VALUE-->
57<!ATTLIST settings transformPartial (hide) #IMPLIED >
58    <!--@VALUE-->
59
60<!ELEMENT import EMPTY >
61<!ATTLIST import path CDATA #REQUIRED >
62
63<!ELEMENT keyMap ( map | flicks )+ >
64<!ATTLIST keyMap modifiers CDATA #IMPLIED >
65    <!--@MATCH:any/TODO-->
66
67<!ELEMENT map EMPTY >
68<!ATTLIST map iso CDATA #REQUIRED >
69    <!--@MATCH:regex/[A-Z][0-9][0-9]-->
70<!ATTLIST map to CDATA #REQUIRED >
71    <!--@MATCH:any-->
72    <!--@VALUE-->
73<!ATTLIST map longPress CDATA #IMPLIED >
74    <!--@MATCH:any-->
75    <!--@VALUE-->
76<!ATTLIST map longpress-status (optional) #IMPLIED >
77<!ATTLIST map transform (no) #IMPLIED >
78    <!--@VALUE-->
79<!ATTLIST map multitap CDATA #IMPLIED >
80    <!--@VALUE-->
81<!ATTLIST map hint CDATA #IMPLIED >
82    <!--@VALUE-->
83<!ATTLIST map optional NMTOKEN #IMPLIED >
84
85<!ELEMENT flicks ( flick+ ) >
86<!ATTLIST flicks iso CDATA #REQUIRED >
87    <!--@MATCH:regex/[A-Z][0-9][0-9]-->
88
89<!ELEMENT flick EMPTY >
90<!ATTLIST flick directions NMTOKENS #REQUIRED >
91<!ATTLIST flick to CDATA #REQUIRED >
92    <!--@VALUE-->
93
94<!ELEMENT displayMap ( display+ ) >
95
96<!ELEMENT display EMPTY >
97<!ATTLIST display to CDATA #REQUIRED >
98<!ATTLIST display display CDATA #REQUIRED >
99    <!--@VALUE-->
100
101<!ELEMENT layer ( row+, switch*, vkeys* ) >
102<!ATTLIST layer modifier CDATA #REQUIRED >
103
104<!ELEMENT row EMPTY >
105<!ATTLIST row keys CDATA #REQUIRED >
106
107<!ELEMENT switch EMPTY >
108<!ATTLIST switch iso CDATA #REQUIRED >
109<!ATTLIST switch layer CDATA #REQUIRED >
110    <!--@VALUE-->
111<!ATTLIST switch display CDATA #REQUIRED >
112    <!--@VALUE-->
113
114<!ELEMENT vkeys ( vkey+ ) >
115<!ATTLIST vkeys type CDATA #REQUIRED >
116    <!--@MATCH:literal/android, chromeos, osx, und, windows-->
117
118<!ELEMENT vkey EMPTY >
119<!ATTLIST vkey iso CDATA #REQUIRED >
120    <!--@MATCH:regex/[A-Z][0-9][0-9]-->
121<!ATTLIST vkey vkey CDATA #REQUIRED >
122    <!--@VALUE-->
123<!ATTLIST vkey modifier CDATA #IMPLIED >
124    <!--@VALUE-->
125
126<!ELEMENT transforms ( transform+ ) >
127<!ATTLIST transforms type CDATA #REQUIRED >
128    <!--@MATCH:literal/simple, final-->
129
130<!ELEMENT transform EMPTY >
131<!ATTLIST transform before CDATA #IMPLIED >
132<!ATTLIST transform from CDATA #REQUIRED >
133    <!--@MATCH:any-->
134<!ATTLIST transform after CDATA #IMPLIED >
135<!ATTLIST transform to CDATA #REQUIRED >
136    <!--@MATCH:any-->
137    <!--@VALUE-->
138<!ATTLIST transform error (fail) #IMPLIED >
139    <!--@VALUE-->
140
141<!ELEMENT reorders ( reorder+ ) >
142
143<!ELEMENT reorder EMPTY >
144<!ATTLIST reorder before CDATA #IMPLIED >
145<!ATTLIST reorder from CDATA #REQUIRED >
146<!ATTLIST reorder after CDATA #IMPLIED >
147<!ATTLIST reorder order CDATA #IMPLIED >
148    <!--@VALUE-->
149<!ATTLIST reorder tertiary CDATA #IMPLIED >
150    <!--@VALUE-->
151<!ATTLIST reorder tertiary_base CDATA #IMPLIED >
152    <!--@VALUE-->
153<!ATTLIST reorder prebase CDATA #IMPLIED >
154    <!--@VALUE-->
155
156<!ELEMENT backspaces ( backspace+ ) >
157
158<!ELEMENT backspace EMPTY >
159<!ATTLIST backspace before CDATA #IMPLIED >
160<!ATTLIST backspace from CDATA #REQUIRED >
161<!ATTLIST backspace after CDATA #IMPLIED >
162<!ATTLIST backspace to CDATA #IMPLIED >
163    <!--@VALUE-->
164<!ATTLIST backspace error (fail) #IMPLIED >
165    <!--@VALUE-->
166