mirror of
https://github.com/keymanapp/keyman.git
synced 2026-09-08 00:27:42 +00:00
215 lines
6.1 KiB
DTD
215 lines
6.1 KiB
DTD
<!--
|
|
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-->
|