<!--
Copyright © 2003-2017 Unicode, Inc. and others. All rights reserved. Distributed under the Terms of Use in http://www.unicode.org/copyright.html.

Permission 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.

THE 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.

Except 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.
$Revision: 13802 $
-->

<!ELEMENT ldml ( identity, ( alias | ( fallback*, localeDisplayNames?, layout?, contextTransforms?, characters?, delimiters?, measurement?, dates?, numbers?, units?, listPatterns?, collations?, posix?, characterLabels?, segmentations?, rbnf?, annotations?, metadata?, references?, special* ) ) ) >
<!ATTLIST ldml version CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST ldml draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!-- ######################################################### -->

<!ELEMENT identity ( alias | ( version, generation?, language, script?, territory?, variant?, special* ) ) >
<!ATTLIST identity draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!-- ######################################################### -->
<!-- # These elements are common to almost all elements defined -->

<!ELEMENT alias ( special* ) >
<!ATTLIST alias source NMTOKEN #REQUIRED >
    <!--@VALUE-->
<!ATTLIST alias path CDATA #IMPLIED >
    <!--@VALUE-->
<!ATTLIST alias alt NMTOKENS #IMPLIED >
<!ATTLIST alias draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT special ANY >

<!ELEMENT version EMPTY >
<!ATTLIST version number CDATA #REQUIRED >
    <!--@METADATA-->
<!ATTLIST version cldrVersion CDATA #FIXED "32.0.1" >
    <!--@VALUE-->
