blob: dd1fc39f99474ad401fd7928162f6392190d002d [file] [log] [blame]
<?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/)
--><!--
Important Note:
This DTD describes a technical preview of Keyboard Test Data
--><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="keyboardTest3">
<xs:complexType>
<xs:sequence>
<xs:element ref="info"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="repertoire"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="tests"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="special"/>
</xs:sequence>
<xs:attribute name="conformsTo" use="required">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="techpreview"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="info">
<xs:complexType>
<xs:attribute name="keyboard" use="required"/>
<xs:attribute name="author"/>
<xs:attribute name="name" type="xs:NMTOKEN" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="repertoire">
<xs:complexType>
<xs:attribute name="chars" use="required"/>
<xs:attribute name="type">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="default"/>
<xs:enumeration value="simple"/>
<xs:enumeration value="gesture"/>
<xs:enumeration value="flick"/>
<xs:enumeration value="longPress"/>
<xs:enumeration value="multiTap"/>
<xs:enumeration value="hardware"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="name" type="xs:NMTOKEN" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="tests">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="test"/>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="special"/>
</xs:sequence>
<xs:attribute name="name" type="xs:NMTOKEN" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="test">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" ref="startContext"/>
<xs:choice maxOccurs="unbounded" minOccurs="0">
<xs:element ref="keystroke"/>
<xs:element ref="emit"/>
<xs:element ref="backspace"/>
<xs:element ref="check"/>
</xs:choice>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="special"/>
</xs:sequence>
<xs:attribute name="name" type="xs:NMTOKEN" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="startContext">
<xs:complexType>
<xs:attribute name="to" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="keystroke">
<xs:complexType>
<xs:attribute name="key" type="xs:NMTOKEN" use="required"/>
<xs:attribute name="flick" type="xs:NMTOKENS"/>
<xs:attribute name="longPress"/>
<xs:attribute name="tapCount"/>
</xs:complexType>
</xs:element>
<xs:element name="emit">
<xs:complexType>
<xs:attribute name="to" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="backspace">
<xs:complexType/>
</xs:element>
<xs:element name="check">
<xs:complexType>
<xs:attribute name="result" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="special" type="any"/>
<xs:complexType mixed="true" name="any">
<xs:sequence>
<xs:any maxOccurs="unbounded" minOccurs="0" processContents="strict"/>
</xs:sequence>
</xs:complexType>
</xs:schema>