1*b1cdbd2cSJim Jagielski<?xml version="1.0" encoding="UTF-8"?> 2*b1cdbd2cSJim Jagielski<!--*********************************************************** 3*b1cdbd2cSJim Jagielski * 4*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 5*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 6*b1cdbd2cSJim Jagielski * distributed with this work for additional information 7*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 8*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 9*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 10*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 11*b1cdbd2cSJim Jagielski * 12*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 13*b1cdbd2cSJim Jagielski * 14*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 15*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 16*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 17*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 18*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 19*b1cdbd2cSJim Jagielski * under the License. 20*b1cdbd2cSJim Jagielski * 21*b1cdbd2cSJim Jagielski ***********************************************************--> 22*b1cdbd2cSJim Jagielski<!-- ............................................................... --> 23*b1cdbd2cSJim Jagielski<!-- Locale data specification DTD ................................. --> 24*b1cdbd2cSJim Jagielski<!-- ............................................................... --> 25*b1cdbd2cSJim Jagielski 26*b1cdbd2cSJim Jagielski<!-- 27*b1cdbd2cSJim Jagielski =========================================================================== 28*b1cdbd2cSJim Jagielski ATTENTION! PLEASE! HEADS UP! IMPORTANT! 29*b1cdbd2cSJim Jagielski =========================================================================== 30*b1cdbd2cSJim Jagielski 31*b1cdbd2cSJim Jagielski Please validate your locale data contribution using a validating parser. A 32*b1cdbd2cSJim Jagielski validating parser, for example, may be found at 33*b1cdbd2cSJim Jagielski http://unicode.org/cldr/data/tools/java/org/unicode/cldr/util/XMLValidator.java 34*b1cdbd2cSJim Jagielski Compile it into a class-jar and call it in the 35*b1cdbd2cSJim Jagielski i18npool/source/localedata/data/ directory: 36*b1cdbd2cSJim Jagielski java -cp <your_path>/XMLValidator.jar org.unicode.cldr.util.XMLValidator your_data.xml 37*b1cdbd2cSJim Jagielski 38*b1cdbd2cSJim Jagielski 39*b1cdbd2cSJim Jagielski A second possiblity is: 40*b1cdbd2cSJim Jagielski 41*b1cdbd2cSJim Jagielski - temporarily (!) change the DOCTYPE of your file to read (all on one line) 42*b1cdbd2cSJim Jagielski <!DOCTYPE Locale SYSTEM "http://hg.services.openoffice.org/DEV300/raw-file/tip/i18npool/source/localedata/data/locale.dtd"> 43*b1cdbd2cSJim Jagielski 44*b1cdbd2cSJim Jagielski - upload it to the form available at http://www.validome.org/ 45*b1cdbd2cSJim Jagielski 46*b1cdbd2cSJim Jagielski This will validate the file against the HEAD revision of locale.dtd on the 47*b1cdbd2cSJim Jagielski DEV300 development code line, for other revisions you'll have to specify 48*b1cdbd2cSJim Jagielski the corresponding tags or cws branch instead. For example, to validate 49*b1cdbd2cSJim Jagielski against a modified locale.dtd in CWS locales33 you would use 50*b1cdbd2cSJim Jagielski 51*b1cdbd2cSJim Jagielski <!DOCTYPE Locale SYSTEM "http://hg.services.openoffice.org/cws/locales33/raw-file/tip/i18npool/source/localedata/data/locale.dtd"> 52*b1cdbd2cSJim Jagielski 53*b1cdbd2cSJim Jagielski 54*b1cdbd2cSJim Jagielski Please test locale data files either in a non-product (!) build, which 55*b1cdbd2cSJim Jagielski implements some checks and pops up assertion message boxes if the tests 56*b1cdbd2cSJim Jagielski fail, or by setting the environment variable OOO_ENABLE_LOCALE_DATA_CHECKS 57*b1cdbd2cSJim Jagielski to 'Y' or 'Yes' (or any other string starting with 'Y') or '1' before 58*b1cdbd2cSJim Jagielski starting the application, which outputs the same messages to stderr and 59*b1cdbd2cSJim Jagielski also works in a product build. 60*b1cdbd2cSJim Jagielski 61*b1cdbd2cSJim Jagielski Then follow this procedure: 62*b1cdbd2cSJim Jagielski 1. Create a new spreadsheet document. 63*b1cdbd2cSJim Jagielski 2. On a cell use context menu -> Format Cells -> Numbers. 64*b1cdbd2cSJim Jagielski 3. Select the locale in the Language list box => MUST be assertion free. 65*b1cdbd2cSJim Jagielski 3.a. Assertions are only shown at the very first time a number formatter 66*b1cdbd2cSJim Jagielski is created, respectively the first time a specific locale data is 67*b1cdbd2cSJim Jagielski used. To repeat steps 1.-3. you'd need to create another spreadsheet 68*b1cdbd2cSJim Jagielski document. 69*b1cdbd2cSJim Jagielski 70*b1cdbd2cSJim Jagielski =========================================================================== 71*b1cdbd2cSJim Jagielski NOTE the FormatElement comments further down. 72*b1cdbd2cSJim Jagielski =========================================================================== 73*b1cdbd2cSJim Jagielski 74*b1cdbd2cSJim Jagielski--> 75*b1cdbd2cSJim Jagielski 76*b1cdbd2cSJim Jagielski<!-- ............................................................... --> 77*b1cdbd2cSJim Jagielski<!-- Entities for characters and symbols ........................... --> 78*b1cdbd2cSJim Jagielski 79*b1cdbd2cSJim Jagielski<!ENTITY % UNOModule 80*b1cdbd2cSJim Jagielski 'unoid CDATA #IMPLIED'> 81*b1cdbd2cSJim Jagielski 82*b1cdbd2cSJim Jagielski<!ENTITY % MessageID 83*b1cdbd2cSJim Jagielski 'msgid CDATA #REQUIRED'> 84*b1cdbd2cSJim Jagielski 85*b1cdbd2cSJim Jagielski<!ENTITY % RefLocale 86*b1cdbd2cSJim Jagielski 'ref CDATA #IMPLIED'> 87*b1cdbd2cSJim Jagielski<!-- Where given, an element can be inherited from another locale, e.g. 88*b1cdbd2cSJim Jagielski ref="en_US" --> 89*b1cdbd2cSJim Jagielski 90*b1cdbd2cSJim Jagielski<!ENTITY % LIBModule 91*b1cdbd2cSJim Jagielski 'module CDATA #IMPLIED'> 92*b1cdbd2cSJim Jagielski<!-- The locale referred to for the sub categories, implementation detail. --> 93*b1cdbd2cSJim Jagielski 94*b1cdbd2cSJim Jagielski<!ENTITY % replaceFrom 'replaceFrom CDATA #IMPLIED'> 95*b1cdbd2cSJim Jagielski<!ENTITY % replaceTo 'replaceTo CDATA #IMPLIED'> 96*b1cdbd2cSJim Jagielski<!-- See below for the LC_FORMAT element. --> 97*b1cdbd2cSJim Jagielski 98*b1cdbd2cSJim Jagielski<!ELEMENT DefaultName (#PCDATA)> 99*b1cdbd2cSJim Jagielski 100*b1cdbd2cSJim Jagielski<!-- Locale is made of different sub categories --> 101*b1cdbd2cSJim Jagielski<!ELEMENT Locale (LC_INFO, LC_CTYPE, LC_FORMAT, LC_FORMAT_1?, LC_COLLATION, LC_SEARCH, LC_INDEX, LC_CALENDAR, LC_CURRENCY, LC_TRANSLITERATION, LC_MISC, LC_NumberingLevel, LC_OutLineNumberingLevel)> 102*b1cdbd2cSJim Jagielski<!ATTLIST Locale versionDTD CDATA #FIXED "2.0.3"> 103*b1cdbd2cSJim Jagielski<!-- Version identifier to prevent mismatching data files being submitted 104*b1cdbd2cSJim Jagielski because of older files being copied as templates. The version should be 105*b1cdbd2cSJim Jagielski less than or equal to the OOo release, or the OOo release number plus some 106*b1cdbd2cSJim Jagielski extension, like "2.0.enhanced", to be able to easily determine the 107*b1cdbd2cSJim Jagielski corresponding OOo version. New versions of the DTD with new required 108*b1cdbd2cSJim Jagielski elements SHOULD REALLY result in a new versionDTD here and 109*b1cdbd2cSJim Jagielski LOCALE_VERSION_DTD in ../LocaleNode.cxx, and *.xml files MUST be adapted 110*b1cdbd2cSJim Jagielski then, otherwise building the data or checking it with a validating parser 111*b1cdbd2cSJim Jagielski will throw an error. 112*b1cdbd2cSJim Jagielski--> 113*b1cdbd2cSJim Jagielski<!ATTLIST Locale allowUpdateFromCLDR (yes|no) #REQUIRED> 114*b1cdbd2cSJim Jagielski<!-- Whether some data elements may be (automatically) updated from the Common 115*b1cdbd2cSJim Jagielski Locale Data Repository, see http://cldr.unicode.org/ 116*b1cdbd2cSJim Jagielski Note: This mechanism currently (2010-02-21) is outdated. 117*b1cdbd2cSJim Jagielski--> 118*b1cdbd2cSJim Jagielski<!ATTLIST Locale version CDATA #REQUIRED> 119*b1cdbd2cSJim Jagielski<!-- Valid number, may designate versioned data --> 120*b1cdbd2cSJim Jagielski 121*b1cdbd2cSJim Jagielski 122*b1cdbd2cSJim Jagielski<!ELEMENT LC_INFO (Language, Country, Platform?, Variant?)> 123*b1cdbd2cSJim Jagielski 124*b1cdbd2cSJim Jagielski<!ELEMENT Language (LangID, DefaultName) > 125*b1cdbd2cSJim Jagielski<!ELEMENT LangID (#PCDATA) > 126*b1cdbd2cSJim Jagielski<!-- LangID must be a valid two or three letter language identifier defined by 127*b1cdbd2cSJim Jagielski ISO 639. Use ISO 639-1 two letter code where available, else ISO 639-2 or 128*b1cdbd2cSJim Jagielski 639-3 three letter code. 129*b1cdbd2cSJim Jagielski--> 130*b1cdbd2cSJim Jagielski 131*b1cdbd2cSJim Jagielski<!ELEMENT Country (CountryID, DefaultName) > 132*b1cdbd2cSJim Jagielski<!ELEMENT CountryID (#PCDATA) > 133*b1cdbd2cSJim Jagielski<!-- CountryID must be a valid two letter country identifier defined by ISO 3166. --> 134*b1cdbd2cSJim Jagielski 135*b1cdbd2cSJim Jagielski<!ELEMENT Platform (PlatformID) > 136*b1cdbd2cSJim Jagielski<!ELEMENT PlatformID (#PCDATA) > 137*b1cdbd2cSJim Jagielski<!-- Unused, deprecated, can be generic|unix|win32|macos, best Platform element 138*b1cdbd2cSJim Jagielski be absent. 139*b1cdbd2cSJim Jagielski--> 140*b1cdbd2cSJim Jagielski 141*b1cdbd2cSJim Jagielski<!ELEMENT Variant (#PCDATA) > 142*b1cdbd2cSJim Jagielski<!-- Reserved for future use, currently unused. --> 143*b1cdbd2cSJim Jagielski 144*b1cdbd2cSJim Jagielski 145*b1cdbd2cSJim Jagielski<!-- The LC_FORMAT element contains number format codes and may actually appear 146*b1cdbd2cSJim Jagielski twice (with the second ocurrence named LC_FORMAT_1). One section is 147*b1cdbd2cSJim Jagielski mandatory and MUST contain at least all required format codes 148*b1cdbd2cSJim Jagielski formatindex="0" to formatindex="47", MUST NOT contain formatindex 48 and 149*b1cdbd2cSJim Jagielski 49, and MAY contain other format codes. See below ATTLIST FormatElement 150*b1cdbd2cSJim Jagielski formatindex. 151*b1cdbd2cSJim Jagielski 152*b1cdbd2cSJim Jagielski A second LC_FORMAT_1 section may follow containing other format codes. The 153*b1cdbd2cSJim Jagielski difference between the two sections is that they are inherited 154*b1cdbd2cSJim Jagielski independently if a locale uses the RefLocale mechanism (ref="..."). This 155*b1cdbd2cSJim Jagielski may be used to not offer locale dependent format codes to other locales 156*b1cdbd2cSJim Jagielski that otherwise inherit the format codes. 157*b1cdbd2cSJim Jagielski 158*b1cdbd2cSJim Jagielski--> 159*b1cdbd2cSJim Jagielski<!ELEMENT LC_FORMAT (FormatElement*) > 160*b1cdbd2cSJim Jagielski<!-- All FormatElement elements must be given if the RefLocale mechanism is not used! --> 161*b1cdbd2cSJim Jagielski<!ATTLIST LC_FORMAT %RefLocale;> 162*b1cdbd2cSJim Jagielski<!ATTLIST LC_FORMAT %replaceFrom;> 163*b1cdbd2cSJim Jagielski<!-- Define placeholder for currency code, usually "[CURRENCY]" --> 164*b1cdbd2cSJim Jagielski<!ATTLIST LC_FORMAT %replaceTo;> 165*b1cdbd2cSJim Jagielski<!-- Currency code to be used to replace the placeholder, e.g. "[$R-1C09]". 166*b1cdbd2cSJim Jagielski Note: The brackets and the leading $ character are mandatory, the 167*b1cdbd2cSJim Jagielski hyphen-minus separates the currency symbol from the hexagesimal MS-LCID, 168*b1cdbd2cSJim Jagielski letters contained in the LCID have to be in upper case, leading zeros are 169*b1cdbd2cSJim Jagielski to be omitted. LCIDs are defined in i18npool/inc/i18npool/lang.h 170*b1cdbd2cSJim Jagielski--> 171*b1cdbd2cSJim Jagielski 172*b1cdbd2cSJim Jagielski<!ELEMENT LC_FORMAT_1 (FormatElement*) > 173*b1cdbd2cSJim Jagielski<!ATTLIST LC_FORMAT_1 %RefLocale;> 174*b1cdbd2cSJim Jagielski<!ATTLIST LC_FORMAT_1 %replaceFrom;> 175*b1cdbd2cSJim Jagielski<!ATTLIST LC_FORMAT_1 %replaceTo;> 176*b1cdbd2cSJim Jagielski 177*b1cdbd2cSJim Jagielski<!ELEMENT FormatElement ( FormatCode, DefaultName?)> 178*b1cdbd2cSJim Jagielski<!ATTLIST FormatElement %MessageID;> 179*b1cdbd2cSJim Jagielski<!ATTLIST FormatElement default (true|false) #REQUIRED > 180*b1cdbd2cSJim Jagielski<!ATTLIST FormatElement type (short|medium|long) #REQUIRED > 181*b1cdbd2cSJim Jagielski<!-- 182*b1cdbd2cSJim Jagielski There may be up to three groups (type="short", type="medium", type="long") 183*b1cdbd2cSJim Jagielski for each usage category defined. Each group, if defined, needs excactly one 184*b1cdbd2cSJim Jagielski default. The type roughly determines the display string length, for example 185*b1cdbd2cSJim Jagielski short, medium, and long date formats. 186*b1cdbd2cSJim Jagielski 187*b1cdbd2cSJim Jagielski The number formatter determines an ultimate default format of a specific 188*b1cdbd2cSJim Jagielski usage category by looking at the medium, long, and short default formats, 189*b1cdbd2cSJim Jagielski in that very particular order. 190*b1cdbd2cSJim Jagielski--> 191*b1cdbd2cSJim Jagielski<!ATTLIST FormatElement usage (FIXED_NUMBER|FRACTION_NUMBER|PERCENT_NUMBER|SCIENTIFIC_NUMBER|CURRENCY|DATE|TIME|DATE_TIME) #REQUIRED > 192*b1cdbd2cSJim Jagielski<!ATTLIST FormatElement formatindex CDATA #REQUIRED> 193*b1cdbd2cSJim Jagielski<!-- 194*b1cdbd2cSJim Jagielski The following FormatElements must follow specific rules: 195*b1cdbd2cSJim Jagielski 196*b1cdbd2cSJim Jagielski All: 197*b1cdbd2cSJim Jagielski The format indices 0..49 are reserved and, for backwards compatibility, 198*b1cdbd2cSJim Jagielski MUST be used as stated in 199*b1cdbd2cSJim Jagielski offapi/com/sun/star/i18n/NumberFormatIndex.idl. 200*b1cdbd2cSJim Jagielski Note that indices 10 ("# ?/?"), 11 ("# ??/??"), 48 (BOOLEAN) and 49 (@ 201*b1cdbd2cSJim Jagielski Text) are generated internally, as they aren't locale dependent, and 202*b1cdbd2cSJim Jagielski must not be used in locale data XML files. All other formats have to be 203*b1cdbd2cSJim Jagielski present. 204*b1cdbd2cSJim Jagielski 205*b1cdbd2cSJim Jagielski Note also that "must be used as stated" does not mean that the format 206*b1cdbd2cSJim Jagielski codes must be identical, of course the meaning of a format code should 207*b1cdbd2cSJim Jagielski match, for example en_US MM/DD/YY matches de_DE DD.MM.YY 208*b1cdbd2cSJim Jagielski Just imagine the same index being used with another locale shouldn't 209*b1cdbd2cSJim Jagielski change the meaning of representation significantly. 210*b1cdbd2cSJim Jagielski 211*b1cdbd2cSJim Jagielski You'll notice differences of non-matching format codes only if 212*b1cdbd2cSJim Jagielski documents use the Default language in number formats and either are 213*b1cdbd2cSJim Jagielski stored in old SO5 binary file format and loaded on another system where 214*b1cdbd2cSJim Jagielski languages/locales aren't the same, or if the default locale is switched 215*b1cdbd2cSJim Jagielski under menu Tools.Options.LanguageSettings.Languages.LocaleSetting 216*b1cdbd2cSJim Jagielski dialog, which exchanges formats on the fly in the spreadsheet 217*b1cdbd2cSJim Jagielski application. Please check it out! So far only very few locale data file 218*b1cdbd2cSJim Jagielski we received got that right, especially not in date formats! 219*b1cdbd2cSJim Jagielski 220*b1cdbd2cSJim Jagielski For easier comparison between locales in future please sort the 221*b1cdbd2cSJim Jagielski FormatElements by their formatindex="..." value within a usage group. 222*b1cdbd2cSJim Jagielski This isn't necessary to be technically correct and isn't done in many 223*b1cdbd2cSJim Jagielski locales yet, but will certainly help. 224*b1cdbd2cSJim Jagielski 225*b1cdbd2cSJim Jagielski Of usage="FIXED_NUMBER": 226*b1cdbd2cSJim Jagielski formatindex="0" MUST be the format containing the 'General' keyword. 227*b1cdbd2cSJim Jagielski The keyword itself may be localized, it is good practice though to 228*b1cdbd2cSJim Jagielski stick with a wording known from another spreadsheet application for 229*b1cdbd2cSJim Jagielski better user experience. Like other format codes it may be prepended 230*b1cdbd2cSJim Jagielski with a [NatNum1] modifier if values are to be displayed using native 231*b1cdbd2cSJim Jagielski numbering if no specific format was applied. The format must have the 232*b1cdbd2cSJim Jagielski default="true" and type="medium" attributes. 233*b1cdbd2cSJim Jagielski 234*b1cdbd2cSJim Jagielski Of usage="DATE": 235*b1cdbd2cSJim Jagielski formatindex="21" is used to edit already existing date data. In order 236*b1cdbd2cSJim Jagielski to always edit the full century the long year YYYY code must be used. 237*b1cdbd2cSJim Jagielski Furthermore, the format has to be of an editable type, of course, which 238*b1cdbd2cSJim Jagielski means parseable. Therefore it should only contain DD, MM, YYYY and date 239*b1cdbd2cSJim Jagielski separators, and the YMD default order is determined from the order 240*b1cdbd2cSJim Jagielski encountered in this format. 241*b1cdbd2cSJim Jagielski TODO: Future versions should make use of an edit="true" attribute 242*b1cdbd2cSJim Jagielski instead of relying on this special requirement. 243*b1cdbd2cSJim Jagielski 244*b1cdbd2cSJim Jagielski Formatindices 32 and 33 are always used for ISO 8601 YY-MM-DD 245*b1cdbd2cSJim Jagielski respectively YYYY-MM-DD format codes. 246*b1cdbd2cSJim Jagielski 247*b1cdbd2cSJim Jagielski Of usage="DATE_TIME": 248*b1cdbd2cSJim Jagielski formatindex="47" is used to edit already existing combined date/time 249*b1cdbd2cSJim Jagielski data. The requirements are the same as for formatindex="21" above. 250*b1cdbd2cSJim Jagielski 251*b1cdbd2cSJim Jagielski Of usage="TIME": 252*b1cdbd2cSJim Jagielski formatindices 43, 44, 45 are special in the sense that they are 253*b1cdbd2cSJim Jagielski programmatically used to automatically display values that meet certain 254*b1cdbd2cSJim Jagielski criteria: 255*b1cdbd2cSJim Jagielski Formatindex="43" contains the [HH] format code that displays hour 256*b1cdbd2cSJim Jagielski values greater than or equal to 24 (as opposed to a simple HH that 257*b1cdbd2cSJim Jagielski displays modulo 24). 258*b1cdbd2cSJim Jagielski Formatindex="44" uses no hour code but 100th seconds and the 259*b1cdbd2cSJim Jagielski Time100SecSeparator. 260*b1cdbd2cSJim Jagielski Formatindex="45" uses both [HH] hour code and 100th seconds to be able 261*b1cdbd2cSJim Jagielski to edit such time values without loosing information. 262*b1cdbd2cSJim Jagielski 263*b1cdbd2cSJim Jagielski Of usage="CURRENCY": 264*b1cdbd2cSJim Jagielski formatindices 12, 13, 14, 15, 17 with [$xxx-yyy] notation must use the 265*b1cdbd2cSJim Jagielski xxx currency symbol that has the attribute 266*b1cdbd2cSJim Jagielski usedInCompatibleFormatCodes="true". The hexadecimal yyy LANGID must be 267*b1cdbd2cSJim Jagielski properly set. It can be found in project util module tools file 268*b1cdbd2cSJim Jagielski tools/inc/lang.hxx. You may verify the proper use of the xxx currency 269*b1cdbd2cSJim Jagielski symbol with the AWK script 270*b1cdbd2cSJim Jagielski i18npool/source/localedata/data/currency-check.awk, it mustn't display 271*b1cdbd2cSJim Jagielski any output. If it does, then there's something wrong. 272*b1cdbd2cSJim Jagielski--> 273*b1cdbd2cSJim Jagielski<!ELEMENT FormatCode (#PCDATA)> 274*b1cdbd2cSJim Jagielski 275*b1cdbd2cSJim Jagielski 276*b1cdbd2cSJim Jagielski<!-- The LC_CALENDAR element defines calendars used with a locale. --> 277*b1cdbd2cSJim Jagielski<!ELEMENT LC_CALENDAR (Calendar* ) > 278*b1cdbd2cSJim Jagielski<!-- At least one Calendar element must be given if the RefLocale mechanism is not used! --> 279*b1cdbd2cSJim Jagielski<!ATTLIST LC_CALENDAR %RefLocale;> 280*b1cdbd2cSJim Jagielski 281*b1cdbd2cSJim Jagielski<!ELEMENT Calendar (DaysOfWeek, MonthsOfYear, Eras, StartDayOfWeek, MinimalDaysInFirstWeek) > 282*b1cdbd2cSJim Jagielski<!ATTLIST Calendar %UNOModule;> 283*b1cdbd2cSJim Jagielski<!-- The unoid of a gregorian calendar MUST be lower case "gregorian", 284*b1cdbd2cSJim Jagielski calendars MUST match the names defined in the OASIS OpenDocument Format 285*b1cdbd2cSJim Jagielski (ODF) 1.2 or later specification. The implementation name registered with 286*b1cdbd2cSJim Jagielski the OOo service resgistry MUST match, e.g. 287*b1cdbd2cSJim Jagielski com.sun.star.i18n.Calendar_gregorian 288*b1cdbd2cSJim Jagielski--> 289*b1cdbd2cSJim Jagielski<!ATTLIST Calendar default (true|false) #REQUIRED > 290*b1cdbd2cSJim Jagielski<!-- Exactly one Calendar element has to be the default calendar. --> 291*b1cdbd2cSJim Jagielski 292*b1cdbd2cSJim Jagielski<!ELEMENT DaysOfWeek (Day*)> 293*b1cdbd2cSJim Jagielski<!-- All Day elements of a Calendar must be given if the RefLocale mechanism is not used! --> 294*b1cdbd2cSJim Jagielski<!ATTLIST DaysOfWeek %RefLocale;> 295*b1cdbd2cSJim Jagielski<!-- Sequence of days is important, MUST start with Sunday. --> 296*b1cdbd2cSJim Jagielski<!ELEMENT Day (DayID, DefaultAbbrvName, DefaultFullName)> 297*b1cdbd2cSJim Jagielski<!ELEMENT DayID (#PCDATA)> 298*b1cdbd2cSJim Jagielski<!-- Preferably the lower case abbreviated English name like sun for Sunday. --> 299*b1cdbd2cSJim Jagielski<!ELEMENT DefaultAbbrvName (#PCDATA)> 300*b1cdbd2cSJim Jagielski<!-- The abbreviated day name, e.g. Sun for Sunday. --> 301*b1cdbd2cSJim Jagielski<!ELEMENT DefaultFullName (#PCDATA)> 302*b1cdbd2cSJim Jagielski<!-- The full day name, e.g. Sunday for Sunday. --> 303*b1cdbd2cSJim Jagielski 304*b1cdbd2cSJim Jagielski<!ELEMENT MonthsOfYear (Month*)> 305*b1cdbd2cSJim Jagielski<!-- All Month elements of a Calendar must be given if the RefLocale mechanism is not used! --> 306*b1cdbd2cSJim Jagielski<!ATTLIST MonthsOfYear %RefLocale;> 307*b1cdbd2cSJim Jagielski<!-- Sequence of months is important, MUST start with the first month of a 308*b1cdbd2cSJim Jagielski year, e.g. January in a Gregorian calendar. 309*b1cdbd2cSJim Jagielski --> 310*b1cdbd2cSJim Jagielski<!ELEMENT Month (MonthID, DefaultAbbrvName, DefaultFullName)> 311*b1cdbd2cSJim Jagielski<!ELEMENT MonthID (#PCDATA)> 312*b1cdbd2cSJim Jagielski<!-- Preferably the lower case abbreviated English name like jan for January. --> 313*b1cdbd2cSJim Jagielski 314*b1cdbd2cSJim Jagielski<!ELEMENT Eras (Era*)> 315*b1cdbd2cSJim Jagielski<!-- All Era elements of a Calendar must be given if the RefLocale mechanism is not used! --> 316*b1cdbd2cSJim Jagielski<!ATTLIST Eras %RefLocale;> 317*b1cdbd2cSJim Jagielski<!-- The eras MUST be in chronological order, e.g. first BC then AC. --> 318*b1cdbd2cSJim Jagielski<!ELEMENT Era (EraID, DefaultAbbrvName, DefaultFullName)> 319*b1cdbd2cSJim Jagielski<!ELEMENT EraID (#PCDATA)> 320*b1cdbd2cSJim Jagielski<!-- If a calendar has special eras (like zh_TW ROC or ja_JP Gengou calendar) 321*b1cdbd2cSJim Jagielski and a date before those eras is undefined, a leading (first) dummy era 322*b1cdbd2cSJim Jagielski with EraID="Dummy" has to be defined to enable the number formatter to 323*b1cdbd2cSJim Jagielski fall back to a Gregorian calendar for those date values if the XCalendar 324*b1cdbd2cSJim Jagielski implementation returns an era value of 0. 325*b1cdbd2cSJim Jagielski--> 326*b1cdbd2cSJim Jagielski 327*b1cdbd2cSJim Jagielski<!ELEMENT StartDayOfWeek (DayID)> 328*b1cdbd2cSJim Jagielski<!-- MUST exactly match (case significant!) one of the DayID of DaysOfWeek --> 329*b1cdbd2cSJim Jagielski 330*b1cdbd2cSJim Jagielski<!ELEMENT MinimalDaysInFirstWeek (#PCDATA)> 331*b1cdbd2cSJim Jagielski<!-- The number of days of a week that must reside in the beginning of a year 332*b1cdbd2cSJim Jagielski to make a week the first week of the year. For example, a value of 4 means 333*b1cdbd2cSJim Jagielski that at least 4 days of a week must be in the new year. So if the week 334*b1cdbd2cSJim Jagielski starts on Monday, the first week of a year will be the week where Thursday 335*b1cdbd2cSJim Jagielski is in the new year. 336*b1cdbd2cSJim Jagielski--> 337*b1cdbd2cSJim Jagielski 338*b1cdbd2cSJim Jagielski 339*b1cdbd2cSJim Jagielski<!-- The LC_CURRENCY element defines currencies used with a locale. --> 340*b1cdbd2cSJim Jagielski<!ELEMENT LC_CURRENCY (Currency* ) > 341*b1cdbd2cSJim Jagielski<!-- At least one Currency element must be given if the RefLocale mechanism is not used! --> 342*b1cdbd2cSJim Jagielski<!ATTLIST LC_CURRENCY %RefLocale;> 343*b1cdbd2cSJim Jagielski<!ELEMENT Currency (CurrencyID, CurrencySymbol, BankSymbol, CurrencyName, DecimalPlaces)> 344*b1cdbd2cSJim Jagielski<!ATTLIST Currency default (true|false) #REQUIRED > 345*b1cdbd2cSJim Jagielski<!-- Exactly one Currency element has to be the default currency. --> 346*b1cdbd2cSJim Jagielski<!ATTLIST Currency usedInCompatibleFormatCodes (true|false) #REQUIRED > 347*b1cdbd2cSJim Jagielski<!-- If this currency is the one used in compatible number format codes with 348*b1cdbd2cSJim Jagielski <member>FormatElement::formatIndex</member> values in the range 12..17. 349*b1cdbd2cSJim Jagielski Those format codes are used to generate some old style currency format 350*b1cdbd2cSJim Jagielski codes for compatibility with StarOffice5 and StarOffice4. 351*b1cdbd2cSJim Jagielski Every locale data file MUST contain exactly one currency having this set to "true", 352*b1cdbd2cSJim Jagielski and that currency MUST be used in format codes 12..17. 353*b1cdbd2cSJim Jagielski For European countries using the EURo it MUST be the old currency, for example, DM. 354*b1cdbd2cSJim Jagielski--> 355*b1cdbd2cSJim Jagielski<!ATTLIST Currency legacyOnly (true|false) #IMPLIED > 356*b1cdbd2cSJim Jagielski<!-- If this Currency element exists only to be able to correctly load legacy 357*b1cdbd2cSJim Jagielski documents and is not selectable in the UI otherwise. Defaults to "false" 358*b1cdbd2cSJim Jagielski if not specified. If this attribute is "true", 'default' and 359*b1cdbd2cSJim Jagielski 'usedInCompatibleFormatCodes' must both be "false". 360*b1cdbd2cSJim Jagielski--> 361*b1cdbd2cSJim Jagielski<!ELEMENT CurrencyID (#PCDATA)> 362*b1cdbd2cSJim Jagielski<!-- The ISO 4217 three letter currency code, e.g. USD or EUR. --> 363*b1cdbd2cSJim Jagielski<!ELEMENT CurrencySymbol (#PCDATA)> 364*b1cdbd2cSJim Jagielski<!-- The currency symbol, e.g. $ or €. --> 365*b1cdbd2cSJim Jagielski<!ELEMENT BankSymbol (#PCDATA)> 366*b1cdbd2cSJim Jagielski<!-- The ISO 4217 three letter currency code, e.g. USD or EUR. --> 367*b1cdbd2cSJim Jagielski<!ELEMENT CurrencyName (#PCDATA)> 368*b1cdbd2cSJim Jagielski<!-- The native currency name, e.g. Dollar or Euro. --> 369*b1cdbd2cSJim Jagielski<!ELEMENT DecimalPlaces (#PCDATA)> 370*b1cdbd2cSJim Jagielski<!-- Number of decimal places used with the currency, usually 2 or 0, e.g. 2 371*b1cdbd2cSJim Jagielski for cents. 372*b1cdbd2cSJim Jagielski--> 373*b1cdbd2cSJim Jagielski 374*b1cdbd2cSJim Jagielski 375*b1cdbd2cSJim Jagielski<!ELEMENT LC_CTYPE (Separators?, Markers?, TimeAM?, TimePM?, MeasurementSystem?)> 376*b1cdbd2cSJim Jagielski<!-- All elements must be given if the RefLocale mechanism is not used! --> 377*b1cdbd2cSJim Jagielski<!ATTLIST LC_CTYPE %RefLocale;> 378*b1cdbd2cSJim Jagielski<!ATTLIST LC_CTYPE %UNOModule;> 379*b1cdbd2cSJim Jagielski 380*b1cdbd2cSJim Jagielski<!ELEMENT Separators (DateSeparator, ThousandSeparator, DecimalSeparator, TimeSeparator, Time100SecSeparator, ListSeparator, LongDateDayOfWeekSeparator, LongDateDaySeparator, LongDateMonthSeparator, LongDateYearSeparator)> 381*b1cdbd2cSJim Jagielski<!ELEMENT DateSeparator (#PCDATA)> 382*b1cdbd2cSJim Jagielski<!ELEMENT ThousandSeparator (#PCDATA)> 383*b1cdbd2cSJim Jagielski<!ELEMENT DecimalSeparator (#PCDATA)> 384*b1cdbd2cSJim Jagielski<!ELEMENT TimeSeparator (#PCDATA)> 385*b1cdbd2cSJim Jagielski<!ELEMENT Time100SecSeparator (#PCDATA)> 386*b1cdbd2cSJim Jagielski<!ELEMENT ListSeparator (#PCDATA)> 387*b1cdbd2cSJim Jagielski<!ELEMENT LongDateDayOfWeekSeparator (#PCDATA)> 388*b1cdbd2cSJim Jagielski<!ELEMENT LongDateDaySeparator (#PCDATA)> 389*b1cdbd2cSJim Jagielski<!ELEMENT LongDateMonthSeparator (#PCDATA)> 390*b1cdbd2cSJim Jagielski<!ELEMENT LongDateYearSeparator (#PCDATA)> 391*b1cdbd2cSJim Jagielski 392*b1cdbd2cSJim Jagielski<!ELEMENT Markers (QuotationStart, QuotationEnd, DoubleQuotationStart, DoubleQuotationEnd)> 393*b1cdbd2cSJim Jagielski<!ELEMENT QuotationStart (#PCDATA)> 394*b1cdbd2cSJim Jagielski<!ELEMENT QuotationEnd (#PCDATA)> 395*b1cdbd2cSJim Jagielski<!ELEMENT DoubleQuotationStart (#PCDATA)> 396*b1cdbd2cSJim Jagielski<!ELEMENT DoubleQuotationEnd (#PCDATA)> 397*b1cdbd2cSJim Jagielski 398*b1cdbd2cSJim Jagielski<!ELEMENT TimeAM (#PCDATA)> 399*b1cdbd2cSJim Jagielski<!ELEMENT TimePM (#PCDATA)> 400*b1cdbd2cSJim Jagielski<!ELEMENT MeasurementSystem (#PCDATA)> 401*b1cdbd2cSJim Jagielski 402*b1cdbd2cSJim Jagielski 403*b1cdbd2cSJim Jagielski<!ELEMENT LC_COLLATION (Collator*, CollationOptions?)> 404*b1cdbd2cSJim Jagielski<!-- All elements must be given if the RefLocale mechanism is not used! --> 405*b1cdbd2cSJim Jagielski<!ATTLIST LC_COLLATION %RefLocale;> 406*b1cdbd2cSJim Jagielski<!-- 407*b1cdbd2cSJim Jagielski Optional ICU tailoring. 408*b1cdbd2cSJim Jagielski 409*b1cdbd2cSJim Jagielski See Collation Customization in ICU User Guide for syntax, 410*b1cdbd2cSJim Jagielski http://www.icu-project.org/userguide/Collate_Customization.html 411*b1cdbd2cSJim Jagielski 412*b1cdbd2cSJim Jagielski There are two ways to add language specific tailoring in OpenOffice.org. 413*b1cdbd2cSJim Jagielski For small tailoring, you can directly add it in locale data here. For 414*b1cdbd2cSJim Jagielski large tailoring, it is suggested to put the data under collator/data, so 415*b1cdbd2cSJim Jagielski it will be compiled to a binary format in build time and improve performance 416*b1cdbd2cSJim Jagielski in run time. 417*b1cdbd2cSJim Jagielski 418*b1cdbd2cSJim Jagielski--> 419*b1cdbd2cSJim Jagielski<!ELEMENT Collator (#PCDATA)> 420*b1cdbd2cSJim Jagielski<!ATTLIST Collator %UNOModule;> 421*b1cdbd2cSJim Jagielski<!ATTLIST Collator default (true|false) #REQUIRED > 422*b1cdbd2cSJim Jagielski<!ELEMENT CollationOptions (TransliterationModules+)> 423*b1cdbd2cSJim Jagielski<!ELEMENT TransliterationModules (#PCDATA)> 424*b1cdbd2cSJim Jagielski 425*b1cdbd2cSJim Jagielski 426*b1cdbd2cSJim Jagielski<!ELEMENT LC_SEARCH (SearchOptions?)> 427*b1cdbd2cSJim Jagielski<!-- All elements must be given if the RefLocale mechanism is not used! --> 428*b1cdbd2cSJim Jagielski<!ATTLIST LC_SEARCH %RefLocale;> 429*b1cdbd2cSJim Jagielski<!ELEMENT SearchOptions (TransliterationModules+)> 430*b1cdbd2cSJim Jagielski 431*b1cdbd2cSJim Jagielski 432*b1cdbd2cSJim Jagielski<!ELEMENT LC_INDEX (IndexKey*, UnicodeScript*, FollowPageWord*)> 433*b1cdbd2cSJim Jagielski<!ATTLIST LC_INDEX %RefLocale;> 434*b1cdbd2cSJim Jagielski 435*b1cdbd2cSJim Jagielski<!-- 436*b1cdbd2cSJim Jagielski The IndexKey element is optional, but should be given if the locale 437*b1cdbd2cSJim Jagielski requires a specific sort order in Writer's index tables or entries are to 438*b1cdbd2cSJim Jagielski be combined under keys. 439*b1cdbd2cSJim Jagielski 440*b1cdbd2cSJim Jagielski Index key for the algorithm and language, like >A-Z< for English => A, B, 441*b1cdbd2cSJim Jagielski C, ..., Y, Z. The letters specify under which key an entry goes and the 442*b1cdbd2cSJim Jagielski order the keys are sorted. Keys may be reordered or letters inserted to 443*b1cdbd2cSJim Jagielski form a specific order, for example (ve_ZA) >A-D Ḓ E-L Ḽ M N Ṋ Ṅ O-T Ṱ U-Z< 444*b1cdbd2cSJim Jagielski Entries that don't match a defined key are appended to the index list. Used 445*b1cdbd2cSJim Jagielski in Writer textprocessor. 446*b1cdbd2cSJim Jagielski 447*b1cdbd2cSJim Jagielski The initial data was setup according to the ICU collation chart at 448*b1cdbd2cSJim Jagielski http://oss.software.ibm.com/icu/charts/collation/ 449*b1cdbd2cSJim Jagielski Note: ICU site was moved to http://www.icu-project.org/ and as ICU per 450*b1cdbd2cSJim Jagielski default uses CLDR, collation charts are available at 451*b1cdbd2cSJim Jagielski http://unicode.org/cldr/comparison_charts.html#Collation 452*b1cdbd2cSJim Jagielski 453*b1cdbd2cSJim Jagielski Possible notations in the syntax of the IndexKey element are: 454*b1cdbd2cSJim Jagielski 455*b1cdbd2cSJim Jagielski '-' (dash): Ellipsis, all letters elided by the ellipsis are included as 456*b1cdbd2cSJim Jagielski index keys in alphabetic order. For example, 'A-Z' includes all ASCII 457*b1cdbd2cSJim Jagielski letters A to Z. 458*b1cdbd2cSJim Jagielski 459*b1cdbd2cSJim Jagielski '[]' (square brackets): all letters included in square brackets are 460*b1cdbd2cSJim Jagielski skipping letters. It is used for CTL languages, for example in Thai 461*b1cdbd2cSJim Jagielski (th_TH), to skip prefix vowels or signs. For example, if ["] double quote 462*b1cdbd2cSJim Jagielski is defined as skipping letter, index item '"Index"' will be under 'I', not 463*b1cdbd2cSJim Jagielski '"'. 464*b1cdbd2cSJim Jagielski 465*b1cdbd2cSJim Jagielski '{}' (curly brackets): define multiple letters index key, for example 466*b1cdbd2cSJim Jagielski '{Cs}' is one of the index keys for Hungarian (hu_HU). 467*b1cdbd2cSJim Jagielski 468*b1cdbd2cSJim Jagielski '()' (parentheses): define optional description for index key. If defined, 469*b1cdbd2cSJim Jagielski the description will be shown as index key title, instead of the index key 470*b1cdbd2cSJim Jagielski itself. For example, 'E(E, É)' in Hungarian adds entries with 'E' to the 471*b1cdbd2cSJim Jagielski description 'E, É'. 472*b1cdbd2cSJim Jagielski 473*b1cdbd2cSJim Jagielski--> 474*b1cdbd2cSJim Jagielski<!ELEMENT IndexKey (#PCDATA)> 475*b1cdbd2cSJim Jagielski<!ATTLIST IndexKey %UNOModule;> 476*b1cdbd2cSJim Jagielski<!ATTLIST IndexKey %LIBModule;> 477*b1cdbd2cSJim Jagielski<!ATTLIST IndexKey default (true|false) #REQUIRED > 478*b1cdbd2cSJim Jagielski<!ATTLIST IndexKey phonetic (true|false) #REQUIRED > 479*b1cdbd2cSJim Jagielski 480*b1cdbd2cSJim Jagielski<!-- 481*b1cdbd2cSJim Jagielski The Unicode script types are those of 482*b1cdbd2cSJim Jagielski offapi/com/sun/star/i18n/UnicodeScript.idl, they define the code range for 483*b1cdbd2cSJim Jagielski the language. 484*b1cdbd2cSJim Jagielski--> 485*b1cdbd2cSJim Jagielski<!ELEMENT UnicodeScript (#PCDATA)> 486*b1cdbd2cSJim Jagielski 487*b1cdbd2cSJim Jagielski<!-- 488*b1cdbd2cSJim Jagielski The FollowPageWord entries were originally hard-coded in 489*b1cdbd2cSJim Jagielski ../../indexentry/indexentrysupplier.cxx, most locales used the English 490*b1cdbd2cSJim Jagielski ``p.'' and ``pp.'', valid data should be provided by native speakers. 491*b1cdbd2cSJim Jagielski These words or abbreviations are used in the Writer's index table. The 492*b1cdbd2cSJim Jagielski first FollowPageWord element is the abbreviation for "page" (p.), the 493*b1cdbd2cSJim Jagielski second FollowPageWord element the abbreviation for "page and following 494*b1cdbd2cSJim Jagielski pages" (pp.). 495*b1cdbd2cSJim Jagielski--> 496*b1cdbd2cSJim Jagielski<!ELEMENT FollowPageWord (#PCDATA)> 497*b1cdbd2cSJim Jagielski 498*b1cdbd2cSJim Jagielski 499*b1cdbd2cSJim Jagielski<!ELEMENT LC_TRANSLITERATION (Transliteration*)> 500*b1cdbd2cSJim Jagielski<!ATTLIST LC_TRANSLITERATION %RefLocale;> 501*b1cdbd2cSJim Jagielski<!ELEMENT Transliteration EMPTY> 502*b1cdbd2cSJim Jagielski<!ATTLIST Transliteration %UNOModule;> 503*b1cdbd2cSJim Jagielski 504*b1cdbd2cSJim Jagielski<!ELEMENT LC_MISC (ForbiddenCharacters?, BreakIteratorRules?, ReservedWords?)> 505*b1cdbd2cSJim Jagielski<!ATTLIST LC_MISC %RefLocale;> 506*b1cdbd2cSJim Jagielski<!ELEMENT ForbiddenCharacters (ForbiddenLineBeginCharacters, ForbiddenLineEndCharacters, LineBreakHangingCharacters)> 507*b1cdbd2cSJim Jagielski<!ELEMENT ForbiddenLineBeginCharacters (#PCDATA)> 508*b1cdbd2cSJim Jagielski<!ELEMENT ForbiddenLineEndCharacters (#PCDATA)> 509*b1cdbd2cSJim Jagielski 510*b1cdbd2cSJim Jagielski<!-- optional break iterator rules for the languages. 511*b1cdbd2cSJim Jagielski if defined, 5 rules should be all listed, each of them can be blank and default will be used. 512*b1cdbd2cSJim Jagielski order of the rules is significant! 513*b1cdbd2cSJim Jagielski--> 514*b1cdbd2cSJim Jagielski<!ELEMENT BreakIteratorRules (EditMode, DictionaryMode, WordCountMode, CharacterMode, LineMode)> 515*b1cdbd2cSJim Jagielski<!ELEMENT EditMode (#PCDATA)> 516*b1cdbd2cSJim Jagielski<!ELEMENT DictionaryMode (#PCDATA)> 517*b1cdbd2cSJim Jagielski<!ELEMENT WordCountMode (#PCDATA)> 518*b1cdbd2cSJim Jagielski<!ELEMENT CharacterMode (#PCDATA)> 519*b1cdbd2cSJim Jagielski<!ELEMENT LineMode (#PCDATA)> 520*b1cdbd2cSJim Jagielski 521*b1cdbd2cSJim Jagielski<!ELEMENT ReservedWords (trueWord, falseWord, quarter1Word, quarter2Word, quarter3Word, quarter4Word, aboveWord, belowWord, quarter1Abbreviation, quarter2Abbreviation, quarter3Abbreviation, quarter4Abbreviation)> 522*b1cdbd2cSJim Jagielski<!-- order is significant! --> 523*b1cdbd2cSJim Jagielski<!ELEMENT trueWord (#PCDATA)> 524*b1cdbd2cSJim Jagielski<!ELEMENT falseWord (#PCDATA)> 525*b1cdbd2cSJim Jagielski<!ELEMENT quarter1Word (#PCDATA)> 526*b1cdbd2cSJim Jagielski<!ELEMENT quarter2Word (#PCDATA)> 527*b1cdbd2cSJim Jagielski<!ELEMENT quarter3Word (#PCDATA)> 528*b1cdbd2cSJim Jagielski<!ELEMENT quarter4Word (#PCDATA)> 529*b1cdbd2cSJim Jagielski<!ELEMENT aboveWord (#PCDATA)> 530*b1cdbd2cSJim Jagielski<!ELEMENT belowWord (#PCDATA)> 531*b1cdbd2cSJim Jagielski<!-- aboveWord and belowWord are used as reference field content in Writer, it 532*b1cdbd2cSJim Jagielski is a "physical" object relative position, not "numerical" relative. 533*b1cdbd2cSJim Jagielski--> 534*b1cdbd2cSJim Jagielski<!ELEMENT quarter1Abbreviation (#PCDATA)> <!-- "Q1" (quarter), "T1" (trimestre), ... --> 535*b1cdbd2cSJim Jagielski<!ELEMENT quarter2Abbreviation (#PCDATA)> 536*b1cdbd2cSJim Jagielski<!ELEMENT quarter3Abbreviation (#PCDATA)> 537*b1cdbd2cSJim Jagielski<!ELEMENT quarter4Abbreviation (#PCDATA)> 538*b1cdbd2cSJim Jagielski 539*b1cdbd2cSJim Jagielski 540*b1cdbd2cSJim Jagielski<!-- 541*b1cdbd2cSJim Jagielski In numbering levels, the NumType attribute is a value of the constants 542*b1cdbd2cSJim Jagielski defined in offapi/com/sun/star/style/NumberingType.idl 543*b1cdbd2cSJim Jagielski--> 544*b1cdbd2cSJim Jagielski 545*b1cdbd2cSJim Jagielski<!ELEMENT LC_NumberingLevel (NumberingLevel* )> 546*b1cdbd2cSJim Jagielski<!ATTLIST LC_NumberingLevel %RefLocale;> 547*b1cdbd2cSJim Jagielski<!ELEMENT NumberingLevel EMPTY> 548*b1cdbd2cSJim Jagielski<!ATTLIST NumberingLevel Prefix CDATA #REQUIRED> 549*b1cdbd2cSJim Jagielski<!ATTLIST NumberingLevel NumType CDATA #REQUIRED> 550*b1cdbd2cSJim Jagielski<!ATTLIST NumberingLevel Suffix CDATA #REQUIRED> 551*b1cdbd2cSJim Jagielski<!ATTLIST NumberingLevel Transliteration CDATA #IMPLIED> 552*b1cdbd2cSJim Jagielski<!ATTLIST NumberingLevel NatNum CDATA #IMPLIED> 553*b1cdbd2cSJim Jagielski 554*b1cdbd2cSJim Jagielski 555*b1cdbd2cSJim Jagielski<!ELEMENT LC_OutLineNumberingLevel (OutlineStyle* )> 556*b1cdbd2cSJim Jagielski<!ATTLIST LC_OutLineNumberingLevel %RefLocale;> 557*b1cdbd2cSJim Jagielski<!ELEMENT OutlineStyle (OutLineNumberingLevel+)> 558*b1cdbd2cSJim Jagielski<!ELEMENT OutLineNumberingLevel EMPTY> 559*b1cdbd2cSJim Jagielski<!ATTLIST OutLineNumberingLevel Prefix CDATA #REQUIRED > 560*b1cdbd2cSJim Jagielski<!ATTLIST OutLineNumberingLevel NumType CDATA #REQUIRED > 561*b1cdbd2cSJim Jagielski<!ATTLIST OutLineNumberingLevel Suffix CDATA #REQUIRED > 562*b1cdbd2cSJim Jagielski<!ATTLIST OutLineNumberingLevel BulletChar CDATA #REQUIRED > 563*b1cdbd2cSJim Jagielski<!ATTLIST OutLineNumberingLevel BulletFontName CDATA #REQUIRED> 564*b1cdbd2cSJim Jagielski<!ATTLIST OutLineNumberingLevel ParentNumbering CDATA #REQUIRED > 565*b1cdbd2cSJim Jagielski<!ATTLIST OutLineNumberingLevel LeftMargin CDATA #REQUIRED> 566*b1cdbd2cSJim Jagielski<!ATTLIST OutLineNumberingLevel SymbolTextDistance CDATA #REQUIRED > 567*b1cdbd2cSJim Jagielski<!ATTLIST OutLineNumberingLevel FirstLineOffset CDATA #REQUIRED > 568*b1cdbd2cSJim Jagielski<!ATTLIST OutLineNumberingLevel Transliteration CDATA #IMPLIED > 569*b1cdbd2cSJim Jagielski<!ATTLIST OutLineNumberingLevel NatNum CDATA #IMPLIED> 570