| <?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/) |
| --><!-- |
| Note: This DTD is not compatible with prior versions of the keyboard data. |
| See ldmlKeyboard.dtd and CLDR v43 and prior. |
| --><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> |
| <xs:element name="keyboard3"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="import"/> |
| <xs:element minOccurs="0" ref="locales"/> |
| <xs:element minOccurs="0" ref="version"/> |
| <xs:element ref="info"/> |
| <xs:element minOccurs="0" ref="settings"/> |
| <xs:element minOccurs="0" ref="displays"/> |
| <xs:element minOccurs="0" ref="keys"/> |
| <xs:element minOccurs="0" ref="flicks"/> |
| <xs:element minOccurs="0" ref="forms"/> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="layers"/> |
| <xs:element minOccurs="0" ref="variables"/> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="transforms"/> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="special"/> |
| </xs:sequence> |
| <xs:attribute name="locale" use="required"/> |
| <xs:attribute name="conformsTo" use="required"> |
| <xs:simpleType> |
| <xs:restriction base="xs:token"> |
| <xs:enumeration value="45"/> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| </xs:complexType> |
| </xs:element> |
| |
| |
| |
| |
| |
| <xs:element name="import"> |
| <xs:complexType> |
| <xs:attribute name="path" use="required"/> |
| <xs:attribute name="base"> |
| <xs:simpleType> |
| <xs:restriction base="xs:token"> |
| <xs:enumeration value="cldr"/> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| </xs:complexType> |
| </xs:element> |
| |
| <xs:element name="locales"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="locale"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="locale"> |
| <xs:complexType> |
| <xs:attribute name="id" use="required"/> |
| </xs:complexType> |
| </xs:element> |
| |
| <xs:element name="version"> |
| <xs:complexType> |
| <xs:attribute name="number"/> |
| <xs:attribute default="45" name="cldrVersion"> |
| <xs:simpleType> |
| <xs:restriction base="xs:string"> |
| <xs:enumeration value="45"/> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| </xs:complexType> |
| </xs:element> |
| |
| |
| |
| |
| <xs:element name="info"> |
| <xs:complexType> |
| <xs:attribute name="name" use="required"/> |
| <xs:attribute name="author"/> |
| <xs:attribute name="layout"/> |
| <xs:attribute name="indicator"/> |
| </xs:complexType> |
| </xs:element> |
| |
| |
| |
| |
| |
| |
| |
| |
| <xs:element name="settings"> |
| <xs:complexType> |
| <xs:attribute name="normalization"> |
| <xs:simpleType> |
| <xs:restriction base="xs:token"> |
| <xs:enumeration value="disabled"/> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| </xs:complexType> |
| </xs:element> |
| |
| |
| <xs:element name="displays"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="import"/> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="display"/> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="displayOptions"/> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="special"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="display"> |
| <xs:complexType> |
| <xs:attribute name="keyId" type="xs:NMTOKEN"/> |
| <xs:attribute name="output"/> |
| <xs:attribute name="display" use="required"/> |
| </xs:complexType> |
| </xs:element> |
| |
| |
| |
| |
| |
| |
| <xs:element name="displayOptions"> |
| <xs:complexType> |
| <xs:attribute name="baseCharacter"/> |
| </xs:complexType> |
| </xs:element> |
| |
| |
| |
| <xs:element name="special" type="any"/> |
| <xs:element name="keys"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="import"/> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="key"/> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="special"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="key"> |
| <xs:complexType> |
| <xs:attribute name="id" type="xs:NMTOKEN" use="required"/> |
| <xs:attribute name="flickId" type="xs:NMTOKEN"/> |
| <xs:attribute name="gap"> |
| <xs:simpleType> |
| <xs:restriction base="xs:token"> |
| <xs:enumeration value="true"/> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| <xs:attribute name="output"/> |
| <xs:attribute name="longPressKeyIds" type="xs:NMTOKENS"/> |
| <xs:attribute name="longPressDefaultKeyId" type="xs:NMTOKEN"/> |
| <xs:attribute name="multiTapKeyIds" type="xs:NMTOKENS"/> |
| <xs:attribute name="stretch"> |
| <xs:simpleType> |
| <xs:restriction base="xs:token"> |
| <xs:enumeration value="true"/> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| <xs:attribute name="layerId" type="xs:NMTOKEN"/> |
| <xs:attribute name="width"/> |
| </xs:complexType> |
| </xs:element> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <xs:element name="flicks"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="import"/> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="flick"/> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="special"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="flick"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element maxOccurs="unbounded" ref="flickSegment"/> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="special"/> |
| </xs:sequence> |
| <xs:attribute name="id" type="xs:NMTOKEN" use="required"/> |
| </xs:complexType> |
| </xs:element> |
| |
| <xs:element name="flickSegment"> |
| <xs:complexType> |
| <xs:attribute name="directions" type="xs:NMTOKENS" use="required"/> |
| <xs:attribute name="keyId" type="xs:NMTOKEN" use="required"/> |
| </xs:complexType> |
| </xs:element> |
| |
| |
| |
| <xs:element name="forms"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="import"/> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="form"/> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="special"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="form"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element maxOccurs="unbounded" ref="scanCodes"/> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="special"/> |
| </xs:sequence> |
| <xs:attribute name="id" type="xs:NMTOKEN"/> |
| </xs:complexType> |
| </xs:element> |
| |
| <xs:element name="scanCodes"> |
| <xs:complexType> |
| <xs:attribute name="codes" type="xs:NMTOKENS" use="required"/> |
| </xs:complexType> |
| </xs:element> |
| |
| |
| <xs:element name="layers"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="import"/> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="layer"/> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="special"/> |
| </xs:sequence> |
| <xs:attribute name="formId" type="xs:NMTOKEN" use="required"/> |
| <xs:attribute name="minDeviceWidth"/> |
| </xs:complexType> |
| </xs:element> |
| |
| |
| <xs:element name="layer"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element maxOccurs="unbounded" ref="row"/> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="special"/> |
| </xs:sequence> |
| <xs:attribute name="id" type="xs:NMTOKEN"/> |
| <xs:attribute name="modifiers" type="xs:NMTOKENS"/> |
| </xs:complexType> |
| </xs:element> |
| |
| |
| <xs:element name="row"> |
| <xs:complexType> |
| <xs:attribute name="keys" type="xs:NMTOKENS" use="required"/> |
| </xs:complexType> |
| </xs:element> |
| |
| |
| |
| <xs:element name="variables"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="import"/> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="string"/> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="set"/> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="uset"/> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="special"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="string"> |
| <xs:complexType> |
| <xs:attribute name="id" type="xs:NMTOKEN" use="required"/> |
| <xs:attribute name="value" use="required"/> |
| </xs:complexType> |
| </xs:element> |
| |
| |
| |
| |
| <xs:element name="set"> |
| <xs:complexType> |
| <xs:attribute name="id" type="xs:NMTOKEN" use="required"/> |
| <xs:attribute name="value" use="required"/> |
| </xs:complexType> |
| </xs:element> |
| |
| |
| |
| |
| <xs:element name="uset"> |
| <xs:complexType> |
| <xs:attribute name="id" type="xs:NMTOKEN" use="required"/> |
| <xs:attribute name="value" use="required"/> |
| </xs:complexType> |
| </xs:element> |
| |
| |
| |
| <xs:element name="transforms"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="import"/> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="transformGroup"/> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="special"/> |
| </xs:sequence> |
| <xs:attribute name="type" use="required"> |
| <xs:simpleType> |
| <xs:restriction base="xs:token"> |
| <xs:enumeration value="simple"/> |
| <xs:enumeration value="backspace"/> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| </xs:complexType> |
| </xs:element> |
| |
| <xs:element name="transformGroup"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="import"/> |
| <xs:choice> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="transform"/> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="reorder"/> |
| </xs:choice> |
| <xs:element maxOccurs="unbounded" minOccurs="0" ref="special"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="transform"> |
| <xs:complexType> |
| <xs:attribute name="from" use="required"/> |
| <xs:attribute name="to"/> |
| </xs:complexType> |
| </xs:element> |
| |
| |
| |
| |
| |
| |
| |
| <xs:element name="reorder"> |
| <xs:complexType> |
| <xs:attribute name="before"/> |
| <xs:attribute name="from" use="required"/> |
| <xs:attribute name="order"/> |
| <xs:attribute name="tertiary"/> |
| <xs:attribute name="tertiaryBase"/> |
| <xs:attribute name="preBase"/> |
| </xs:complexType> |
| </xs:element> |
| <xs:complexType mixed="true" name="any"> |
| <xs:sequence> |
| <xs:any maxOccurs="unbounded" minOccurs="0" processContents="strict"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:schema> |