<!ATTLIST version draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT generation EMPTY >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST generation date CDATA #REQUIRED >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST generation draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT language ( #PCDATA ) >
<!ATTLIST language type NMTOKEN #REQUIRED >
<!ATTLIST language alt NMTOKENS #IMPLIED >
<!ATTLIST language draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST language references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT script ( #PCDATA ) >
<!ATTLIST script type NMTOKEN #REQUIRED >
<!ATTLIST script alt NMTOKENS #IMPLIED >
<!ATTLIST script draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST script references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT territory ( #PCDATA ) >
<!ATTLIST territory type NMTOKEN #REQUIRED >
<!ATTLIST territory alt NMTOKENS #IMPLIED >
<!ATTLIST territory draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST territory references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT variant ( #PCDATA ) >
<!ATTLIST variant type NMTOKEN #REQUIRED >
<!ATTLIST variant alt NMTOKENS #IMPLIED >
<!ATTLIST variant draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST variant references CDATA #IMPLIED >
    <!--@METADATA-->

<!-- ######################################################### -->

<!ELEMENT fallback ( #PCDATA ) >
    <!--@DEPRECATED-->
<!ATTLIST fallback alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST fallback draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST fallback references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT localeDisplayNames ( alias | ( localeDisplayPattern?, languages?, scripts?, territories?, subdivisions?, variants?, keys?, types?, transformNames?, measurementSystemNames?, codePatterns?, special* ) ) >
<!ATTLIST localeDisplayNames draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT localeDisplayPattern ( alias | ( localePattern*, localeSeparator*, localeKeyTypePattern*, special* ) ) >
<!ATTLIST localeDisplayPattern alt NMTOKENS #IMPLIED >
<!ATTLIST localeDisplayPattern draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST localeDisplayPattern references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT localePattern ( #PCDATA ) >
<!ATTLIST localePattern alt NMTOKENS #IMPLIED >
<!ATTLIST localePattern draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
<!ATTLIST localePattern references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT localeSeparator ( #PCDATA ) >
<!ATTLIST localeSeparator alt NMTOKENS #IMPLIED >
<!ATTLIST localeSeparator draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
<!ATTLIST localeSeparator references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT localeKeyTypePattern ( #PCDATA ) >
<!ATTLIST localeKeyTypePattern alt NMTOKENS #IMPLIED >
<!ATTLIST localeKeyTypePattern draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
<!ATTLIST localeKeyTypePattern references CDATA #IMPLIED >
    <!--@METADATA-->

<!-- # Either 1 alias OR any specials, any order, zero or more language -->

<!ELEMENT languages ( alias | ( language | special )* ) >
<!ATTLIST languages draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST languages standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST languages references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST languages validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!-- # Either 1 alias OR any specials, any order, zero or more script -->

<!ELEMENT scripts ( alias | ( script | special )* ) >
<!ATTLIST scripts draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST scripts standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST scripts references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST scripts validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!-- # Either 1 alias OR any specials, any order, zero or more territory -->

<!ELEMENT territories ( alias | ( territory | special )* ) >
<!ATTLIST territories draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST territories standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST territories references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST territories validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT subdivisions ( alias | ( subdivision | special )* ) >
<!ATTLIST subdivisions draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST subdivisions references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT subdivision ( #PCDATA ) >
<!ATTLIST subdivision type NMTOKEN #REQUIRED >
<!ATTLIST subdivision alt NMTOKENS #IMPLIED >
<!ATTLIST subdivision draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->

<!-- # Either 1 alias OR any specials, any order, zero or more variant -->

<!ELEMENT variants ( alias | ( variant | special )* ) >
<!ATTLIST variants draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST variants standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST variants references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST variants validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!-- # Either 1 alias OR any specials, any order, zero or more key -->

<!ELEMENT keys ( alias | ( key | special )* ) >
<!ATTLIST keys draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST keys standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST keys references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST keys validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT key ( #PCDATA ) >
<!ATTLIST key type NMTOKEN #REQUIRED >
<!ATTLIST key alt NMTOKENS #IMPLIED >
<!ATTLIST key draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST key references CDATA #IMPLIED >
    <!--@METADATA-->

<!-- # Either 1 alias OR any specials, any order, zero or more type -->

<!ELEMENT types ( alias | ( type | special )* ) >
<!ATTLIST types draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST types standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST types references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST types validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT type ( #PCDATA ) >
<!ATTLIST type key NMTOKEN #REQUIRED >
<!ATTLIST type type NMTOKEN #REQUIRED >
<!ATTLIST type alt NMTOKENS #IMPLIED >
<!ATTLIST type draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST type references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT transformNames ( alias | ( transformName | special )* ) >
    <!--@DEPRECATED-->
<!ATTLIST transformNames draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST transformNames references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT transformName ( #PCDATA ) >
    <!--@DEPRECATED-->
<!ATTLIST transformName type NMTOKEN #REQUIRED >
    <!--@DEPRECATED-->
<!ATTLIST transformName alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST transformName draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST transformName references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!-- # Either 1 alias OR any specials, any order, zero or more measurementSystemName -->

<!ELEMENT measurementSystemNames ( alias | ( measurementSystemName | special )* ) >
<!ATTLIST measurementSystemNames draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST measurementSystemNames references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST measurementSystemNames validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT measurementSystemName ( #PCDATA ) >
<!ATTLIST measurementSystemName type (US | metric | UK) #REQUIRED >
<!ATTLIST measurementSystemName alt NMTOKENS #IMPLIED >
<!ATTLIST measurementSystemName draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST measurementSystemName references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT codePatterns ( alias | ( codePattern | special )* ) >

<!ELEMENT codePattern ( #PCDATA ) >
<!ATTLIST codePattern type NMTOKEN #REQUIRED >
<!ATTLIST codePattern alt NMTOKENS #IMPLIED >
<!ATTLIST codePattern draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
<!ATTLIST codePattern references CDATA #IMPLIED >
    <!--@METADATA-->

<!-- ######################################################### -->
<!-- # layout and orientation are script specific, so validSublocales attribute is not required -->

<!ELEMENT layout ( alias | ( orientation*, inList*, inText*, special* ) ) >
<!ATTLIST layout draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST layout references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT orientation ( alias | ( characterOrder*, lineOrder*, special* ) ) >
<!ATTLIST orientation characters (left-to-right | right-to-left | top-to-bottom | bottom-to-top) #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST orientation lines (left-to-right | right-to-left | top-to-bottom | bottom-to-top) #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST orientation alt NMTOKENS #IMPLIED >
<!ATTLIST orientation draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST orientation standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST orientation references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT characterOrder ( #PCDATA ) >
<!ATTLIST characterOrder alt NMTOKENS #IMPLIED >
<!ATTLIST characterOrder draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->

<!ELEMENT lineOrder ( #PCDATA ) >
<!ATTLIST lineOrder alt NMTOKENS #IMPLIED >
<!ATTLIST lineOrder draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->

<!ELEMENT inList ( #PCDATA ) >
    <!--@DEPRECATED-->
<!ATTLIST inList casing (titlecase-words | titlecase-firstword | lowercase-words | mixed) #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST inList alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST inList draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST inList references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT inText ( #PCDATA ) >
    <!--@DEPRECATED-->
<!ATTLIST inText type (languages | scripts | territories | variants | keys | types | measurementSystemNames | monthWidth | dayWidth | quarterWidth | long | fields | currency) #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST inText alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST inText draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST inText references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!-- ######################################################### -->

<!ELEMENT contextTransforms ( alias | ( contextTransformUsage*, special* ) ) >
<!ATTLIST contextTransforms alt NMTOKENS #IMPLIED >
<!ATTLIST contextTransforms draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST contextTransforms references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST contextTransforms validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT contextTransformUsage ( alias | ( contextTransform*, special* ) ) >
<!ATTLIST contextTransformUsage type CDATA #REQUIRED >
<!ATTLIST contextTransformUsage alt NMTOKENS #IMPLIED >
<!ATTLIST contextTransformUsage draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST contextTransformUsage references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST contextTransformUsage validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT contextTransform ( #PCDATA ) >
<!ATTLIST contextTransform type (uiListOrMenu | stand-alone) #REQUIRED >
<!ATTLIST contextTransform alt NMTOKENS #IMPLIED >
<!ATTLIST contextTransform draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
<!ATTLIST contextTransform references CDATA #IMPLIED >
    <!--@METADATA-->

<!-- ######################################################### -->

<!ELEMENT characters ( alias | ( exemplarCharacters*, ellipsis*, moreInformation*, stopwords*, indexLabels*, mapping*, parseLenients*, special* ) ) >
<!ATTLIST characters draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT exemplarCharacters ( #PCDATA | cp )* >
<!ATTLIST exemplarCharacters type (auxiliary | standard | punctuation | currencySymbol | index | numbers) #IMPLIED >
    <!--@DEPRECATED:currencySymbol-->
<!ATTLIST exemplarCharacters alt NMTOKENS #IMPLIED >
<!ATTLIST exemplarCharacters draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
<!ATTLIST exemplarCharacters standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST exemplarCharacters references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST exemplarCharacters validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!-- # This element can occur anywhere there may be localizable data -->

<!ELEMENT cp ( special* ) >
    <!--@DEPRECATED-->
<!ATTLIST cp hex NMTOKEN #REQUIRED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT ellipsis ( #PCDATA ) >
<!ATTLIST ellipsis type (initial | medial | final | word-initial | word-medial | word-final) #IMPLIED >
<!ATTLIST ellipsis alt NMTOKENS #IMPLIED >
<!ATTLIST ellipsis draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
<!ATTLIST ellipsis references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT moreInformation ( #PCDATA ) >
<!ATTLIST moreInformation alt NMTOKENS #IMPLIED >
<!ATTLIST moreInformation draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
<!ATTLIST moreInformation references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT stopwords ( stopwordList* ) >
    <!--@DEPRECATED-->

<!ELEMENT stopwordList ( #PCDATA ) >
    <!--@DEPRECATED-->
<!ATTLIST stopwordList type NMTOKEN #REQUIRED >
    <!--@DEPRECATED-->
<!ATTLIST stopwordList alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST stopwordList draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST stopwordList references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT indexLabels ( indexSeparator*, compressedIndexSeparator*, indexRangePattern*, indexLabelBefore*, indexLabelAfter*, indexLabel* ) >
    <!--@DEPRECATED-->

<!ELEMENT indexSeparator ( #PCDATA ) >
    <!--@DEPRECATED-->
<!ATTLIST indexSeparator alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST indexSeparator draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST indexSeparator references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT compressedIndexSeparator ( #PCDATA ) >
    <!--@DEPRECATED-->
<!ATTLIST compressedIndexSeparator alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST compressedIndexSeparator draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST compressedIndexSeparator references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT indexRangePattern ( #PCDATA ) >
    <!--@DEPRECATED-->
<!ATTLIST indexRangePattern alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST indexRangePattern draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST indexRangePattern references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT indexLabelBefore ( #PCDATA ) >
    <!--@DEPRECATED-->
<!ATTLIST indexLabelBefore alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST indexLabelBefore draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST indexLabelBefore references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT indexLabelAfter ( #PCDATA ) >
    <!--@DEPRECATED-->
<!ATTLIST indexLabelAfter alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST indexLabelAfter draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST indexLabelAfter references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT indexLabel ( #PCDATA ) >
    <!--@DEPRECATED-->
<!ATTLIST indexLabel indexSource CDATA #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST indexLabel priority (1 | 2 | 3) #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST indexLabel alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST indexLabel draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST indexLabel references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT mapping ( special* ) >
    <!--@DEPRECATED-->
<!ATTLIST mapping registry NMTOKEN #REQUIRED >
    <!--@DEPRECATED-->
<!ATTLIST mapping type NMTOKEN #IMPLIED >
    <!-- use choice instead -->
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST mapping choice NMTOKEN #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST mapping alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST mapping draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST mapping standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST mapping references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST mapping validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT parseLenients ( alias | ( parseLenient*, special* ) ) >
<!ATTLIST parseLenients scope (general | number | date) #REQUIRED >
<!ATTLIST parseLenients level (lenient | stricter) #REQUIRED >

<!ELEMENT parseLenient ( #PCDATA ) >
<!ATTLIST parseLenient sample CDATA #REQUIRED >
<!ATTLIST parseLenient alt NMTOKENS #IMPLIED >
<!ATTLIST parseLenient draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->

<!-- ######################################################### -->

<!ELEMENT delimiters ( alias | ( quotationStart*, quotationEnd*, alternateQuotationStart*, alternateQuotationEnd*, special* ) ) >
<!ATTLIST delimiters alt NMTOKENS #IMPLIED >
<!ATTLIST delimiters draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST delimiters standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST delimiters references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST delimiters validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT quotationStart ( #PCDATA | cp )* >
<!ATTLIST quotationStart alt NMTOKENS #IMPLIED >
<!ATTLIST quotationStart draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
<!ATTLIST quotationStart references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT quotationEnd ( #PCDATA | cp )* >
<!ATTLIST quotationEnd alt NMTOKENS #IMPLIED >
<!ATTLIST quotationEnd draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
<!ATTLIST quotationEnd references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT alternateQuotationStart ( #PCDATA | cp )* >
<!ATTLIST alternateQuotationStart alt NMTOKENS #IMPLIED >
<!ATTLIST alternateQuotationStart draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
<!ATTLIST alternateQuotationStart references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT alternateQuotationEnd ( #PCDATA | cp )* >
<!ATTLIST alternateQuotationEnd alt NMTOKENS #IMPLIED >
<!ATTLIST alternateQuotationEnd draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
<!ATTLIST alternateQuotationEnd references CDATA #IMPLIED >
    <!--@METADATA-->

<!-- ######################################################### -->

<!ELEMENT measurement ( alias | ( measurementSystem*, paperSize*, special* ) ) >
    <!-- use measurementData in supplemental instead -->
    <!--@DEPRECATED-->
<!ATTLIST measurement alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST measurement draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST measurement standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST measurement references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST measurement validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT measurementSystem ( special* ) >
    <!-- use measurementSystem in supplemental instead -->
    <!--@DEPRECATED-->
<!ATTLIST measurementSystem type (metric | US | UK) #REQUIRED >
    <!-- use choice instead -->
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST measurementSystem choice (metric | US | UK) #IMPLIED >
    <!-- really required, but needs to be optional to support type also -->
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST measurementSystem alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST measurementSystem draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST measurementSystem standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST measurementSystem references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST measurementSystem validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT paperSize ( alias | ( height*, width*, special* ) ) >
    <!-- use paperSize in supplemental instead -->
    <!--@DEPRECATED-->
<!ATTLIST paperSize alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST paperSize draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST paperSize standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST paperSize references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST paperSize validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT height ( #PCDATA ) >
    <!--@DEPRECATED-->
<!ATTLIST height alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST height draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST height references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT width ( #PCDATA ) >
    <!--@DEPRECATED-->
<!ATTLIST width alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST width draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST width references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!-- ######################################################### -->

<!ELEMENT dates ( alias | ( localizedPatternChars*, dateRangePattern*, calendars?, fields?, timeZoneNames?, special* ) ) >
<!ATTLIST dates alt NMTOKENS #IMPLIED >
<!ATTLIST dates draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST dates standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST dates references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST dates validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT localizedPatternChars ( #PCDATA | cp )* >
    <!--@DEPRECATED-->
<!ATTLIST localizedPatternChars alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST localizedPatternChars draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST localizedPatternChars standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST localizedPatternChars references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST localizedPatternChars validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT dateRangePattern ( #PCDATA ) >
    <!-- use intervalFormats. -->
    <!--@DEPRECATED-->
<!ATTLIST dateRangePattern alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST dateRangePattern draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST dateRangePattern standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST dateRangePattern references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST dateRangePattern validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT calendars ( alias | ( default*, calendar*, special* ) ) >
    <!-- use calendarPreferenceData instead of default element -->
<!ATTLIST calendars draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST calendars validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT default ( special* ) >
    <!--@DEPRECATED-->
<!ATTLIST default type NMTOKEN #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST default choice NMTOKEN #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST default alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST default draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST default references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT calendar ( alias | ( months?, monthNames?, monthAbbr?, monthPatterns?, days?, dayNames?, dayAbbr?, quarters?, week?, am*, pm*, dayPeriods?, eras?, cyclicNameSets?, dateFormats?, timeFormats?, dateTimeFormats?, fields*, special* ) ) >
    <!-- use of fields is deprecated here -->
<!ATTLIST calendar type NMTOKEN #REQUIRED >
<!ATTLIST calendar alt NMTOKENS #IMPLIED >
<!ATTLIST calendar draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST calendar standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST calendar references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST calendar validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT months ( alias | ( default*, monthContext*, special* ) ) >
<!ATTLIST months alt NMTOKENS #IMPLIED >
<!ATTLIST months draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST months standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST months references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST months validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT monthContext ( alias | ( default*, monthWidth*, special* ) ) >
<!ATTLIST monthContext type (format | stand-alone) #REQUIRED >
<!ATTLIST monthContext alt NMTOKENS #IMPLIED >
<!ATTLIST monthContext draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST monthContext standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST monthContext references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST monthContext validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT monthWidth ( alias | ( month*, special* ) ) >
<!ATTLIST monthWidth type (abbreviated | narrow | wide) #REQUIRED >
<!ATTLIST monthWidth alt NMTOKENS #IMPLIED >
<!ATTLIST monthWidth draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST monthWidth standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST monthWidth references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST monthWidth validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT month ( #PCDATA | cp )* >
<!ATTLIST month type (1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13) #REQUIRED >
<!ATTLIST month yeartype (standard | leap) #IMPLIED >
<!ATTLIST month alt NMTOKENS #IMPLIED >
<!ATTLIST month draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
<!ATTLIST month references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT monthNames ( alias | ( month*, special* ) ) >
    <!--@DEPRECATED-->
<!ATTLIST monthNames draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT monthAbbr ( alias | ( month*, special* ) ) >
    <!--@DEPRECATED-->
<!ATTLIST monthAbbr draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT monthPatterns ( alias | ( monthPatternContext*, special* ) ) >
<!ATTLIST monthPatterns alt NMTOKENS #IMPLIED >
<!ATTLIST monthPatterns draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST monthPatterns references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST monthPatterns validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT monthPatternContext ( alias | ( monthPatternWidth*, special* ) ) >
<!ATTLIST monthPatternContext type (format | stand-alone | numeric) #REQUIRED >
<!ATTLIST monthPatternContext alt NMTOKENS #IMPLIED >
<!ATTLIST monthPatternContext draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST monthPatternContext references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST monthPatternContext validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT monthPatternWidth ( alias | ( monthPattern*, special* ) ) >
<!ATTLIST monthPatternWidth type (abbreviated | narrow | wide | all) #REQUIRED >
<!ATTLIST monthPatternWidth alt NMTOKENS #IMPLIED >
<!ATTLIST monthPatternWidth draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST monthPatternWidth references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST monthPatternWidth validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT monthPattern ( #PCDATA ) >
<!ATTLIST monthPattern type (leap | standardAfterLeap | combined) #REQUIRED >
<!ATTLIST monthPattern alt NMTOKENS #IMPLIED >
<!ATTLIST monthPattern draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
<!ATTLIST monthPattern references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT days ( alias | ( default*, dayContext*, special* ) ) >
<!ATTLIST days alt NMTOKENS #IMPLIED >
<!ATTLIST days draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST days standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST days references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST days validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT dayContext ( alias | ( default*, dayWidth*, special* ) ) >
<!ATTLIST dayContext type (format | stand-alone) #REQUIRED >
<!ATTLIST dayContext alt NMTOKENS #IMPLIED >
<!ATTLIST dayContext draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST dayContext standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST dayContext references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST dayContext validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT dayWidth ( alias | ( day*, special* ) ) >
<!ATTLIST dayWidth type (abbreviated | narrow | short | wide) #REQUIRED >
<!ATTLIST dayWidth alt NMTOKENS #IMPLIED >
<!ATTLIST dayWidth draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST dayWidth standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST dayWidth references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST dayWidth validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT day ( #PCDATA ) >
<!ATTLIST day type (sun | mon | tue | wed | thu | fri | sat) #REQUIRED >
<!ATTLIST day alt NMTOKENS #IMPLIED >
<!ATTLIST day draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST day references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT dayNames ( alias | ( day*, special* ) ) >
    <!--@DEPRECATED-->
<!ATTLIST dayNames draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT dayAbbr ( alias | ( day*, special* ) ) >
    <!--@DEPRECATED-->
<!ATTLIST dayAbbr draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT quarters ( alias | ( default*, quarterContext*, special* ) ) >
<!ATTLIST quarters alt NMTOKENS #IMPLIED >
<!ATTLIST quarters draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST quarters references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST quarters validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT quarterContext ( alias | ( default*, quarterWidth*, special* ) ) >
<!ATTLIST quarterContext type (format | stand-alone) #REQUIRED >
<!ATTLIST quarterContext alt NMTOKENS #IMPLIED >
<!ATTLIST quarterContext draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST quarterContext references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST quarterContext validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT quarterWidth ( alias | ( quarter*, special* ) ) >
<!ATTLIST quarterWidth type (abbreviated | narrow | wide) #REQUIRED >
<!ATTLIST quarterWidth alt NMTOKENS #IMPLIED >
<!ATTLIST quarterWidth draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST quarterWidth references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST quarterWidth validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT quarter ( #PCDATA ) >
<!ATTLIST quarter type (1 | 2 | 3 | 4) #REQUIRED >
<!ATTLIST quarter alt NMTOKENS #IMPLIED >
<!ATTLIST quarter draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST quarter references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT week ( alias | ( minDays*, firstDay*, weekendStart*, weekendEnd*, special* ) ) >
    <!-- use supplemental weekData -->
    <!--@DEPRECATED-->
<!ATTLIST week alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST week draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST week standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST week references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST week validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT minDays ( special* ) >
    <!--@DEPRECATED-->
<!ATTLIST minDays count (1 | 2 | 3 | 4 | 5 | 6 | 7) #REQUIRED >
    <!--@DEPRECATED-->
<!ATTLIST minDays alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST minDays draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST minDays references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT firstDay ( special* ) >
    <!-- use supplemental data -->
    <!--@DEPRECATED-->
<!ATTLIST firstDay day (sun | mon | tue | wed | thu | fri | sat) #REQUIRED >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST firstDay alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST firstDay draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST firstDay references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT weekendStart ( special* ) >
    <!-- use supplemental data -->
    <!--@DEPRECATED-->
<!ATTLIST weekendStart day (sun | mon | tue | wed | thu | fri | sat) #REQUIRED >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST weekendStart time CDATA "00:00" >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST weekendStart alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST weekendStart draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST weekendStart references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT weekendEnd ( special* ) >
    <!-- use supplemental data -->
    <!--@DEPRECATED-->
<!ATTLIST weekendEnd day (sun | mon | tue | wed | thu | fri | sat) #REQUIRED >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST weekendEnd time CDATA "24:00" >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST weekendEnd alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST weekendEnd draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST weekendEnd references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT am ( #PCDATA ) >
    <!-- use dayPeriods -->
    <!--@DEPRECATED-->
<!ATTLIST am alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST am draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST am references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST am validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT pm ( #PCDATA ) >
    <!-- use dayPeriods -->
    <!--@DEPRECATED-->
<!ATTLIST pm alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST pm draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST pm references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST pm validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT dayPeriods ( alias | ( dayPeriodContext*, special* ) ) >
<!ATTLIST dayPeriods draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST dayPeriods references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT dayPeriodContext ( alias | ( dayPeriodWidth*, special* ) ) >
<!ATTLIST dayPeriodContext type NMTOKEN #REQUIRED >
<!ATTLIST dayPeriodContext draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST dayPeriodContext references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT dayPeriodWidth ( alias | ( dayPeriod*, special* ) ) >
<!ATTLIST dayPeriodWidth type (abbreviated | narrow | wide) #REQUIRED >
<!ATTLIST dayPeriodWidth draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST dayPeriodWidth references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT dayPeriod ( #PCDATA ) >
<!ATTLIST dayPeriod type NMTOKEN #REQUIRED >
<!ATTLIST dayPeriod alt NMTOKENS #IMPLIED >
<!ATTLIST dayPeriod draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
<!ATTLIST dayPeriod references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT eras ( alias | ( eraNames?, eraAbbr?, eraNarrow?, special* ) ) >
<!ATTLIST eras alt NMTOKENS #IMPLIED >
<!ATTLIST eras draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST eras standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST eras references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST eras validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT eraNames ( alias | ( era*, special* ) ) >
<!ATTLIST eraNames alt NMTOKENS #IMPLIED >
<!ATTLIST eraNames draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST eraNames references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST eraNames validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT era ( #PCDATA ) >
<!ATTLIST era type NMTOKEN #REQUIRED >
<!ATTLIST era alt NMTOKENS #IMPLIED >
<!ATTLIST era draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST era references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT eraAbbr ( alias | ( era*, special* ) ) >
<!ATTLIST eraAbbr alt NMTOKENS #IMPLIED >
<!ATTLIST eraAbbr draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST eraAbbr references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST eraAbbr validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT eraNarrow ( alias | ( era*, special* ) ) >
<!ATTLIST eraNarrow alt NMTOKENS #IMPLIED >
<!ATTLIST eraNarrow draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST eraNarrow references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST eraNarrow validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT cyclicNameSets ( alias | ( cyclicNameSet*, special* ) ) >
<!ATTLIST cyclicNameSets alt NMTOKENS #IMPLIED >
<!ATTLIST cyclicNameSets draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST cyclicNameSets references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST cyclicNameSets validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT cyclicNameSet ( alias | ( cyclicNameContext*, special* ) ) >
<!ATTLIST cyclicNameSet type (years | months | days | dayParts | zodiacs | solarTerms) #REQUIRED >
<!ATTLIST cyclicNameSet alt NMTOKENS #IMPLIED >
<!ATTLIST cyclicNameSet draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST cyclicNameSet references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST cyclicNameSet validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT cyclicNameContext ( alias | ( cyclicNameWidth*, special* ) ) >
<!ATTLIST cyclicNameContext type (format | stand-alone) #REQUIRED >
<!ATTLIST cyclicNameContext alt NMTOKENS #IMPLIED >
<!ATTLIST cyclicNameContext draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST cyclicNameContext references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST cyclicNameContext validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT cyclicNameWidth ( alias | ( cyclicName*, special* ) ) >
<!ATTLIST cyclicNameWidth type (abbreviated | narrow | wide) #REQUIRED >
<!ATTLIST cyclicNameWidth alt NMTOKENS #IMPLIED >
<!ATTLIST cyclicNameWidth draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST cyclicNameWidth references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST cyclicNameWidth validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT cyclicName ( #PCDATA ) >
<!ATTLIST cyclicName type NMTOKEN #REQUIRED >
<!ATTLIST cyclicName alt NMTOKENS #IMPLIED >
<!ATTLIST cyclicName draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
<!ATTLIST cyclicName references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT dateFormats ( alias | ( default*, dateFormatLength*, special* ) ) >
<!ATTLIST dateFormats draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST dateFormats validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT dateFormatLength ( alias | ( default*, dateFormat*, special* ) ) >
<!ATTLIST dateFormatLength type (full | long | medium | short) #REQUIRED >
<!ATTLIST dateFormatLength alt NMTOKENS #IMPLIED >
<!ATTLIST dateFormatLength draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST dateFormatLength standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST dateFormatLength references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST dateFormatLength validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT dateFormat ( alias | ( pattern*, displayName*, special* ) ) >
<!ATTLIST dateFormat type NMTOKEN "standard" >
<!ATTLIST dateFormat alt NMTOKENS #IMPLIED >
<!ATTLIST dateFormat draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST dateFormat standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST dateFormat references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST dateFormat validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT pattern ( #PCDATA ) >
<!ATTLIST pattern type NMTOKEN "standard" >
<!ATTLIST pattern numbers CDATA #IMPLIED >
    <!--@VALUE-->
<!ATTLIST pattern count (0 | 1 | zero | one | two | few | many | other) #IMPLIED >
    <!-- Only used for decimalFormats type="1000..." -->
<!ATTLIST pattern alt NMTOKENS #IMPLIED >
<!ATTLIST pattern draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST pattern references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT displayName ( #PCDATA ) >
<!ATTLIST displayName count (0 | 1 | zero | one | two | few | many | other) #IMPLIED >
    <!-- only for currencies -->
<!ATTLIST displayName alt NMTOKENS #IMPLIED >
<!ATTLIST displayName draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST displayName references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT timeFormats ( alias | ( default*, timeFormatLength*, special* ) ) >
<!ATTLIST timeFormats draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST timeFormats validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT timeFormatLength ( alias | ( default*, timeFormat*, special* ) ) >
<!ATTLIST timeFormatLength type (full | long | medium | short) #REQUIRED >
<!ATTLIST timeFormatLength alt NMTOKENS #IMPLIED >
<!ATTLIST timeFormatLength draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST timeFormatLength standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST timeFormatLength references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST timeFormatLength validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT timeFormat ( alias | ( pattern*, displayName*, special* ) ) >
<!ATTLIST timeFormat type NMTOKEN "standard" >
<!ATTLIST timeFormat alt NMTOKENS #IMPLIED >
<!ATTLIST timeFormat draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST timeFormat standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST timeFormat references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST timeFormat validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT dateTimeFormats ( alias | ( default*, dateTimeFormatLength*, availableFormats*, appendItems*, intervalFormats*, special* ) ) >
<!ATTLIST dateTimeFormats draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST dateTimeFormats validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT dateTimeFormatLength ( alias | ( default*, dateTimeFormat*, special* ) ) >
<!ATTLIST dateTimeFormatLength type (full | long | medium | short) #IMPLIED >
<!ATTLIST dateTimeFormatLength alt NMTOKENS #IMPLIED >
<!ATTLIST dateTimeFormatLength draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST dateTimeFormatLength standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST dateTimeFormatLength references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST dateTimeFormatLength validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT dateTimeFormat ( alias | ( pattern*, displayName*, special* ) ) >
<!ATTLIST dateTimeFormat type NMTOKEN "standard" >
<!ATTLIST dateTimeFormat alt NMTOKENS #IMPLIED >
<!ATTLIST dateTimeFormat draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST dateTimeFormat standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST dateTimeFormat references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST dateTimeFormat validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT availableFormats ( alias | ( dateFormatItem*, special* ) ) >
<!ATTLIST availableFormats alt NMTOKENS #IMPLIED >
<!ATTLIST availableFormats draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST availableFormats references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST availableFormats validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT dateFormatItem ( #PCDATA ) >
<!ATTLIST dateFormatItem id CDATA #REQUIRED >
<!ATTLIST dateFormatItem count (zero | one | two | few | many | other) #IMPLIED >
<!ATTLIST dateFormatItem alt NMTOKENS #IMPLIED >
<!ATTLIST dateFormatItem draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST dateFormatItem references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT appendItems ( alias | ( appendItem*, special* ) ) >
<!ATTLIST appendItems alt NMTOKENS #IMPLIED >
<!ATTLIST appendItems draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST appendItems references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST appendItems validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT appendItem ( #PCDATA ) >
<!ATTLIST appendItem request CDATA #REQUIRED >
<!ATTLIST appendItem alt NMTOKENS #IMPLIED >
<!ATTLIST appendItem draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST appendItem references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT intervalFormats ( alias | ( intervalFormatFallback*, intervalFormatItem*, special* ) ) >
<!ATTLIST intervalFormats alt NMTOKENS #IMPLIED >
<!ATTLIST intervalFormats draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST intervalFormats references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST intervalFormats validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT intervalFormatFallback ( #PCDATA ) >
<!ATTLIST intervalFormatFallback alt NMTOKENS #IMPLIED >
<!ATTLIST intervalFormatFallback draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
<!ATTLIST intervalFormatFallback references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST intervalFormatFallback validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT intervalFormatItem ( alias | ( greatestDifference*, special* ) ) >
<!ATTLIST intervalFormatItem id NMTOKEN #REQUIRED >
<!ATTLIST intervalFormatItem alt NMTOKENS #IMPLIED >
<!ATTLIST intervalFormatItem draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST intervalFormatItem references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST intervalFormatItem validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT greatestDifference ( #PCDATA ) >
<!ATTLIST greatestDifference id NMTOKEN #REQUIRED >
<!ATTLIST greatestDifference alt NMTOKENS #IMPLIED >
<!ATTLIST greatestDifference draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
<!ATTLIST greatestDifference references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST greatestDifference validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT fields ( alias | ( field*, special* ) ) >
<!ATTLIST fields alt NMTOKENS #IMPLIED >
<!ATTLIST fields draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST fields standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST fields references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST fields validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT field ( alias | ( displayName*, relative*, relativeTime*, relativePeriod*, special* ) ) >
<!ATTLIST field type (era | era-short | era-narrow | year | year-short | year-narrow | quarter | quarter-short | quarter-narrow | month | month-short | month-narrow | week | week-short | week-narrow | weekOfMonth | weekOfMonth-short | weekOfMonth-narrow | day | day-short | day-narrow | dayOfYear | dayOfYear-short | dayOfYear-narrow | weekday | weekday-short | weekday-narrow | weekdayOfMonth | weekdayOfMonth-short | weekdayOfMonth-narrow | sun | sun-short | sun-narrow | mon | mon-short | mon-narrow | tue | tue-short | tue-narrow | wed | wed-short | wed-narrow | thu | thu-short | thu-narrow | fri | fri-short | fri-narrow | sat | sat-short | sat-narrow | dayperiod | dayperiod-short | dayperiod-narrow | hour | hour-short | hour-narrow | minute | minute-short | minute-narrow | second | second-short | second-narrow | zone | zone-short | zone-narrow) #IMPLIED >
<!ATTLIST field alt NMTOKENS #IMPLIED >
<!ATTLIST field draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST field standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST field references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST field validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT relative ( #PCDATA ) >
<!ATTLIST relative type NMTOKEN #IMPLIED >
<!ATTLIST relative alt NMTOKENS #IMPLIED >
<!ATTLIST relative draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST relative references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST relative validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT relativeTime ( alias | ( relativeTimePattern*, special* ) ) >
<!ATTLIST relativeTime type NMTOKEN #REQUIRED >
<!ATTLIST relativeTime alt NMTOKENS #IMPLIED >
<!ATTLIST relativeTime draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST relativeTime references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST relativeTime validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT relativeTimePattern ( #PCDATA ) >
<!ATTLIST relativeTimePattern count (zero | one | two | few | many | other) #REQUIRED >
<!ATTLIST relativeTimePattern alt NMTOKENS #IMPLIED >
<!ATTLIST relativeTimePattern draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
<!ATTLIST relativeTimePattern references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST relativeTimePattern validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT relativePeriod ( #PCDATA ) >
<!ATTLIST relativePeriod alt NMTOKENS #IMPLIED >
<!ATTLIST relativePeriod draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->

<!ELEMENT timeZoneNames ( alias | ( hourFormat*, hoursFormat*, gmtFormat*, gmtZeroFormat*, regionFormat*, fallbackFormat*, fallbackRegionFormat*, abbreviationFallback*, preferenceOrdering*, singleCountries*, default*, zone*, metazone*, special* ) ) >
<!ATTLIST timeZoneNames draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST timeZoneNames validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT hourFormat ( #PCDATA ) >
<!ATTLIST hourFormat alt NMTOKENS #IMPLIED >
<!ATTLIST hourFormat draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST hourFormat references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT hoursFormat ( #PCDATA ) >
    <!--@DEPRECATED-->
<!ATTLIST hoursFormat alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST hoursFormat draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST hoursFormat references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT gmtFormat ( #PCDATA ) >
<!ATTLIST gmtFormat alt NMTOKENS #IMPLIED >
<!ATTLIST gmtFormat draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST gmtFormat references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT gmtZeroFormat ( #PCDATA ) >
<!ATTLIST gmtZeroFormat alt NMTOKENS #IMPLIED >
<!ATTLIST gmtZeroFormat draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST gmtZeroFormat references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT regionFormat ( #PCDATA ) >
<!ATTLIST regionFormat type (standard | daylight) #IMPLIED >
<!ATTLIST regionFormat alt NMTOKENS #IMPLIED >
<!ATTLIST regionFormat draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST regionFormat references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT fallbackFormat ( #PCDATA ) >
<!ATTLIST fallbackFormat alt NMTOKENS #IMPLIED >
<!ATTLIST fallbackFormat draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST fallbackFormat references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT fallbackRegionFormat ( #PCDATA ) >
    <!--@DEPRECATED-->
<!ATTLIST fallbackRegionFormat alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST fallbackRegionFormat draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST fallbackRegionFormat references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT abbreviationFallback EMPTY >
    <!--@DEPRECATED-->
<!ATTLIST abbreviationFallback type (GMT | standard) #IMPLIED >
    <!-- use choice instead -->
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST abbreviationFallback choice (GMT | standard) #IMPLIED >
    <!-- really required, but needs to be optional to support type also -->
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST abbreviationFallback alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST abbreviationFallback draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST abbreviationFallback references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT preferenceOrdering EMPTY >
    <!-- use metazones instead -->
    <!--@DEPRECATED-->
<!ATTLIST preferenceOrdering type CDATA #IMPLIED >
    <!-- use choice instead -->
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST preferenceOrdering choice CDATA #IMPLIED >
    <!-- really required, but needs to be optional to support type also -->
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST preferenceOrdering alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST preferenceOrdering draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST preferenceOrdering references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT singleCountries EMPTY >
    <!--@DEPRECATED-->
<!ATTLIST singleCountries list CDATA #REQUIRED >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST singleCountries alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST singleCountries draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST singleCountries references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT zone ( alias | ( long*, short*, commonlyUsed*, exemplarCity*, special* ) ) >
<!ATTLIST zone type CDATA #REQUIRED >
<!ATTLIST zone alt NMTOKENS #IMPLIED >
<!ATTLIST zone draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST zone standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST zone references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST zone validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT long ( alias | ( generic*, standard*, daylight*, special* ) ) >
<!ATTLIST long alt NMTOKENS #IMPLIED >
<!ATTLIST long draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST long references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST long validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT generic ( #PCDATA ) >
<!ATTLIST generic alt NMTOKENS #IMPLIED >
<!ATTLIST generic draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST generic references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT standard ( #PCDATA ) >
<!ATTLIST standard alt NMTOKENS #IMPLIED >
<!ATTLIST standard draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST standard references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT daylight ( #PCDATA ) >
<!ATTLIST daylight alt NMTOKENS #IMPLIED >
<!ATTLIST daylight draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST daylight references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT short ( alias | ( generic*, standard*, daylight*, special* ) ) >
<!ATTLIST short alt NMTOKENS #IMPLIED >
<!ATTLIST short draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST short references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST short validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT commonlyUsed ( #PCDATA ) >
    <!--@DEPRECATED-->
<!ATTLIST commonlyUsed used (true | false) #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST commonlyUsed alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST commonlyUsed draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST commonlyUsed references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT exemplarCity ( #PCDATA ) >
<!ATTLIST exemplarCity alt NMTOKENS #IMPLIED >
<!ATTLIST exemplarCity draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST exemplarCity references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT metazone ( alias | ( long*, short*, commonlyUsed*, special* ) ) >
<!ATTLIST metazone type CDATA #REQUIRED >
<!ATTLIST metazone alt NMTOKENS #IMPLIED >
<!ATTLIST metazone draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST metazone standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST metazone references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST metazone validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!-- ######################################################### -->

<!ELEMENT numbers ( alias | ( defaultNumberingSystem*, otherNumberingSystems*, minimumGroupingDigits*, symbols*, decimalFormats*, scientificFormats*, percentFormats*, currencyFormats*, currencies?, miscPatterns*, minimalPairs*, special* ) ) >
<!ATTLIST numbers alt NMTOKENS #IMPLIED >
<!ATTLIST numbers draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST numbers standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST numbers references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST numbers validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT defaultNumberingSystem ( #PCDATA ) >
<!ATTLIST defaultNumberingSystem alt NMTOKENS #IMPLIED >
<!ATTLIST defaultNumberingSystem draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST defaultNumberingSystem references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT otherNumberingSystems ( alias | ( native*, traditional*, finance*, special* ) ) >
<!ATTLIST otherNumberingSystems alt NMTOKENS #IMPLIED >
<!ATTLIST otherNumberingSystems draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT native ( #PCDATA ) >
<!ATTLIST native alt NMTOKENS #IMPLIED >
<!ATTLIST native draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->

<!ELEMENT traditional ( #PCDATA ) >
<!ATTLIST traditional alt NMTOKENS #IMPLIED >
<!ATTLIST traditional draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->

<!ELEMENT finance ( #PCDATA ) >
<!ATTLIST finance alt NMTOKENS #IMPLIED >
<!ATTLIST finance draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->

<!ELEMENT minimumGroupingDigits ( #PCDATA ) >
<!ATTLIST minimumGroupingDigits alt NMTOKENS #IMPLIED >
<!ATTLIST minimumGroupingDigits draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
<!ATTLIST minimumGroupingDigits references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT symbols ( alias | ( decimal*, group*, list*, percentSign*, nativeZeroDigit*, patternDigit*, plusSign*, minusSign*, exponential*, superscriptingExponent*, perMille*, infinity*, nan*, currencyDecimal*, currencyGroup*, timeSeparator*, special* ) ) >
<!ATTLIST symbols alt NMTOKENS #IMPLIED >
<!ATTLIST symbols draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST symbols standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST symbols references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST symbols validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST symbols numberSystem CDATA #IMPLIED >

<!ELEMENT decimal ( #PCDATA ) >
<!ATTLIST decimal alt NMTOKENS #IMPLIED >
<!ATTLIST decimal draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST decimal references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST decimal numberSystem CDATA #IMPLIED >
    <!--@DEPRECATED-->

<!ELEMENT group ( #PCDATA ) >
<!ATTLIST group alt NMTOKENS #IMPLIED >
<!ATTLIST group draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST group references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST group numberSystem CDATA #IMPLIED >
    <!--@DEPRECATED-->

<!ELEMENT list ( #PCDATA ) >
<!ATTLIST list alt NMTOKENS #IMPLIED >
<!ATTLIST list draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST list references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST list numberSystem CDATA #IMPLIED >
    <!--@DEPRECATED-->

<!ELEMENT percentSign ( #PCDATA ) >
<!ATTLIST percentSign alt NMTOKENS #IMPLIED >
<!ATTLIST percentSign draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST percentSign references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST percentSign numberSystem CDATA #IMPLIED >
    <!--@DEPRECATED-->

<!ELEMENT nativeZeroDigit ( #PCDATA ) >
    <!--@DEPRECATED-->
<!ATTLIST nativeZeroDigit alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST nativeZeroDigit draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST nativeZeroDigit references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST nativeZeroDigit numberSystem CDATA #IMPLIED >
    <!--@DEPRECATED-->

<!ELEMENT patternDigit ( #PCDATA ) >
    <!--@DEPRECATED-->
<!ATTLIST patternDigit alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST patternDigit draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST patternDigit references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST patternDigit numberSystem CDATA #IMPLIED >
    <!--@DEPRECATED-->

<!ELEMENT plusSign ( #PCDATA ) >
<!ATTLIST plusSign alt NMTOKENS #IMPLIED >
<!ATTLIST plusSign draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST plusSign references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST plusSign numberSystem CDATA #IMPLIED >
    <!--@DEPRECATED-->

<!ELEMENT minusSign ( #PCDATA ) >
<!ATTLIST minusSign alt NMTOKENS #IMPLIED >
<!ATTLIST minusSign draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST minusSign references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST minusSign numberSystem CDATA #IMPLIED >
    <!--@DEPRECATED-->

<!ELEMENT exponential ( #PCDATA ) >
<!ATTLIST exponential alt NMTOKENS #IMPLIED >
<!ATTLIST exponential draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST exponential references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST exponential numberSystem CDATA #IMPLIED >
    <!--@DEPRECATED-->

<!ELEMENT superscriptingExponent ( #PCDATA ) >
<!ATTLIST superscriptingExponent alt NMTOKENS #IMPLIED >
<!ATTLIST superscriptingExponent draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
<!ATTLIST superscriptingExponent references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT perMille ( #PCDATA ) >
<!ATTLIST perMille alt NMTOKENS #IMPLIED >
<!ATTLIST perMille draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST perMille references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST perMille numberSystem CDATA #IMPLIED >
    <!--@DEPRECATED-->

<!ELEMENT infinity ( #PCDATA ) >
<!ATTLIST infinity alt NMTOKENS #IMPLIED >
<!ATTLIST infinity draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST infinity references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST infinity numberSystem CDATA #IMPLIED >
    <!--@DEPRECATED-->

<!ELEMENT nan ( #PCDATA ) >
<!ATTLIST nan alt NMTOKENS #IMPLIED >
<!ATTLIST nan draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST nan references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST nan numberSystem CDATA #IMPLIED >
    <!--@DEPRECATED-->

<!ELEMENT currencyDecimal ( #PCDATA ) >
<!ATTLIST currencyDecimal alt NMTOKENS #IMPLIED >
<!ATTLIST currencyDecimal draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST currencyDecimal references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST currencyDecimal numberSystem CDATA #IMPLIED >
    <!--@DEPRECATED-->

<!ELEMENT currencyGroup ( #PCDATA ) >
<!ATTLIST currencyGroup alt NMTOKENS #IMPLIED >
<!ATTLIST currencyGroup draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST currencyGroup references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST currencyGroup numberSystem CDATA #IMPLIED >
    <!--@DEPRECATED-->

<!ELEMENT timeSeparator ( #PCDATA ) >
<!ATTLIST timeSeparator alt NMTOKENS #IMPLIED >
<!ATTLIST timeSeparator draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
<!ATTLIST timeSeparator references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT decimalFormats ( alias | ( default*, decimalFormatLength*, special* ) ) >
<!ATTLIST decimalFormats draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST decimalFormats validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST decimalFormats numberSystem CDATA #IMPLIED >

<!ELEMENT decimalFormatLength ( alias | ( default*, decimalFormat*, special* ) ) >
<!ATTLIST decimalFormatLength type (full | long | medium | short) #IMPLIED >
<!ATTLIST decimalFormatLength alt NMTOKENS #IMPLIED >
<!ATTLIST decimalFormatLength draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST decimalFormatLength standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST decimalFormatLength references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST decimalFormatLength validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT decimalFormat ( alias | ( pattern*, special* ) ) >
<!ATTLIST decimalFormat type NMTOKEN "standard" >
<!ATTLIST decimalFormat alt NMTOKENS #IMPLIED >
<!ATTLIST decimalFormat draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST decimalFormat standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST decimalFormat references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST decimalFormat validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT scientificFormats ( alias | ( default*, scientificFormatLength*, special* ) ) >
<!ATTLIST scientificFormats draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST scientificFormats validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST scientificFormats numberSystem CDATA #IMPLIED >

<!ELEMENT scientificFormatLength ( alias | ( default*, scientificFormat*, special* ) ) >
<!ATTLIST scientificFormatLength type (full | long | medium | short) #IMPLIED >
<!ATTLIST scientificFormatLength alt NMTOKENS #IMPLIED >
<!ATTLIST scientificFormatLength draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST scientificFormatLength standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST scientificFormatLength references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST scientificFormatLength validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT scientificFormat ( alias | ( pattern*, special* ) ) >
<!ATTLIST scientificFormat type NMTOKEN "standard" >
<!ATTLIST scientificFormat alt NMTOKENS #IMPLIED >
<!ATTLIST scientificFormat draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST scientificFormat standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST scientificFormat references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST scientificFormat validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT percentFormats ( alias | ( default*, percentFormatLength*, special* ) ) >
<!ATTLIST percentFormats draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST percentFormats validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST percentFormats numberSystem CDATA #IMPLIED >

<!ELEMENT percentFormatLength ( alias | ( default*, percentFormat*, special* ) ) >
<!ATTLIST percentFormatLength type (full | long | medium | short) #IMPLIED >
<!ATTLIST percentFormatLength alt NMTOKENS #IMPLIED >
<!ATTLIST percentFormatLength draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST percentFormatLength standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST percentFormatLength references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST percentFormatLength validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT percentFormat ( alias | ( pattern*, special* ) ) >
<!ATTLIST percentFormat type NMTOKEN "standard" >
<!ATTLIST percentFormat alt NMTOKENS #IMPLIED >
<!ATTLIST percentFormat draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST percentFormat standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST percentFormat references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST percentFormat validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT currencyFormats ( alias | ( default*, currencySpacing*, currencyFormatLength*, unitPattern*, special* ) ) >
<!ATTLIST currencyFormats draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST currencyFormats validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST currencyFormats numberSystem CDATA #IMPLIED >

<!ELEMENT currencySpacing ( alias | ( beforeCurrency*, afterCurrency*, special* ) ) >

<!ELEMENT beforeCurrency ( alias | ( currencyMatch*, surroundingMatch*, insertBetween*, special* ) ) >

<!ELEMENT currencyMatch ( #PCDATA ) >
<!ATTLIST currencyMatch alt NMTOKENS #IMPLIED >
<!ATTLIST currencyMatch draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST currencyMatch references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT surroundingMatch ( #PCDATA ) >
<!ATTLIST surroundingMatch alt NMTOKENS #IMPLIED >
<!ATTLIST surroundingMatch draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST surroundingMatch references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT insertBetween ( #PCDATA ) >
<!ATTLIST insertBetween alt NMTOKENS #IMPLIED >
<!ATTLIST insertBetween draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST insertBetween references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT afterCurrency ( alias | ( currencyMatch*, surroundingMatch*, insertBetween*, special* ) ) >

<!ELEMENT currencyFormatLength ( alias | ( default*, currencyFormat*, special* ) ) >
<!ATTLIST currencyFormatLength type (full | long | medium | short) #IMPLIED >
<!ATTLIST currencyFormatLength alt NMTOKENS #IMPLIED >
<!ATTLIST currencyFormatLength draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST currencyFormatLength standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST currencyFormatLength references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST currencyFormatLength validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT currencyFormat ( alias | ( pattern*, special* ) ) >
<!ATTLIST currencyFormat type NMTOKEN "standard" >
<!ATTLIST currencyFormat alt NMTOKENS #IMPLIED >
<!ATTLIST currencyFormat draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST currencyFormat standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST currencyFormat references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST currencyFormat validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT unitPattern ( #PCDATA ) >
<!ATTLIST unitPattern count (0 | 1 | zero | one | two | few | many | other) #REQUIRED >
<!ATTLIST unitPattern alt NMTOKENS #IMPLIED >
<!ATTLIST unitPattern draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
<!ATTLIST unitPattern references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST unitPattern validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT currencies ( alias | ( default?, currency*, special* ) ) >
<!ATTLIST currencies draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST currencies validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT currency ( alias | ( ( ( pattern+, displayName*, symbol* ) | ( displayName+, symbol*, pattern* ) | ( symbol+, pattern* ) )?, decimal*, group*, special* ) ) >

<!-- # warning: pattern appears twice in the above. The first is for consistency with all other cases of
    pattern + displayName; the second is for backwards compatibility -->
<!ATTLIST currency type NMTOKEN "standard" >
<!ATTLIST currency alt NMTOKENS #IMPLIED >
<!ATTLIST currency draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST currency references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST currency validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT symbol ( #PCDATA ) >
<!ATTLIST symbol choice (true | false) #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST symbol alt NMTOKENS #IMPLIED >
<!ATTLIST symbol draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST symbol references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT miscPatterns ( alias | ( default*, pattern*, special* ) ) >
<!ATTLIST miscPatterns draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST miscPatterns numberSystem CDATA #IMPLIED >

<!ELEMENT minimalPairs ( alias | ( pluralMinimalPairs*, ordinalMinimalPairs*, special* ) ) >
<!ATTLIST minimalPairs alt NMTOKENS #IMPLIED >
<!ATTLIST minimalPairs draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT pluralMinimalPairs ( #PCDATA ) >
<!ATTLIST pluralMinimalPairs count NMTOKEN #IMPLIED >
<!ATTLIST pluralMinimalPairs alt NMTOKENS #IMPLIED >
<!ATTLIST pluralMinimalPairs draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->

<!ELEMENT ordinalMinimalPairs ( #PCDATA ) >
<!ATTLIST ordinalMinimalPairs ordinal NMTOKEN #IMPLIED >
<!ATTLIST ordinalMinimalPairs alt NMTOKENS #IMPLIED >
<!ATTLIST ordinalMinimalPairs draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->

<!-- ######################################################### -->

<!ELEMENT units ( alias | ( unit*, unitLength*, durationUnit*, special* ) ) >
<!ATTLIST units alt NMTOKENS #IMPLIED >
<!ATTLIST units draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST units references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST units validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT unit ( alias | ( displayName*, unitPattern*, perUnitPattern*, special* ) ) >
<!ATTLIST unit type NMTOKEN #REQUIRED >
<!ATTLIST unit alt NMTOKENS #IMPLIED >
<!ATTLIST unit draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST unit references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST unit validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT perUnitPattern ( #PCDATA ) >
<!ATTLIST perUnitPattern alt NMTOKENS #IMPLIED >
<!ATTLIST perUnitPattern draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
<!ATTLIST perUnitPattern references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT unitLength ( alias | ( compoundUnit*, unit*, coordinateUnit*, special* ) ) >
<!ATTLIST unitLength type (long | short | narrow) #REQUIRED >
<!ATTLIST unitLength alt NMTOKENS #IMPLIED >
<!ATTLIST unitLength draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST unitLength references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST unitLength validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT compoundUnit ( alias | ( compoundUnitPattern*, special* ) ) >
<!ATTLIST compoundUnit type NMTOKEN #REQUIRED >
<!ATTLIST compoundUnit alt NMTOKENS #IMPLIED >
<!ATTLIST compoundUnit draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST compoundUnit references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST compoundUnit validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT compoundUnitPattern ( #PCDATA ) >
<!ATTLIST compoundUnitPattern alt NMTOKENS #IMPLIED >
<!ATTLIST compoundUnitPattern draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
<!ATTLIST compoundUnitPattern references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST compoundUnitPattern validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT coordinateUnit ( alias | ( coordinateUnitPattern*, special* ) ) >
<!ATTLIST coordinateUnit alt NMTOKENS #IMPLIED >
<!ATTLIST coordinateUnit draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT coordinateUnitPattern ( #PCDATA ) >
<!ATTLIST coordinateUnitPattern type (north | east | south | west) #REQUIRED >
<!ATTLIST coordinateUnitPattern alt NMTOKENS #IMPLIED >
<!ATTLIST coordinateUnitPattern draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->

<!ELEMENT durationUnit ( alias | ( durationUnitPattern*, special* ) ) >
<!ATTLIST durationUnit type NMTOKEN #REQUIRED >
<!ATTLIST durationUnit alt NMTOKENS #IMPLIED >
<!ATTLIST durationUnit draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST durationUnit references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT durationUnitPattern ( #PCDATA ) >
<!ATTLIST durationUnitPattern alt NMTOKENS #IMPLIED >
<!ATTLIST durationUnitPattern draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
<!ATTLIST durationUnitPattern references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST durationUnitPattern validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT listPatterns ( alias | ( listPattern*, special* ) ) >
<!ATTLIST listPatterns alt NMTOKENS #IMPLIED >
<!ATTLIST listPatterns draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST listPatterns references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST listPatterns validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT listPattern ( alias | ( listPatternPart*, special* ) ) >
<!ATTLIST listPattern type NMTOKEN #IMPLIED >
<!ATTLIST listPattern alt NMTOKENS #IMPLIED >
<!ATTLIST listPattern draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST listPattern references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST listPattern validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT listPatternPart ( #PCDATA ) >
<!ATTLIST listPatternPart type (start | middle | end | 2 | 3) #REQUIRED >
<!ATTLIST listPatternPart alt NMTOKENS #IMPLIED >
<!ATTLIST listPatternPart draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
<!ATTLIST listPatternPart references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST listPatternPart validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!-- ######################################################### -->

<!ELEMENT collations ( alias | ( defaultCollation?, default*, collation*, special* ) ) >
<!ATTLIST collations version NMTOKEN #IMPLIED >
    <!--@METADATA-->
<!ATTLIST collations draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!-- should be DEPRECATED, but needs some cleanup first -->
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST collations validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT defaultCollation ( #PCDATA ) >
<!ATTLIST defaultCollation alt NMTOKENS #IMPLIED >
<!ATTLIST defaultCollation draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->

<!ELEMENT collation ( alias | ( base?, import*, settings?, suppress_contractions?, optimize?, ( cr* | rules? ), special* ) ) >
<!ATTLIST collation type NMTOKEN "standard" >
<!ATTLIST collation visibility (internal | external) #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST collation alt NMTOKENS #IMPLIED >
<!ATTLIST collation draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
<!ATTLIST collation standard CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST collation references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST collation validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT base ( alias | special ) >
    <!--@ORDERED-->
    <!--@DEPRECATED-->

<!ELEMENT import EMPTY >
    <!-- deprecated, see CLDR ticket #8289 -->
    <!--@DEPRECATED-->
<!ATTLIST import source CDATA #REQUIRED >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST import type CDATA #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST import draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST import references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT settings ( special* ) >
    <!-- deprecated, see CLDR ticket #8289 -->
    <!--@ORDERED-->
    <!--@DEPRECATED-->
<!ATTLIST settings strength (primary | secondary | tertiary | quaternary | identical) #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST settings alternate (non-ignorable | shifted) #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST settings backwards (on | off) #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST settings normalization (on | off) #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST settings caseLevel (on | off) #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST settings caseFirst (upper | lower | off) #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST settings hiraganaQuarternary (on | off) #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST settings hiraganaQuaternary (on | off) #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST settings maxVariable (space | punct | symbol | currency) #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST settings numeric (on | off) #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST settings private (true | false) #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST settings variableTop CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST settings reorder NMTOKENS #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT suppress_contractions ( #PCDATA | cp )* >
    <!-- deprecated, see CLDR ticket #8289 -->
    <!--@ORDERED-->
    <!--@DEPRECATED-->

<!ELEMENT optimize ( #PCDATA | cp )* >
    <!-- deprecated, see CLDR ticket #8289 -->
    <!--@ORDERED-->
    <!--@DEPRECATED-->

<!ELEMENT cr ( #PCDATA ) >
<!ATTLIST cr alt NMTOKENS #IMPLIED >
<!ATTLIST cr draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
<!ATTLIST cr references CDATA #IMPLIED >
    <!--@METADATA-->

<!-- # Use the cr element instead, with ICU syntax. -->

<!ELEMENT rules ( alias | ( ( reset | import ), ( reset | import | p | pc | s | sc | t | tc | q | qc | i | ic | x )* ) ) >
    <!--@ORDERED-->
    <!--@DEPRECATED-->

<!ELEMENT reset ( #PCDATA | cp | first_variable | last_variable | first_tertiary_ignorable | last_tertiary_ignorable | first_secondary_ignorable | last_secondary_ignorable | first_primary_ignorable | last_primary_ignorable | first_non_ignorable | last_non_ignorable | first_trailing | last_trailing )* >
    <!--@ORDERED-->
    <!--@DEPRECATED-->
<!ATTLIST reset before NMTOKEN #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT first_variable EMPTY >
    <!--@DEPRECATED-->

<!ELEMENT last_variable EMPTY >
    <!--@DEPRECATED-->

<!ELEMENT first_tertiary_ignorable EMPTY >
    <!--@DEPRECATED-->

<!ELEMENT last_tertiary_ignorable EMPTY >
    <!--@ORDERED-->
    <!--@DEPRECATED-->

<!ELEMENT first_secondary_ignorable EMPTY >
    <!--@DEPRECATED-->

<!ELEMENT last_secondary_ignorable EMPTY >
    <!--@ORDERED-->
    <!--@DEPRECATED-->

<!ELEMENT first_primary_ignorable EMPTY >
    <!--@DEPRECATED-->

<!ELEMENT last_primary_ignorable EMPTY >
    <!--@DEPRECATED-->

<!ELEMENT first_non_ignorable EMPTY >
    <!--@DEPRECATED-->

<!ELEMENT last_non_ignorable EMPTY >
    <!--@ORDERED-->
    <!--@DEPRECATED-->

<!ELEMENT first_trailing EMPTY >
    <!--@DEPRECATED-->

<!ELEMENT last_trailing EMPTY >
    <!--@DEPRECATED-->

<!ELEMENT p ( #PCDATA | cp | last_variable )* >
    <!--@ORDERED-->
    <!--@DEPRECATED-->

<!ELEMENT pc ( #PCDATA | cp | last_variable )* >
    <!--@ORDERED-->
    <!--@DEPRECATED-->

<!ELEMENT s ( #PCDATA | cp | last_variable )* >
    <!--@ORDERED-->
    <!--@DEPRECATED-->

<!ELEMENT sc ( #PCDATA | cp | last_variable )* >
    <!--@ORDERED-->
    <!--@DEPRECATED-->

<!ELEMENT t ( #PCDATA | cp | last_variable )* >
    <!--@ORDERED-->
    <!--@DEPRECATED-->

<!ELEMENT tc ( #PCDATA | cp | last_variable )* >
    <!--@ORDERED-->
    <!--@DEPRECATED-->

<!ELEMENT q ( #PCDATA | cp | last_variable )* >
    <!--@DEPRECATED-->

<!ELEMENT qc ( #PCDATA | cp | last_variable )* >
    <!--@DEPRECATED-->

<!ELEMENT i ( #PCDATA | cp | last_variable )* >
    <!--@ORDERED-->
    <!--@DEPRECATED-->

<!ELEMENT ic ( #PCDATA | cp | last_variable )* >
    <!--@ORDERED-->
    <!--@DEPRECATED-->

<!ELEMENT x ( context?, ( p | pc | s | sc | t | tc | q | qc | i | ic )*, extend? ) >
    <!--@ORDERED-->
    <!--@DEPRECATED-->

<!ELEMENT context ( #PCDATA | cp )* >
    <!--@ORDERED-->
    <!--@DEPRECATED-->

<!ELEMENT extend ( #PCDATA | cp )* >
    <!--@ORDERED-->
    <!--@DEPRECATED-->

<!-- ######################################################### -->

<!ELEMENT posix ( alias | ( messages*, special* ) ) >
<!ATTLIST posix draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST posix references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST posix validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT messages ( alias | ( yesstr*, nostr*, yesexpr*, noexpr*, special* ) ) >
<!ATTLIST messages alt NMTOKENS #IMPLIED >
<!ATTLIST messages draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST messages references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST messages validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT yesstr ( #PCDATA ) >
<!ATTLIST yesstr alt NMTOKENS #IMPLIED >
<!ATTLIST yesstr draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST yesstr references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT nostr ( #PCDATA ) >
<!ATTLIST nostr alt NMTOKENS #IMPLIED >
<!ATTLIST nostr draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST nostr references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT yesexpr ( #PCDATA ) >
    <!--@DEPRECATED-->
<!ATTLIST yesexpr alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST yesexpr draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST yesexpr references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT noexpr ( #PCDATA ) >
    <!--@DEPRECATED-->
<!ATTLIST noexpr alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST noexpr draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST noexpr references CDATA #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT characterLabels ( alias | ( characterLabelPattern*, characterLabel*, special* ) ) >

<!ELEMENT characterLabelPattern ( #PCDATA ) >
<!ATTLIST characterLabelPattern type NMTOKEN #REQUIRED >
<!ATTLIST characterLabelPattern count (0 | 1 | zero | one | two | few | many | other) #IMPLIED >
    <!-- count only used for certain patterns" -->
<!ATTLIST characterLabelPattern alt NMTOKENS #IMPLIED >
<!ATTLIST characterLabelPattern draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->

<!ELEMENT characterLabel ( #PCDATA ) >
<!ATTLIST characterLabel type NMTOKEN #REQUIRED >
<!ATTLIST characterLabel alt NMTOKENS #IMPLIED >
<!ATTLIST characterLabel draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->

<!ELEMENT segmentations ( alias | ( segmentation*, special* ) ) >
<!ATTLIST segmentations alt NMTOKENS #IMPLIED >
<!ATTLIST segmentations draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST segmentations references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST segmentations validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT segmentation ( alias | ( variables?, segmentRules?, exceptions?, suppressions? ) | special* ) >
<!ATTLIST segmentation type NMTOKEN #REQUIRED >
<!ATTLIST segmentation alt NMTOKENS #IMPLIED >
<!ATTLIST segmentation draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST segmentation references CDATA #IMPLIED >
    <!--@METADATA-->
<!ATTLIST segmentation validSubLocales CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->

<!ELEMENT variables ( alias | ( variable*, special* ) ) >

<!ELEMENT variable ( #PCDATA ) >
    <!--@ORDERED-->
<!ATTLIST variable id CDATA #REQUIRED >
<!ATTLIST variable alt NMTOKENS #IMPLIED >
<!ATTLIST variable draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST variable references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT segmentRules ( alias | ( rule*, special* ) ) >

<!ELEMENT rule ( #PCDATA ) >
<!ATTLIST rule id NMTOKEN #REQUIRED >
<!ATTLIST rule alt NMTOKENS #IMPLIED >
<!ATTLIST rule draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->
<!ATTLIST rule references CDATA #IMPLIED >
    <!--@METADATA-->

<!ELEMENT exceptions ( exception* ) >
    <!-- use suppressions instead -->
    <!--@DEPRECATED-->

<!ELEMENT exception ( #PCDATA ) >
    <!--@ORDERED-->
    <!--@DEPRECATED-->
<!ATTLIST exception draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT suppressions ( alias | ( suppression*, special* ) ) >
<!ATTLIST suppressions type NMTOKEN "standard" >
<!ATTLIST suppressions draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT suppression ( #PCDATA ) >
    <!--@ORDERED-->
<!ATTLIST suppression alt NMTOKENS #IMPLIED >
<!ATTLIST suppression draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->

<!ELEMENT rbnf ( alias | ( rulesetGrouping*, special* ) ) >

<!ELEMENT rulesetGrouping ( alias | ( ruleset*, special* ) ) >
<!ATTLIST rulesetGrouping type NMTOKEN #REQUIRED >
<!ATTLIST rulesetGrouping draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT ruleset ( alias | ( rbnfrule*, special* ) ) >
    <!--@ORDERED-->
<!ATTLIST ruleset type NMTOKEN #REQUIRED >
<!ATTLIST ruleset access (public | private) #IMPLIED >
    <!--@VALUE-->
<!ATTLIST ruleset allowsParsing (true | false) #IMPLIED >
    <!--@VALUE-->
<!ATTLIST ruleset draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT rbnfrule ( #PCDATA ) >
    <!--@ORDERED-->
<!ATTLIST rbnfrule value CDATA #REQUIRED >
    <!--@VALUE-->
<!ATTLIST rbnfrule radix CDATA #IMPLIED >
    <!--@VALUE-->
<!ATTLIST rbnfrule decexp CDATA #IMPLIED >
    <!--@VALUE-->
<!ATTLIST rbnfrule alt NMTOKENS #IMPLIED >
<!ATTLIST rbnfrule draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED:true, false-->

<!ELEMENT annotations ( alias | ( annotation*, special* ) ) >

<!ELEMENT annotation ( #PCDATA ) >
<!ATTLIST annotation cp CDATA #REQUIRED >
<!ATTLIST annotation tts CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST annotation type (tts) #IMPLIED >
<!ATTLIST annotation alt NMTOKENS #IMPLIED >
<!ATTLIST annotation draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->

<!-- ######################################################### -->
<!-- # This element contains metadata for Survey Tool internal use (optimization, etc). -->

<!ELEMENT metadata ( alias | ( casingData?, special* ) ) >
    <!--@METADATA-->

<!ELEMENT casingData ( alias | ( casingItem*, special* ) ) >
    <!--@METADATA-->

<!ELEMENT casingItem ( #PCDATA ) >
<!ATTLIST casingItem type CDATA #REQUIRED >
<!ATTLIST casingItem override (true | false) #IMPLIED >
    <!--@VALUE-->
<!ATTLIST casingItem forceError (true | false) #IMPLIED >
    <!--@VALUE-->
<!ATTLIST casingItem alt NMTOKENS #IMPLIED >
<!ATTLIST casingItem draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
    <!--@METADATA-->

<!ELEMENT references ( reference* ) >
    <!--@METADATA-->
    <!--@DEPRECATED-->

<!ELEMENT reference ( #PCDATA ) >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST reference type NMTOKEN #REQUIRED >
    <!--@DEPRECATED-->
<!ATTLIST reference uri CDATA #IMPLIED >
    <!--@VALUE-->
    <!--@DEPRECATED-->
<!ATTLIST reference alt NMTOKENS #IMPLIED >
    <!--@DEPRECATED-->
<!ATTLIST reference draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
<!ATTLIST reference standard (true | false) #IMPLIED >
    <!--@METADATA-->
    <!--@DEPRECATED-->
