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