• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!--
2Copyright © 2003-2019 Unicode, Inc. and others. All rights reserved. Distributed under the Terms of Use in http://www.unicode.org/copyright.html.
3
4Permission is hereby granted, free of charge, to any person obtaining a copy of the Unicode data files and any associated documentation (the "Data Files") or Unicode software and any associated documentation (the "Software") to deal in the Data Files or Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, and/or sell copies of the Data Files or Software, and to permit persons to whom the Data Files or Software are furnished to do so, provided that (a) the above copyright notice(s) and this permission notice appear with all copies of the Data Files or Software, (b) both the above copyright notice(s) and this permission notice appear in associated documentation, and (c) there is clear notice in each modified Data File or in the Software as well as in the documentation associated with the Data File(s) or Software that the data or software has been modified.
5
6THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA FILES OR SOFTWARE.
7
8Except as contained in this notice, the name of a copyright holder shall not be used in advertising or otherwise to promote the sale, use or other dealings in these Data Files or Software without prior written authorization of the copyright holder.
9
10    $Revision$
11-->
12
13<!ELEMENT supplementalData ( version, generation?, cldrVersion?, currencyData?, territoryContainment?, subdivisionContainment?, languageData?, territoryInfo?, postalCodeData?, calendarData?, calendarPreferenceData?, weekData?, timeData?, measurementData?, unitConstants*, unitQuantities*, convertUnits*, unitPreferenceData?, timezoneData?, characters?, transforms?, metadata?, codeMappings?, parentLocales?, likelySubtags?, metazoneInfo?, plurals?, telephoneCodeData?, numberingSystems?, bcp47KeywordMappings?, gender?, references?, languageMatching?, dayPeriodRuleSet*, metaZones?, primaryZones?, windowsZones?, coverageLevels?, idValidity?, rgScope?, languageGroups?, grammaticalData? ) >
14
15<!ELEMENT version EMPTY >
16    <!--@METADATA-->
17<!ATTLIST version number CDATA #REQUIRED >
18    <!--@MATCH:any-->
19    <!--@METADATA-->
20<!ATTLIST version cldrVersion CDATA #FIXED "38.1" >
21    <!--@MATCH:version-->
22    <!--@VALUE-->
23<!ATTLIST version unicodeVersion CDATA #FIXED "13.0.0" >
24    <!--@MATCH:version-->
25    <!--@VALUE-->
26
27<!ELEMENT generation EMPTY >
28    <!--@METADATA-->
29    <!--@DEPRECATED-->
30<!ATTLIST generation date CDATA #REQUIRED >
31    <!--@VALUE-->
32    <!--@DEPRECATED-->
33
34<!ELEMENT cldrVersion EMPTY >
35    <!--@DEPRECATED-->
36<!ATTLIST cldrVersion version CDATA #REQUIRED >
37    <!--@METADATA-->
38    <!--@DEPRECATED-->
39
40<!ELEMENT currencyData ( fractions*, region+ ) >
41<!ATTLIST currencyData draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
42    <!--@METADATA-->
43    <!--@DEPRECATED-->
44
45<!ELEMENT fractions ( info+ ) >
46<!ATTLIST fractions draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
47    <!--@METADATA-->
48    <!--@DEPRECATED-->
49
50<!ELEMENT info EMPTY >
51<!ATTLIST info iso4217 NMTOKEN #REQUIRED >
52    <!--@MATCH:or/validity/currency||literal/DEFAULT-->
53<!ATTLIST info digits NMTOKEN #IMPLIED >
54    <!--@MATCH:range/0~5-->
55    <!--@VALUE-->
56<!ATTLIST info rounding NMTOKEN #IMPLIED >
57    <!--@MATCH:range/0~5-->
58    <!--@VALUE-->
59<!ATTLIST info cashDigits NMTOKEN #IMPLIED >
60    <!--@MATCH:range/0~100-->
61    <!--@VALUE-->
62<!ATTLIST info cashRounding NMTOKEN #IMPLIED >
63    <!--@MATCH:literal/0, 5, 50-->
64    <!--@VALUE-->
65<!ATTLIST info draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
66    <!--@METADATA-->
67    <!--@DEPRECATED:true, false-->
68<!ATTLIST info references CDATA #IMPLIED >
69    <!--@METADATA-->
70
71<!ELEMENT region ( currency* ) >
72<!ATTLIST region iso3166 NMTOKEN #REQUIRED >
73    <!--@MATCH:validity/region-->
74<!ATTLIST region draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
75    <!--@METADATA-->
76    <!--@DEPRECATED-->
77
78<!ELEMENT currency ( alternate* ) >
79<!ATTLIST currency before NMTOKEN #IMPLIED >
80    <!-- use from and to instead. -->
81    <!--@VALUE-->
82    <!--@DEPRECATED-->
83<!ATTLIST currency from NMTOKEN #IMPLIED >
84    <!--@MATCH:time/yyyy-MM-dd-->
85<!ATTLIST currency to NMTOKEN #IMPLIED >
86    <!--@MATCH:time/yyyy-MM-dd-->
87<!ATTLIST currency iso4217 NMTOKEN #REQUIRED >
88    <!--@MATCH:validity/currency-->
89<!ATTLIST currency digits NMTOKEN #IMPLIED >
90    <!--@VALUE-->
91<!ATTLIST currency rounding NMTOKEN #IMPLIED >
92    <!--@VALUE-->
93<!ATTLIST currency cashRounding NMTOKEN #IMPLIED >
94    <!--@VALUE-->
95<!ATTLIST currency tender (true | false) #IMPLIED >
96    <!--@VALUE-->
97<!ATTLIST currency draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
98    <!--@METADATA-->
99    <!--@DEPRECATED-->
100<!ATTLIST currency references CDATA #IMPLIED >
101    <!--@METADATA-->
102
103<!ELEMENT alternate EMPTY >
104    <!-- use from and to instead. -->
105    <!--@DEPRECATED-->
106<!ATTLIST alternate iso4217 NMTOKEN #REQUIRED >
107    <!--@DEPRECATED-->
108
109<!ELEMENT territoryContainment ( group* ) >
110
111<!ELEMENT group EMPTY >
112<!ATTLIST group type NMTOKEN #REQUIRED >
113    <!--@MATCH:validity/region-->
114<!ATTLIST group contains NMTOKENS #IMPLIED >
115    <!--@MATCH:set/validity/region-->
116    <!--@VALUE-->
117<!ATTLIST group grouping (true | false) #IMPLIED >
118    <!--@VALUE-->
119<!ATTLIST group status (deprecated | grouping) #IMPLIED >
120<!ATTLIST group draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
121    <!--@METADATA-->
122    <!--@DEPRECATED:true, false-->
123<!ATTLIST group references CDATA #IMPLIED >
124    <!--@METADATA-->
125
126<!ELEMENT subdivisionContainment ( subgroup* ) >
127
128<!ELEMENT subgroup EMPTY >
129<!ATTLIST subgroup type NMTOKEN #REQUIRED >
130    <!--@MATCH:or/validity/region||validity/subdivision-->
131<!ATTLIST subgroup subtype NMTOKEN #IMPLIED >
132    <!--@DEPRECATED-->
133<!ATTLIST subgroup contains NMTOKENS #IMPLIED >
134    <!--@MATCH:set/or/validity/subdivision||literal/itca, itnu, itor, itsd, itss, no01, no02, no03, no04, no05, no06, no07, no08, no09, no10, no11, no12, no14, no15, no18, no19, no20, no21, no22, no50-->
135    <!--@VALUE-->
136
137<!ELEMENT languageData ( language* ) >
138
139<!ELEMENT language EMPTY >
140<!ATTLIST language type NMTOKEN #REQUIRED >
141    <!--@MATCH:set/validity/language-->
142<!ATTLIST language scripts NMTOKENS #IMPLIED >
143    <!--@MATCH:set/validity/script-->
144    <!--@VALUE-->
145<!ATTLIST language territories NMTOKENS #IMPLIED >
146    <!--@MATCH:set/validity/region-->
147    <!--@VALUE-->
148<!ATTLIST language variants NMTOKENS #IMPLIED >
149    <!--@VALUE-->
150<!ATTLIST language draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
151    <!--@METADATA-->
152    <!--@DEPRECATED:true, false-->
153<!ATTLIST language references CDATA #IMPLIED >
154    <!--@METADATA-->
155<!ATTLIST language alt NMTOKENS #IMPLIED >
156    <!--@MATCH:literal/secondary, variant-->
157
158<!ELEMENT territoryInfo ( territory* ) >
159<!ATTLIST territoryInfo draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
160    <!--@METADATA-->
161    <!--@DEPRECATED-->
162<!ATTLIST territoryInfo references CDATA #IMPLIED >
163    <!--@METADATA-->
164<!ATTLIST territoryInfo alt NMTOKENS #IMPLIED >
165    <!--@MATCH:literal/variant-->
166
167<!ELEMENT territory ( languagePopulation* ) >
168<!ATTLIST territory type NMTOKEN #REQUIRED >
169    <!--@MATCH:validity/region-->
170<!ATTLIST territory gdp NMTOKEN #REQUIRED >
171    <!--@MATCH:range/0~100000000000000-->
172    <!--@VALUE-->
173<!ATTLIST territory literacyPercent NMTOKEN #REQUIRED >
174    <!--@MATCH:range/0.0~100.0-->
175    <!--@VALUE-->
176<!ATTLIST territory population NMTOKEN #REQUIRED >
177    <!--@MATCH:range/0~10000000000-->
178    <!--@VALUE-->
179<!ATTLIST territory draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
180    <!--@METADATA-->
181    <!--@DEPRECATED-->
182<!ATTLIST territory references CDATA #IMPLIED >
183    <!--@MATCH:any-->
184    <!--@METADATA-->
185<!ATTLIST territory alt NMTOKENS #IMPLIED >
186    <!--@MATCH:literal/variant-->
187
188<!ELEMENT languagePopulation EMPTY >
189<!ATTLIST languagePopulation type NMTOKEN #REQUIRED >
190    <!--@MATCH:validity/locale-->
191<!ATTLIST languagePopulation literacyPercent NMTOKEN #IMPLIED >
192    <!--@MATCH:range/0~100-->
193    <!--@VALUE-->
194<!ATTLIST languagePopulation writingPercent NMTOKEN #IMPLIED >
195    <!--@MATCH:range/0~100-->
196    <!--@VALUE-->
197<!ATTLIST languagePopulation populationPercent NMTOKEN #REQUIRED >
198    <!--@MATCH:range/0.0~100.0-->
199    <!--@VALUE-->
200<!ATTLIST languagePopulation officialStatus (de_facto_official | official | official_regional | official_minority) #IMPLIED >
201    <!--@VALUE-->
202<!ATTLIST languagePopulation draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
203    <!--@METADATA-->
204    <!--@DEPRECATED:true, false-->
205<!ATTLIST languagePopulation references CDATA #IMPLIED >
206    <!--@MATCH:any-->
207    <!--@METADATA-->
208<!ATTLIST languagePopulation alt NMTOKENS #IMPLIED >
209    <!--@MATCH:literal/variant-->
210
211<!ELEMENT postalCodeData ( postCodeRegex* ) >
212    <!--@DEPRECATED-->
213
214<!ELEMENT postCodeRegex ( #PCDATA ) >
215    <!--@DEPRECATED-->
216<!ATTLIST postCodeRegex territoryId NMTOKEN #REQUIRED >
217    <!--@DEPRECATED-->
218<!ATTLIST postCodeRegex draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
219    <!--@METADATA-->
220    <!--@DEPRECATED-->
221
222<!ELEMENT calendarData ( calendar* ) >
223
224<!ELEMENT calendar ( calendarSystem?, eras? ) >
225<!ATTLIST calendar type NMTOKEN #REQUIRED >
226    <!--@MATCH:bcp47/ca-->
227<!ATTLIST calendar territories NMTOKENS #IMPLIED >
228    <!-- use ordering attribute in calendarPreference element instead. -->
229    <!--@VALUE-->
230    <!--@DEPRECATED-->
231<!ATTLIST calendar draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
232    <!--@METADATA-->
233    <!--@DEPRECATED-->
234<!ATTLIST calendar references CDATA #IMPLIED >
235    <!--@METADATA-->
236<!ATTLIST calendar alt NMTOKENS #IMPLIED >
237    <!--@MATCH:literal/variant-->
238
239<!ELEMENT calendarSystem EMPTY >
240<!ATTLIST calendarSystem type (solar | lunar | lunisolar | other) #REQUIRED >
241    <!--@VALUE-->
242<!ATTLIST calendarSystem references CDATA #IMPLIED >
243    <!--@METADATA-->
244
245<!ELEMENT eras ( era* ) >
246<!ATTLIST eras references CDATA #IMPLIED >
247    <!--@METADATA-->
248
249<!ELEMENT era EMPTY >
250<!ATTLIST era type NMTOKEN #REQUIRED >
251    <!--@MATCH:range/0~250-->
252<!ATTLIST era start CDATA #IMPLIED >
253    <!--@MATCH:time/yyyy-MM-dd-->
254    <!--@VALUE-->
255<!ATTLIST era end CDATA #IMPLIED >
256    <!--@MATCH:time/yyyy-MM-dd-->
257    <!--@VALUE-->
258<!ATTLIST era named (true | false) #IMPLIED >
259    <!--@VALUE-->
260
261<!ELEMENT calendarPreferenceData ( calendarPreference* ) >
262
263<!ELEMENT calendarPreference EMPTY >
264<!ATTLIST calendarPreference territories NMTOKENS #REQUIRED >
265    <!--@MATCH:set/validity/region-->
266<!ATTLIST calendarPreference ordering NMTOKENS #REQUIRED >
267    <!--@MATCH:set/bcp47/ca-->
268    <!--@VALUE-->
269
270<!ELEMENT weekData ( minDays*, firstDay*, weekendStart*, weekendEnd*, weekOfPreference* ) >
271
272<!ELEMENT minDays EMPTY >
273<!ATTLIST minDays count (1 | 2 | 3 | 4 | 5 | 6 | 7) #REQUIRED >
274<!ATTLIST minDays territories NMTOKENS #REQUIRED >
275    <!--@MATCH:set/validity/region-->
276    <!--@VALUE-->
277<!ATTLIST minDays draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
278    <!--@METADATA-->
279    <!--@DEPRECATED:true, false-->
280<!ATTLIST minDays references CDATA #IMPLIED >
281    <!--@METADATA-->
282<!ATTLIST minDays alt NMTOKENS #IMPLIED >
283    <!--@MATCH:literal/variant-->
284
285<!ELEMENT firstDay EMPTY >
286<!ATTLIST firstDay day (sun | mon | tue | wed | thu | fri | sat) #REQUIRED >
287<!ATTLIST firstDay territories NMTOKENS #REQUIRED >
288    <!--@MATCH:set/validity/region-->
289    <!--@VALUE-->
290<!ATTLIST firstDay draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
291    <!--@METADATA-->
292    <!--@DEPRECATED:true, false-->
293<!ATTLIST firstDay references CDATA #IMPLIED >
294    <!--@MATCH:any-->
295    <!--@METADATA-->
296<!ATTLIST firstDay alt NMTOKENS #IMPLIED >
297    <!--@MATCH:literal/variant-->
298
299<!ELEMENT weekendStart EMPTY >
300<!ATTLIST weekendStart day (sun | mon | tue | wed | thu | fri | sat) #REQUIRED >
301<!ATTLIST weekendStart territories NMTOKENS #REQUIRED >
302    <!--@MATCH:set/validity/region-->
303    <!--@VALUE-->
304<!ATTLIST weekendStart draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
305    <!--@METADATA-->
306    <!--@DEPRECATED:true, false-->
307<!ATTLIST weekendStart references CDATA #IMPLIED >
308    <!--@METADATA-->
309<!ATTLIST weekendStart alt NMTOKENS #IMPLIED >
310    <!--@MATCH:literal/variant-->
311
312<!ELEMENT weekendEnd EMPTY >
313<!ATTLIST weekendEnd day (sun | mon | tue | wed | thu | fri | sat) #REQUIRED >
314<!ATTLIST weekendEnd territories NMTOKENS #REQUIRED >
315    <!--@MATCH:set/validity/region-->
316    <!--@VALUE-->
317<!ATTLIST weekendEnd draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
318    <!--@METADATA-->
319    <!--@DEPRECATED:true, false-->
320<!ATTLIST weekendEnd references CDATA #IMPLIED >
321    <!--@METADATA-->
322<!ATTLIST weekendEnd alt NMTOKENS #IMPLIED >
323    <!--@MATCH:literal/variant-->
324
325<!ELEMENT weekOfPreference EMPTY >
326<!ATTLIST weekOfPreference locales NMTOKENS #REQUIRED >
327    <!--@MATCH:set/validity/locale-->
328<!ATTLIST weekOfPreference ordering NMTOKENS #REQUIRED >
329    <!--@MATCH:set/literal/weekOfDate, weekOfInterval, weekOfMonth, weekOfYear-->
330    <!--@VALUE-->
331
332<!ELEMENT timeData ( hours* ) >
333
334<!ELEMENT hours EMPTY >
335<!ATTLIST hours allowed NMTOKENS #REQUIRED >
336    <!--@MATCH:set/literal/H, h, K, k, hB, hb-->
337<!ATTLIST hours preferred NMTOKEN #REQUIRED >
338    <!--@MATCH:literal/H, h-->
339<!ATTLIST hours regions NMTOKENS #REQUIRED >
340    <!--@MATCH:set/or/validity/region||validity/locale-->
341    <!--@VALUE-->
342<!ATTLIST hours draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
343    <!--@METADATA-->
344<!ATTLIST hours references CDATA #IMPLIED >
345    <!--@METADATA-->
346
347<!ELEMENT measurementData ( measurementSystem*, paperSize* ) >
348
349<!ELEMENT measurementSystem EMPTY >
350<!ATTLIST measurementSystem type (metric | US | UK) #REQUIRED >
351<!ATTLIST measurementSystem category (temperature) #IMPLIED >
352<!ATTLIST measurementSystem territories NMTOKENS #REQUIRED >
353    <!--@MATCH:set/validity/region-->
354    <!--@VALUE-->
355<!ATTLIST measurementSystem draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
356    <!--@METADATA-->
357    <!--@DEPRECATED:true, false-->
358<!ATTLIST measurementSystem references CDATA #IMPLIED >
359    <!--@METADATA-->
360<!ATTLIST measurementSystem alt NMTOKENS #IMPLIED >
361    <!--@MATCH:literal/variant-->
362
363<!ELEMENT paperSize EMPTY >
364<!ATTLIST paperSize type (A4 | US-Letter) #REQUIRED >
365<!ATTLIST paperSize territories NMTOKENS #REQUIRED >
366    <!--@MATCH:set/validity/region-->
367    <!--@VALUE-->
368<!ATTLIST paperSize draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
369    <!--@METADATA-->
370    <!--@DEPRECATED:true, false-->
371<!ATTLIST paperSize references CDATA #IMPLIED >
372    <!--@METADATA-->
373<!ATTLIST paperSize alt NMTOKENS #IMPLIED >
374    <!--@MATCH:literal/variant-->
375
376<!ELEMENT unitConstants ( unitConstant* ) >
377
378<!ELEMENT unitConstant EMPTY >
379<!ATTLIST unitConstant constant NMTOKEN #REQUIRED >
380    <!--@MATCH:regex/[A-Za-z][_A-Za-z0-9]*-->
381<!ATTLIST unitConstant value CDATA #REQUIRED >
382    <!--@MATCH:regex/[-+*/\._ 0-9a-zA-Z]+-->
383    <!--@VALUE-->
384<!ATTLIST unitConstant status NMTOKEN #IMPLIED >
385    <!--@MATCH:literal/approximate, exact-->
386    <!--@VALUE-->
387
388<!ELEMENT unitQuantities ( unitQuantity* ) >
389
390<!ELEMENT unitQuantity EMPTY >
391<!ATTLIST unitQuantity baseUnit NMTOKEN #REQUIRED >
392    <!--@MATCH:regex/[A-Za-z][-A-Za-z0-9]*-->
393<!ATTLIST unitQuantity quantity NMTOKENS #REQUIRED >
394    <!--@MATCH:regex/[A-Za-z][-A-Za-z0-9]*-->
395    <!--@VALUE-->
396<!ATTLIST unitQuantity status NMTOKEN #IMPLIED >
397    <!--@MATCH:regex/simple-->
398    <!--@VALUE-->
399
400<!ELEMENT convertUnits ( convertUnit* ) >
401
402<!ELEMENT convertUnit EMPTY >
403<!ATTLIST convertUnit source NMTOKEN #REQUIRED >
404    <!--@MATCH:regex/(100-)?[A-Za-z][-A-Za-z0-9]*-->
405<!ATTLIST convertUnit baseUnit NMTOKEN #REQUIRED >
406    <!--@MATCH:regex/[A-Za-z][-A-Za-z0-9]*-->
407    <!--@VALUE-->
408<!ATTLIST convertUnit factor CDATA #IMPLIED >
409    <!--@MATCH:regex/[-+*/\._ 0-9a-zA-Z]+-->
410    <!--@VALUE-->
411<!ATTLIST convertUnit offset CDATA #IMPLIED >
412    <!--@MATCH:regex/[-+*/\._ 0-9a-zA-Z]+-->
413    <!--@VALUE-->
414<!ATTLIST convertUnit systems NMTOKENS #IMPLIED >
415    <!--@MATCH:set/literal/ussystem, uksystem-->
416    <!--@VALUE-->
417
418<!ELEMENT unitPreferenceData ( unitPreferences* ) >
419<!ATTLIST unitPreferenceData draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
420    <!--@METADATA-->
421
422<!ELEMENT unitPreferences ( unitPreference* ) >
423<!ATTLIST unitPreferences category NMTOKEN #REQUIRED >
424    <!--@MATCH:regex/[a-z]+([-][a-z]+)*-->
425<!ATTLIST unitPreferences usage NMTOKENS #REQUIRED >
426    <!--@MATCH:regex/[a-z]+([-][a-z]+)*-->
427<!ATTLIST unitPreferences scope (small) #IMPLIED >
428    <!--@DEPRECATED-->
429<!ATTLIST unitPreferences draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
430    <!--@METADATA-->
431    <!--@DEPRECATED-->
432
433<!ELEMENT unitPreference ( #PCDATA ) >
434    <!--@ORDERED-->
435<!ATTLIST unitPreference regions NMTOKENS #REQUIRED >
436    <!--@MATCH:set/validity/region-->
437<!ATTLIST unitPreference geq NMTOKEN #IMPLIED >
438    <!--@MATCH:any-->
439<!ATTLIST unitPreference skeleton CDATA #IMPLIED >
440    <!--@MATCH:any-->
441    <!--@VALUE-->
442<!ATTLIST unitPreference draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
443    <!--@METADATA-->
444<!ATTLIST unitPreference references CDATA #IMPLIED >
445    <!--@METADATA-->
446<!ATTLIST unitPreference alt NMTOKENS #IMPLIED >
447    <!--@MATCH:literal/informal, variant-->
448
449<!ELEMENT timezoneData ( mapTimezones*, zoneFormatting* ) >
450    <!--@DEPRECATED-->
451
452<!ELEMENT mapTimezones ( mapZone* ) >
453<!ATTLIST mapTimezones type NMTOKEN #IMPLIED >
454    <!--@MATCH:literal/metazones-->
455<!ATTLIST mapTimezones otherVersion CDATA #IMPLIED >
456    <!--@MATCH:any-->
457    <!--@METADATA-->
458<!ATTLIST mapTimezones typeVersion CDATA #IMPLIED >
459    <!--@MATCH:regex/[0-9]{4}[a-z]+-->
460    <!--@METADATA-->
461<!ATTLIST mapTimezones references CDATA #IMPLIED >
462    <!--@MATCH:any-->
463    <!--@METADATA-->
464
465<!ELEMENT mapZone EMPTY >
466<!ATTLIST mapZone type CDATA #REQUIRED >
467    <!--@MATCH:set/bcp47/tz-->
468    <!--@VALUE-->
469<!ATTLIST mapZone other CDATA #REQUIRED >
470    <!--@MATCH:any-->
471<!ATTLIST mapZone territory CDATA #IMPLIED >
472    <!--@MATCH:validity/region-->
473<!ATTLIST mapZone references CDATA #IMPLIED >
474    <!--@MATCH:any-->
475    <!--@METADATA-->
476
477<!ELEMENT zoneFormatting ( zoneItem* ) >
478    <!--@DEPRECATED-->
479<!ATTLIST zoneFormatting multizone NMTOKENS #REQUIRED >
480    <!--@VALUE-->
481    <!--@DEPRECATED-->
482<!ATTLIST zoneFormatting tzidVersion CDATA #IMPLIED >
483    <!--@METADATA-->
484    <!--@DEPRECATED-->
485<!ATTLIST zoneFormatting references CDATA #IMPLIED >
486    <!--@METADATA-->
487    <!--@DEPRECATED-->
488
489<!ELEMENT zoneItem EMPTY >
490    <!--@DEPRECATED-->
491<!ATTLIST zoneItem type CDATA #REQUIRED >
492    <!--@DEPRECATED-->
493<!ATTLIST zoneItem territory NMTOKEN #REQUIRED >
494    <!--@VALUE-->
495    <!--@DEPRECATED-->
496<!ATTLIST zoneItem aliases CDATA #IMPLIED >
497    <!--@VALUE-->
498    <!--@DEPRECATED-->
499<!ATTLIST zoneItem references CDATA #IMPLIED >
500    <!--@METADATA-->
501    <!--@DEPRECATED-->
502
503<!ELEMENT characters ( character-fallback* ) >
504<!ATTLIST characters draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
505    <!--@METADATA-->
506    <!--@DEPRECATED-->
507
508<!ELEMENT character-fallback ( character* ) >
509
510<!ELEMENT character ( substitute* ) >
511<!ATTLIST character value CDATA #REQUIRED >
512    <!--@MATCH:any-->
513<!ATTLIST character draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
514    <!--@METADATA-->
515    <!--@DEPRECATED-->
516<!ATTLIST character standard CDATA #IMPLIED >
517    <!--@METADATA-->
518    <!--@DEPRECATED-->
519<!ATTLIST character references CDATA #IMPLIED >
520    <!--@METADATA-->
521<!ATTLIST character alt NMTOKENS #IMPLIED >
522    <!--@MATCH:literal/variant-->
523
524<!ELEMENT substitute ( #PCDATA ) >
525    <!--@ORDERED-->
526<!ATTLIST substitute draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
527    <!--@METADATA-->
528    <!--@DEPRECATED:true, false-->
529<!ATTLIST substitute standard CDATA #IMPLIED >
530    <!--@METADATA-->
531    <!--@DEPRECATED-->
532<!ATTLIST substitute references CDATA #IMPLIED >
533    <!--@METADATA-->
534<!ATTLIST substitute alt NMTOKENS #IMPLIED >
535    <!--@MATCH:literal/variant-->
536
537<!ELEMENT transforms ( transform* ) >
538
539<!ELEMENT transform ( ( comment | tRule )* ) >
540<!ATTLIST transform source CDATA #IMPLIED >
541    <!--@MATCH:any/TODO-->
542<!ATTLIST transform target CDATA #IMPLIED >
543    <!--@MATCH:any/TODO-->
544<!ATTLIST transform variant CDATA #IMPLIED >
545    <!--@MATCH:any/TODO-->
546<!ATTLIST transform direction (forward | backward | both) "both" >
547<!ATTLIST transform alias CDATA #IMPLIED >
548    <!--@MATCH:any/TODO-->
549    <!--@VALUE-->
550<!ATTLIST transform backwardAlias CDATA #IMPLIED >
551    <!--@MATCH:any/TODO-->
552    <!--@VALUE-->
553<!ATTLIST transform visibility (internal | external) "external" >
554    <!--@VALUE-->
555<!ATTLIST transform draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
556    <!--@METADATA-->
557<!ATTLIST transform references CDATA #IMPLIED >
558    <!--@METADATA-->
559<!ATTLIST transform alt NMTOKENS #IMPLIED >
560    <!--@MATCH:literal/variant-->
561
562<!ELEMENT comment ( #PCDATA ) >
563    <!--@ORDERED-->
564    <!--@METADATA-->
565
566<!ELEMENT tRule ( #PCDATA ) >
567    <!--@ORDERED-->
568
569<!ELEMENT metadata ( attributeOrder?, elementOrder?, serialElements?, suppress?, validity?, alias?, deprecated?, distinguishing?, blocking?, coverageAdditions?, skipDefaultLocale?, defaultContent? ) >
570<!ATTLIST metadata draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
571    <!--@METADATA-->
572    <!--@DEPRECATED-->
573
574<!ELEMENT attributeOrder ( #PCDATA ) >
575    <!--@DEPRECATED-->
576<!ATTLIST attributeOrder draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
577    <!--@METADATA-->
578    <!--@DEPRECATED-->
579
580<!ELEMENT elementOrder ( #PCDATA ) >
581    <!--@DEPRECATED-->
582<!ATTLIST elementOrder draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
583    <!--@METADATA-->
584    <!--@DEPRECATED-->
585
586<!ELEMENT serialElements ( #PCDATA ) >
587    <!--@METADATA-->
588<!ATTLIST serialElements draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
589    <!--@METADATA-->
590    <!--@DEPRECATED:true, false-->
591
592<!ELEMENT suppress ( attributes* ) >
593    <!--@METADATA-->
594<!ATTLIST suppress draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
595    <!--@METADATA-->
596    <!--@DEPRECATED-->
597
598<!ELEMENT attributes EMPTY >
599    <!--@ORDERED-->
600<!ATTLIST attributes element NMTOKENS #IMPLIED >
601    <!--@MATCH:any-->
602    <!--@VALUE-->
603<!ATTLIST attributes attribute NMTOKENS #IMPLIED >
604    <!--@MATCH:any-->
605    <!--@VALUE-->
606<!ATTLIST attributes attributeValue CDATA #IMPLIED >
607    <!--@MATCH:any-->
608    <!--@VALUE-->
609<!ATTLIST attributes draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
610    <!--@METADATA-->
611    <!--@DEPRECATED:true, false-->
612
613<!ELEMENT validity ( variable*, attributeValues* ) >
614    <!--@METADATA-->
615<!ATTLIST validity draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
616    <!--@METADATA-->
617    <!--@DEPRECATED-->
618
619<!ELEMENT variable ( #PCDATA ) >
620    <!--@ORDERED-->
621<!ATTLIST variable type NMTOKEN #IMPLIED >
622    <!--@MATCH:any-->
623    <!--@VALUE-->
624<!ATTLIST variable id CDATA #REQUIRED >
625    <!--@MATCH:any-->
626<!ATTLIST variable draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
627    <!--@METADATA-->
628    <!--@DEPRECATED:true, false-->
629
630<!ELEMENT attributeValues ( #PCDATA ) >
631    <!--@ORDERED-->
632<!ATTLIST attributeValues dtds NMTOKEN #IMPLIED >
633    <!--@MATCH:any-->
634<!ATTLIST attributeValues type NMTOKEN #IMPLIED >
635    <!--@MATCH:any-->
636<!ATTLIST attributeValues elements NMTOKENS #IMPLIED >
637    <!--@MATCH:any-->
638    <!--@VALUE-->
639<!ATTLIST attributeValues attributes NMTOKENS #IMPLIED >
640    <!--@MATCH:any-->
641    <!--@VALUE-->
642<!ATTLIST attributeValues order NMTOKEN #IMPLIED >
643    <!--@MATCH:any-->
644    <!--@VALUE-->
645<!ATTLIST attributeValues draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
646    <!--@METADATA-->
647    <!--@DEPRECATED:true, false-->
648
649<!ELEMENT alias ( languageAlias*, scriptAlias*, territoryAlias*, subdivisionAlias*, variantAlias*, zoneAlias*, unitAlias*, usageAlias* ) >
650<!ATTLIST alias draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
651    <!--@METADATA-->
652    <!--@DEPRECATED-->
653
654<!ELEMENT languageAlias EMPTY >
655<!ATTLIST languageAlias type NMTOKEN #REQUIRED >
656    <!--@MATCH:or/validity/locale||literal/aa_saaho, aar, abk, afr, aka, alb, amh, ara, arg, arm, art_lojban, asm, ava, ave, aym, aze, bak, bam, baq, bel, ben, bih, bis, bod, bos, bre, bul, bur, cat, ces, cha, che, chi, chu, chv, cor, cos, cre, cym, cze, dan, deu, div, dut, dzo, ell, eng, epo, est, eus, ewe, fao, fas, fij, fin, fra, fre, fry, ful, geo, ger, gla, gle, glg, glv, gre, grn, guj, hat, hau, hbs, heb, her, hin, hmo, hrv, hun, hye, i_ami, i_bnn, i_hak, i_klingon, i_lux, i_navajo, i_pwn, i_tao, i_tay, i_tsu, ibo, ice, ido, iii, iku, ile, ina, ind, ipk, isl, ita, jav, jpn, kal, kan, kas, kat, kau, kaz, khm, kik, kin, kir, kom, kon, kor, kua, kur, lao, lat, lav, lim, lin, lit, ltz, lub, lug, mac, mah, mal, mao, mar, may, mkd, mlg, mlt, mol, mon, mri, msa, mya, nau, nav, nbl, nde, ndo, nep, nld, nno, no_bokmal, no_nynorsk, no_bok, no_nyn, nob, nor, nya, oci, oji, ori, orm, oss, pan, per, pli, pol, por, pus, que, roh, ron, rum, run, rus, sag, san, scc, scr, sgn_BE_FR, sgn_BE_NL, sgn_CH_DE, sin, slk, slo, slv, sme, smo, sna, snd, som, sot, spa, sqi, srd, srp, ssw, sun, swa, swe, tah, tam, tat, tel, tgk, tgl, tha, tib, tir, ton, tsn, tso, tuk, tur, twi, uig, ukr, urd, uzb, ven, vie, vol, wel, wln, wol, xho, yid, yor, zh_guoyu, zh_hakka, zh_min_nan, zh_xiang, zha, zho, zul, cel_gaulish, i_default, i_enochian, i_mingo, und_aaland, und_bokmal, und_hakka, und_lojban, und_nynorsk, und_saaho, und_xiang, zh_min, en_GB_oed, zh_cmn, zh_cmn_Hans, zh_cmn_Hant, zh_gan, zh_wuu, zh_yue-->
657<!ATTLIST languageAlias replacement NMTOKEN #REQUIRED >
658    <!--@MATCH:or/validity/locale||literal/en_x_i_default, nan_x_zh_min, see_x_i_mingo, und_x_i_enochian, xtg_x_cel_gaulish-->
659    <!--@VALUE-->
660<!ATTLIST languageAlias reason (deprecated | overlong | macrolanguage | legacy | bibliographic) #IMPLIED >
661    <!--@VALUE-->
662
663<!ELEMENT scriptAlias EMPTY >
664<!ATTLIST scriptAlias type NMTOKEN #REQUIRED >
665    <!--@MATCH:validity/script-->
666<!ATTLIST scriptAlias replacement NMTOKEN #REQUIRED >
667    <!--@MATCH:validity/script-->
668    <!--@VALUE-->
669<!ATTLIST scriptAlias reason (deprecated | overlong) #IMPLIED >
670    <!--@VALUE-->
671
672<!ELEMENT territoryAlias EMPTY >
673<!ATTLIST territoryAlias type NMTOKEN #REQUIRED >
674    <!--@MATCH:set/or/validity/region||regex/[0-9]{3}|[A-Z]{3}||literal/CT, DY, FQ, HV, JT, MI, NH, NQ, PC, PU, PZ, RH, UK, VD, WK-->
675<!ATTLIST territoryAlias replacement NMTOKENS #REQUIRED >
676    <!--@MATCH:set/validity/region-->
677    <!--@VALUE-->
678<!ATTLIST territoryAlias reason (deprecated | overlong) #IMPLIED >
679    <!--@VALUE-->
680
681<!ELEMENT subdivisionAlias EMPTY >
682<!ATTLIST subdivisionAlias type NMTOKEN #REQUIRED >
683    <!--@MATCH:validity/subdivision-->
684<!ATTLIST subdivisionAlias replacement NMTOKENS #REQUIRED >
685    <!--@MATCH:set/or/validity/region||validity/subdivision||literal/cnmn, cz663, no50-->
686    <!--@VALUE-->
687<!ATTLIST subdivisionAlias reason (deprecated | overlong) #IMPLIED >
688    <!--@VALUE-->
689
690<!ELEMENT variantAlias EMPTY >
691<!ATTLIST variantAlias type NMTOKEN #REQUIRED >
692    <!--@MATCH:or/validity/variant||literal/aaland, polytoni-->
693<!ATTLIST variantAlias replacement NMTOKEN #REQUIRED >
694    <!--@MATCH:or/validity/variant||validity/region||literal/hy, hyw-->
695    <!--@VALUE-->
696<!ATTLIST variantAlias reason (deprecated | overlong) #IMPLIED >
697    <!--@VALUE-->
698
699<!ELEMENT zoneAlias EMPTY >
700<!ATTLIST zoneAlias type CDATA #REQUIRED >
701    <!--@MATCH:or/bcp47/tz||literal/SystemV/AST4, SystemV/AST4ADT, SystemV/CST6, SystemV/CST6CDT, SystemV/EST5, SystemV/EST5EDT, SystemV/HST10, SystemV/MST7, SystemV/MST7MDT, SystemV/PST8, SystemV/PST8PDT, SystemV/YST9, SystemV/YST9YDT-->
702<!ATTLIST zoneAlias replacement CDATA #REQUIRED >
703    <!--@MATCH:bcp47/tz-->
704    <!--@VALUE-->
705<!ATTLIST zoneAlias reason (deprecated | overlong) #IMPLIED >
706    <!--@VALUE-->
707
708<!ELEMENT unitAlias EMPTY >
709<!ATTLIST unitAlias type NMTOKEN #REQUIRED >
710    <!--@MATCH:validity/short-unit/deprecated-->
711<!ATTLIST unitAlias replacement NMTOKEN #REQUIRED >
712    <!--@MATCH:regex/[A-Za-z][-A-Za-z0-9]*-->
713    <!--@VALUE-->
714<!ATTLIST unitAlias reason (deprecated) #IMPLIED >
715    <!--@VALUE-->
716
717<!ELEMENT usageAlias EMPTY >
718<!ATTLIST usageAlias type NMTOKEN #REQUIRED >
719    <!--@MATCH:regex/[A-Za-z][-A-Za-z0-9]*-->
720<!ATTLIST usageAlias replacement NMTOKEN #REQUIRED >
721    <!--@MATCH:regex/[A-Za-z][-A-Za-z0-9]*-->
722    <!--@VALUE-->
723<!ATTLIST usageAlias reason (deprecated) #IMPLIED >
724    <!--@VALUE-->
725
726<!ELEMENT deprecated ( deprecatedItems* ) >
727    <!--@DEPRECATED-->
728<!ATTLIST deprecated draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
729    <!--@METADATA-->
730    <!--@DEPRECATED-->
731
732<!ELEMENT deprecatedItems EMPTY >
733    <!--@DEPRECATED-->
734<!ATTLIST deprecatedItems type (standard | supplemental | ldml | supplementalData | ldmlBCP47) #IMPLIED >
735    <!--@DEPRECATED-->
736<!ATTLIST deprecatedItems elements NMTOKENS #IMPLIED >
737    <!--@DEPRECATED-->
738<!ATTLIST deprecatedItems attributes NMTOKENS #IMPLIED >
739    <!--@DEPRECATED-->
740<!ATTLIST deprecatedItems values CDATA #IMPLIED >
741    <!--@DEPRECATED-->
742<!ATTLIST deprecatedItems draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
743    <!--@METADATA-->
744    <!--@DEPRECATED-->
745
746<!ELEMENT distinguishing ( distinguishingItems* ) >
747    <!--@METADATA-->
748    <!--@DEPRECATED-->
749<!ATTLIST distinguishing draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
750    <!--@METADATA-->
751    <!--@DEPRECATED-->
752
753<!ELEMENT distinguishingItems EMPTY >
754    <!--@DEPRECATED-->
755<!ATTLIST distinguishingItems exclude (true | false) #IMPLIED >
756    <!--@VALUE-->
757    <!--@DEPRECATED-->
758<!ATTLIST distinguishingItems elements NMTOKENS #IMPLIED >
759    <!--@VALUE-->
760    <!--@DEPRECATED-->
761<!ATTLIST distinguishingItems attributes NMTOKENS #IMPLIED >
762    <!--@DEPRECATED-->
763<!ATTLIST distinguishingItems draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
764    <!--@METADATA-->
765    <!--@DEPRECATED-->
766
767<!ELEMENT blocking ( blockingItems* ) >
768    <!--@METADATA-->
769    <!--@DEPRECATED-->
770<!ATTLIST blocking draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
771    <!--@METADATA-->
772    <!--@DEPRECATED-->
773
774<!ELEMENT blockingItems EMPTY >
775    <!--@DEPRECATED-->
776<!ATTLIST blockingItems elements NMTOKENS #IMPLIED >
777    <!--@VALUE-->
778    <!--@DEPRECATED-->
779<!ATTLIST blockingItems draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
780    <!--@METADATA-->
781    <!--@DEPRECATED-->
782
783<!ELEMENT coverageAdditions ( languageCoverage*, scriptCoverage*, territoryCoverage*, currencyCoverage*, timezoneCoverage* ) >
784    <!--@DEPRECATED-->
785<!ATTLIST coverageAdditions draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
786    <!--@METADATA-->
787    <!--@DEPRECATED-->
788
789<!ELEMENT languageCoverage EMPTY >
790    <!--@DEPRECATED-->
791<!ATTLIST languageCoverage type NMTOKEN #IMPLIED >
792    <!--@DEPRECATED-->
793<!ATTLIST languageCoverage values NMTOKENS #IMPLIED >
794    <!--@VALUE-->
795    <!--@DEPRECATED-->
796<!ATTLIST languageCoverage draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
797    <!--@METADATA-->
798    <!--@DEPRECATED-->
799
800<!ELEMENT scriptCoverage EMPTY >
801    <!--@DEPRECATED-->
802<!ATTLIST scriptCoverage type NMTOKEN #IMPLIED >
803    <!--@DEPRECATED-->
804<!ATTLIST scriptCoverage values NMTOKENS #IMPLIED >
805    <!--@VALUE-->
806    <!--@DEPRECATED-->
807<!ATTLIST scriptCoverage draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
808    <!--@METADATA-->
809    <!--@DEPRECATED-->
810
811<!ELEMENT territoryCoverage EMPTY >
812    <!--@DEPRECATED-->
813<!ATTLIST territoryCoverage type NMTOKEN #IMPLIED >
814    <!--@DEPRECATED-->
815<!ATTLIST territoryCoverage values NMTOKENS #IMPLIED >
816    <!--@VALUE-->
817    <!--@DEPRECATED-->
818<!ATTLIST territoryCoverage draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
819    <!--@METADATA-->
820    <!--@DEPRECATED-->
821
822<!ELEMENT currencyCoverage EMPTY >
823    <!--@DEPRECATED-->
824<!ATTLIST currencyCoverage type NMTOKEN #IMPLIED >
825    <!--@DEPRECATED-->
826<!ATTLIST currencyCoverage values NMTOKENS #IMPLIED >
827    <!--@VALUE-->
828    <!--@DEPRECATED-->
829<!ATTLIST currencyCoverage draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
830    <!--@METADATA-->
831    <!--@DEPRECATED-->
832
833<!ELEMENT timezoneCoverage EMPTY >
834    <!--@DEPRECATED-->
835<!ATTLIST timezoneCoverage type NMTOKEN #IMPLIED >
836    <!--@DEPRECATED-->
837<!ATTLIST timezoneCoverage values CDATA #IMPLIED >
838    <!-- would be NMTOKENS, but needs to allow / -->
839    <!--@VALUE-->
840    <!--@DEPRECATED-->
841<!ATTLIST timezoneCoverage draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
842    <!--@METADATA-->
843    <!--@DEPRECATED-->
844
845<!ELEMENT skipDefaultLocale EMPTY >
846    <!--@DEPRECATED-->
847<!ATTLIST skipDefaultLocale services NMTOKENS #IMPLIED >
848    <!--@VALUE-->
849    <!--@DEPRECATED-->
850
851<!ELEMENT defaultContent EMPTY >
852<!ATTLIST defaultContent locales NMTOKENS #IMPLIED >
853    <!--@MATCH:set/validity/locale-->
854    <!--@VALUE-->
855
856<!ELEMENT codeMappings ( languageCodes*, territoryCodes*, currencyCodes* ) >
857
858<!ELEMENT languageCodes EMPTY >
859    <!--@DEPRECATED-->
860<!ATTLIST languageCodes type NMTOKEN #REQUIRED >
861    <!--@DEPRECATED-->
862<!ATTLIST languageCodes alpha3 NMTOKEN #REQUIRED >
863    <!--@VALUE-->
864    <!--@DEPRECATED-->
865
866<!ELEMENT territoryCodes EMPTY >
867<!ATTLIST territoryCodes type NMTOKEN #REQUIRED >
868    <!--@MATCH:validity/region-->
869<!ATTLIST territoryCodes numeric NMTOKEN #IMPLIED >
870    <!--@MATCH:range/1~999-->
871    <!--@VALUE-->
872<!ATTLIST territoryCodes alpha3 NMTOKEN #IMPLIED >
873    <!--@MATCH:regex/[A-Z]{3}-->
874    <!--@VALUE-->
875<!ATTLIST territoryCodes fips10 NMTOKEN #IMPLIED >
876    <!--@MATCH:regex/[A-Z]{2}-->
877    <!--@VALUE-->
878<!ATTLIST territoryCodes internet NMTOKENS #IMPLIED >
879    <!--@VALUE-->
880    <!--@DEPRECATED-->
881
882<!ELEMENT currencyCodes EMPTY >
883<!ATTLIST currencyCodes type NMTOKEN #REQUIRED >
884    <!--@MATCH:validity/currency-->
885<!ATTLIST currencyCodes numeric NMTOKEN #REQUIRED >
886    <!--@MATCH:range/1~999-->
887    <!--@VALUE-->
888
889<!-- # Parent locales -->
890
891<!ELEMENT parentLocales ( parentLocale* ) >
892
893<!ELEMENT parentLocale EMPTY >
894<!ATTLIST parentLocale parent NMTOKEN #REQUIRED >
895    <!--@MATCH:validity/locale-->
896<!ATTLIST parentLocale locales NMTOKENS #REQUIRED >
897    <!--@MATCH:set/validity/locale-->
898    <!--@VALUE-->
899
900<!ELEMENT likelySubtags ( likelySubtag* ) >
901
902<!ELEMENT likelySubtag EMPTY >
903<!ATTLIST likelySubtag from NMTOKEN #REQUIRED >
904    <!--@MATCH:validity/locale-->
905<!ATTLIST likelySubtag to NMTOKEN #REQUIRED >
906    <!--@MATCH:validity/locale-->
907    <!--@VALUE-->
908
909<!ELEMENT metazoneInfo ( timezone* ) >
910
911<!ELEMENT timezone ( usesMetazone* ) >
912<!ATTLIST timezone type CDATA #REQUIRED >
913    <!--@MATCH:bcp47/tz-->
914
915<!ELEMENT usesMetazone EMPTY >
916<!ATTLIST usesMetazone from CDATA #IMPLIED >
917    <!--@MATCH:time/yyyy-MM-dd HH:mm-->
918<!ATTLIST usesMetazone to CDATA #IMPLIED >
919    <!--@MATCH:time/yyyy-MM-dd HH:mm-->
920<!ATTLIST usesMetazone mzone NMTOKEN #REQUIRED >
921    <!--@MATCH:metazone-->
922    <!--@VALUE-->
923
924<!ELEMENT plurals ( pluralRules*, pluralRanges* ) >
925<!ATTLIST plurals type (ordinal | cardinal) #IMPLIED >
926    <!-- default is cardinal -->
927<!ATTLIST plurals draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
928    <!--@METADATA-->
929    <!--@DEPRECATED-->
930<!ATTLIST plurals references CDATA #IMPLIED >
931    <!--@METADATA-->
932
933<!ELEMENT pluralRules ( pluralRule* ) >
934<!ATTLIST pluralRules locales NMTOKENS #REQUIRED >
935    <!--@MATCH:set/validity/locale-->
936<!ATTLIST pluralRules draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
937    <!--@METADATA-->
938    <!--@DEPRECATED-->
939<!ATTLIST pluralRules references CDATA #IMPLIED >
940    <!--@METADATA-->
941
942<!ELEMENT pluralRule ( #PCDATA ) >
943    <!--@ORDERED-->
944<!ATTLIST pluralRule count (zero | one | two | few | many | other) #REQUIRED >
945    <!-- 'other' is implicitly everything else -->
946<!ATTLIST pluralRule draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
947    <!--@METADATA-->
948<!ATTLIST pluralRule references CDATA #IMPLIED >
949    <!--@METADATA-->
950
951<!ELEMENT pluralRanges ( pluralRange* ) >
952<!ATTLIST pluralRanges locales NMTOKENS #REQUIRED >
953    <!--@MATCH:set/validity/locale-->
954<!ATTLIST pluralRanges draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
955    <!--@METADATA-->
956    <!--@DEPRECATED-->
957<!ATTLIST pluralRanges references CDATA #IMPLIED >
958    <!--@METADATA-->
959
960<!ELEMENT pluralRange EMPTY >
961<!ATTLIST pluralRange start (zero | one | two | few | many | other) #IMPLIED >
962    <!-- if missing, means *all* -->
963<!ATTLIST pluralRange end (zero | one | two | few | many | other) #IMPLIED >
964    <!-- if missing, means *all* -->
965<!ATTLIST pluralRange result (zero | one | two | few | many | other) #REQUIRED >
966    <!-- if a whole rule is missing, means *other* -->
967    <!--@VALUE-->
968<!ATTLIST pluralRange draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
969    <!--@METADATA-->
970<!ATTLIST pluralRange references CDATA #IMPLIED >
971    <!--@METADATA-->
972
973<!ELEMENT telephoneCodeData ( codesByTerritory* ) >
974    <!--@DEPRECATED-->
975
976<!ELEMENT codesByTerritory ( telephoneCountryCode+ ) >
977    <!--@DEPRECATED-->
978<!ATTLIST codesByTerritory territory NMTOKEN #REQUIRED >
979    <!--@DEPRECATED-->
980<!ATTLIST codesByTerritory draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
981    <!--@METADATA-->
982    <!--@DEPRECATED-->
983<!ATTLIST codesByTerritory references CDATA #IMPLIED >
984    <!--@METADATA-->
985    <!--@DEPRECATED-->
986
987<!ELEMENT telephoneCountryCode EMPTY >
988    <!--@DEPRECATED-->
989<!ATTLIST telephoneCountryCode code NMTOKEN #REQUIRED >
990    <!--@DEPRECATED-->
991<!ATTLIST telephoneCountryCode from NMTOKEN #IMPLIED >
992    <!--@VALUE-->
993    <!--@DEPRECATED-->
994<!ATTLIST telephoneCountryCode to NMTOKEN #IMPLIED >
995    <!--@VALUE-->
996    <!--@DEPRECATED-->
997<!ATTLIST telephoneCountryCode draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
998    <!--@METADATA-->
999    <!--@DEPRECATED-->
1000<!ATTLIST telephoneCountryCode references CDATA #IMPLIED >
1001    <!--@METADATA-->
1002    <!--@DEPRECATED-->
1003<!ATTLIST telephoneCountryCode alt NMTOKENS #IMPLIED >
1004    <!--@MATCH:literal/variant-->
1005    <!--@DEPRECATED-->
1006
1007<!ELEMENT numberingSystems ( numberingSystem* ) >
1008
1009<!ELEMENT numberingSystem EMPTY >
1010<!ATTLIST numberingSystem type (numeric | algorithmic) #REQUIRED >
1011    <!--@VALUE-->
1012<!ATTLIST numberingSystem id NMTOKEN #REQUIRED >
1013    <!--@MATCH:bcp47/nu-->
1014<!ATTLIST numberingSystem radix NMTOKEN #IMPLIED >
1015    <!--@VALUE-->
1016<!ATTLIST numberingSystem digits CDATA #IMPLIED >
1017    <!--@MATCH:unicodeset/[\p{Nd}[\u3007\u4E00\u4E03\u4E09\u4E5D\u4E8C\u4E94\u516B\u516D\u56DB][\U0001E140-\U0001E149][\U0001E2F0-\U0001E2F9]]-->
1018    <!--@VALUE-->
1019<!ATTLIST numberingSystem rules CDATA #IMPLIED >
1020    <!--@MATCH:any-->
1021    <!--@VALUE-->
1022<!ATTLIST numberingSystem draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
1023    <!--@METADATA-->
1024
1025<!ELEMENT bcp47KeywordMappings ( mapKeys?, mapTypes* ) >
1026    <!--@DEPRECATED-->
1027
1028<!ELEMENT mapKeys ( keyMap* ) >
1029    <!--@DEPRECATED-->
1030
1031<!ELEMENT keyMap EMPTY >
1032    <!--@DEPRECATED-->
1033<!ATTLIST keyMap type NMTOKEN #REQUIRED >
1034    <!--@DEPRECATED-->
1035<!ATTLIST keyMap bcp47 NMTOKEN #REQUIRED >
1036    <!--@VALUE-->
1037    <!--@DEPRECATED-->
1038
1039<!ELEMENT mapTypes ( typeMap* ) >
1040    <!--@DEPRECATED-->
1041<!ATTLIST mapTypes type NMTOKEN #REQUIRED >
1042    <!--@DEPRECATED-->
1043
1044<!ELEMENT typeMap EMPTY >
1045    <!--@DEPRECATED-->
1046<!ATTLIST typeMap type CDATA #REQUIRED >
1047    <!--@DEPRECATED-->
1048<!ATTLIST typeMap bcp47 NMTOKEN #REQUIRED >
1049    <!--@VALUE-->
1050    <!--@DEPRECATED-->
1051
1052<!-- # Gender List support -->
1053
1054<!ELEMENT gender ( personList+ ) >
1055
1056<!ELEMENT personList EMPTY >
1057<!ATTLIST personList type (neutral | mixedNeutral | maleTaints) #REQUIRED >
1058<!ATTLIST personList locales NMTOKENS #REQUIRED >
1059    <!--@MATCH:set/validity/locale-->
1060    <!--@VALUE-->
1061
1062<!ELEMENT references ( reference* ) >
1063    <!--@METADATA-->
1064
1065<!ELEMENT reference ( #PCDATA ) >
1066    <!--@METADATA-->
1067<!ATTLIST reference type NMTOKEN #REQUIRED >
1068    <!--@MATCH:any-->
1069<!ATTLIST reference uri CDATA #IMPLIED >
1070    <!--@MATCH:any-->
1071    <!--@VALUE-->
1072<!ATTLIST reference draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
1073    <!--@METADATA-->
1074    <!--@DEPRECATED:true, false-->
1075<!ATTLIST reference standard (true | false) #IMPLIED >
1076    <!--@METADATA-->
1077    <!--@DEPRECATED-->
1078<!ATTLIST reference alt NMTOKENS #IMPLIED >
1079    <!--@MATCH:literal/variant-->
1080
1081<!ELEMENT languageMatching ( languageMatches* ) >
1082
1083<!ELEMENT languageMatches ( paradigmLocales*, matchVariable*, languageMatch* ) >
1084<!ATTLIST languageMatches type NMTOKEN #REQUIRED >
1085    <!--@MATCH:literal/written, written_new-->
1086
1087<!ELEMENT paradigmLocales EMPTY >
1088<!ATTLIST paradigmLocales locales NMTOKENS #REQUIRED >
1089    <!--@MATCH:set/validity/locale-->
1090    <!--@VALUE-->
1091
1092<!ELEMENT matchVariable EMPTY >
1093<!ATTLIST matchVariable id CDATA #REQUIRED >
1094    <!--@MATCH:regex/\$[a-zA-Z0-9_]+-->
1095<!ATTLIST matchVariable value CDATA #REQUIRED >
1096    <!--@MATCH:any-->
1097    <!--@VALUE-->
1098
1099<!ELEMENT languageMatch EMPTY >
1100    <!--@ORDERED-->
1101<!ATTLIST languageMatch desired CDATA #REQUIRED >
1102    <!--@MATCH:any/TODO-->
1103<!ATTLIST languageMatch supported CDATA #REQUIRED >
1104    <!--@MATCH:any/TODO-->
1105<!ATTLIST languageMatch percent NMTOKEN #IMPLIED >
1106    <!--@MATCH:range/0~100-->
1107    <!--@VALUE-->
1108<!ATTLIST languageMatch distance NMTOKEN #IMPLIED >
1109    <!--@MATCH:range/0~100-->
1110    <!--@VALUE-->
1111<!ATTLIST languageMatch oneway (true | false) #IMPLIED >
1112    <!--@VALUE-->
1113
1114<!-- # Day Periods -->
1115
1116<!ELEMENT dayPeriodRuleSet ( dayPeriodRules* ) >
1117<!ATTLIST dayPeriodRuleSet type NMTOKEN #IMPLIED >
1118    <!--@MATCH:literal/selection-->
1119<!ATTLIST dayPeriodRuleSet draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
1120    <!--@METADATA-->
1121    <!--@DEPRECATED-->
1122<!ATTLIST dayPeriodRuleSet references CDATA #IMPLIED >
1123    <!--@METADATA-->
1124
1125<!ELEMENT dayPeriodRules ( dayPeriodRule* ) >
1126<!ATTLIST dayPeriodRules locales NMTOKENS #REQUIRED >
1127    <!--@MATCH:set/validity/locale-->
1128<!ATTLIST dayPeriodRules draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
1129    <!--@METADATA-->
1130    <!--@DEPRECATED-->
1131<!ATTLIST dayPeriodRules references CDATA #IMPLIED >
1132    <!--@METADATA-->
1133
1134<!ELEMENT dayPeriodRule EMPTY >
1135<!ATTLIST dayPeriodRule type NMTOKEN #REQUIRED >
1136    <!--@MATCH:literal/afternoon1, afternoon2, am, evening1, evening2, midnight, morning1, morning2, night1, night2, noon, pm-->
1137<!ATTLIST dayPeriodRule at NMTOKEN #IMPLIED >
1138    <!--@MATCH:time/HH:mm-->
1139    <!--@VALUE-->
1140<!ATTLIST dayPeriodRule after NMTOKEN #IMPLIED >
1141    <!--@MATCH:time/HH:mm-->
1142    <!--@VALUE-->
1143    <!--@DEPRECATED-->
1144<!ATTLIST dayPeriodRule before NMTOKEN #IMPLIED >
1145    <!--@MATCH:time/HH:mm-->
1146    <!--@VALUE-->
1147<!ATTLIST dayPeriodRule from NMTOKEN #IMPLIED >
1148    <!--@MATCH:time/HH:mm-->
1149    <!--@VALUE-->
1150<!ATTLIST dayPeriodRule to NMTOKEN #IMPLIED >
1151    <!--@MATCH:time/HH:mm-->
1152    <!--@VALUE-->
1153    <!--@DEPRECATED-->
1154<!ATTLIST dayPeriodRule draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
1155    <!--@METADATA-->
1156<!ATTLIST dayPeriodRule references CDATA #IMPLIED >
1157    <!--@METADATA-->
1158
1159<!ELEMENT metaZones ( metazoneInfo?, mapTimezones? ) >
1160
1161<!ELEMENT primaryZones ( primaryZone* ) >
1162
1163<!ELEMENT primaryZone ( #PCDATA ) >
1164<!ATTLIST primaryZone iso3166 NMTOKEN #REQUIRED >
1165    <!--@MATCH:validity/region-->
1166
1167<!-- # Time Zones -->
1168
1169<!ELEMENT windowsZones ( mapTimezones? ) >
1170
1171<!-- # Coverage levels -->
1172
1173<!ELEMENT coverageLevels ( approvalRequirements, coverageVariable*, coverageLevel* ) >
1174    <!--@METADATA-->
1175
1176<!ELEMENT approvalRequirements ( approvalRequirement* ) >
1177
1178<!ELEMENT approvalRequirement EMPTY >
1179<!ATTLIST approvalRequirement votes CDATA #REQUIRED >
1180    <!--@MATCH:any-->
1181    <!--@VALUE-->
1182<!ATTLIST approvalRequirement locales CDATA #REQUIRED >
1183    <!--@MATCH:any-->
1184<!ATTLIST approvalRequirement paths CDATA #REQUIRED >
1185    <!--@MATCH:any-->
1186
1187<!ELEMENT coverageVariable EMPTY >
1188    <!--@ORDERED-->
1189<!ATTLIST coverageVariable key CDATA #REQUIRED >
1190    <!--@MATCH:any-->
1191<!ATTLIST coverageVariable value CDATA #REQUIRED >
1192    <!--@MATCH:any-->
1193    <!--@VALUE-->
1194
1195<!ELEMENT coverageLevel EMPTY >
1196    <!--@ORDERED-->
1197<!ATTLIST coverageLevel inLanguage CDATA #IMPLIED >
1198    <!--@MATCH:any-->
1199<!ATTLIST coverageLevel inScript CDATA #IMPLIED >
1200    <!--@MATCH:validity/script-->
1201<!ATTLIST coverageLevel inTerritory CDATA #IMPLIED >
1202    <!--@MATCH:any-->
1203<!ATTLIST coverageLevel value CDATA #REQUIRED >
1204    <!--@MATCH:literal/basic, core, minimal, moderate, modern, posix-->
1205    <!--@VALUE-->
1206<!ATTLIST coverageLevel match CDATA #REQUIRED >
1207    <!--@MATCH:any-->
1208
1209<!ELEMENT idValidity ( id* ) >
1210
1211<!ELEMENT id ( #PCDATA ) >
1212<!ATTLIST id type NMTOKEN #REQUIRED >
1213    <!--@MATCH:literal/currency, language, region, script, subdivision, unit, variant-->
1214<!ATTLIST id idStatus NMTOKEN #REQUIRED >
1215    <!--@MATCH:literal/deprecated, macroregion, private_use, regular, reserved, special, unknown-->
1216
1217<!ELEMENT rgScope ( rgPath* ) >
1218
1219<!ELEMENT rgPath EMPTY >
1220<!ATTLIST rgPath path CDATA #REQUIRED >
1221    <!--@MATCH:any-->
1222<!ATTLIST rgPath draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
1223    <!--@METADATA-->
1224
1225<!ELEMENT languageGroups ( languageGroup* ) >
1226
1227<!ELEMENT languageGroup ( #PCDATA ) >
1228<!ATTLIST languageGroup parent NMTOKEN #REQUIRED >
1229    <!--@MATCH:validity/language-->
1230
1231<!-- # Grammatical Features -->
1232
1233<!ELEMENT grammaticalData ( grammaticalFeatures*, grammaticalDerivations* ) >
1234
1235<!ELEMENT grammaticalFeatures ( grammaticalCase*, grammaticalGender*, grammaticalDefiniteness* ) >
1236<!ATTLIST grammaticalFeatures targets NMTOKENS #REQUIRED >
1237    <!--@MATCH:set/literal/nominal-->
1238<!ATTLIST grammaticalFeatures locales NMTOKENS #REQUIRED >
1239    <!--@MATCH:set/validity/language-->
1240
1241<!ELEMENT grammaticalCase EMPTY >
1242<!ATTLIST grammaticalCase scope NMTOKENS #IMPLIED >
1243    <!--@MATCH:set/literal/units-->
1244<!ATTLIST grammaticalCase values NMTOKENS #IMPLIED >
1245    <!--@MATCH:set/literal/ablative, accusative, comitative, dative, ergative, genitive, instrumental, locative, locativecopulative, nominative, oblique, partitive, prepositional, sociative, vocative-->
1246    <!--@VALUE-->
1247
1248<!ELEMENT grammaticalGender EMPTY >
1249<!ATTLIST grammaticalGender scope NMTOKENS #IMPLIED >
1250    <!--@MATCH:set/literal/units-->
1251<!ATTLIST grammaticalGender values NMTOKENS #IMPLIED >
1252    <!--@MATCH:set/literal/animate, common, feminine, inanimate, masculine, neuter, personal-->
1253    <!--@VALUE-->
1254
1255<!ELEMENT grammaticalDefiniteness EMPTY >
1256<!ATTLIST grammaticalDefiniteness scope NMTOKENS #IMPLIED >
1257    <!--@MATCH:set/literal/units-->
1258<!ATTLIST grammaticalDefiniteness values NMTOKENS #IMPLIED >
1259    <!--@MATCH:set/literal/definite, indefinite, unspecified, construct-->
1260    <!--@VALUE-->
1261
1262<!ELEMENT grammaticalDerivations ( deriveCompound*, deriveComponent* ) >
1263<!ATTLIST grammaticalDerivations locales NMTOKENS #REQUIRED >
1264    <!--@MATCH:set/validity/locale-->
1265
1266<!ELEMENT deriveCompound EMPTY >
1267<!ATTLIST deriveCompound feature NMTOKENS #REQUIRED >
1268    <!--@MATCH:set/literal/gender-->
1269<!ATTLIST deriveCompound structure NMTOKENS #REQUIRED >
1270    <!--@MATCH:set/literal/per, times, power, prefix-->
1271<!ATTLIST deriveCompound value NMTOKEN #REQUIRED >
1272    <!-- TODO: add @MATCH function for locale's gender categories and use here -->
1273    <!--@MATCH:set/literal/0, 1-->
1274    <!--@VALUE-->
1275
1276<!ELEMENT deriveComponent EMPTY >
1277<!ATTLIST deriveComponent feature NMTOKENS #REQUIRED >
1278    <!--@MATCH:set/literal/plural, case-->
1279<!ATTLIST deriveComponent structure NMTOKENS #REQUIRED >
1280    <!--@MATCH:set/literal/per, times, power, prefix-->
1281<!ATTLIST deriveComponent value0 NMTOKEN #REQUIRED >
1282    <!-- TODO: add @MATCH function for locale's plural/case categories and use here -->
1283    <!--@MATCH:set/literal/compound, zero, one, two, few, many, other, accusative, nominative-->
1284    <!--@VALUE-->
1285<!ATTLIST deriveComponent value1 NMTOKEN #REQUIRED >
1286    <!-- TODO: add @MATCH function for locale's plural/case categories and use here -->
1287    <!--@MATCH:set/literal/compound, zero, one, two, few, many, other, accusative, nominative-->
1288    <!--@VALUE-->
1289