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