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