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