diff options
Diffstat (limited to 'util/locale_database/qlocalexml.rnc')
-rw-r--r-- | util/locale_database/qlocalexml.rnc | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/util/locale_database/qlocalexml.rnc b/util/locale_database/qlocalexml.rnc new file mode 100644 index 0000000000..818aa8f9c3 --- /dev/null +++ b/util/locale_database/qlocalexml.rnc @@ -0,0 +1,119 @@ +# Copyright (C) 2021 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +# This is RelaxNG compact schema for qLocaleXML interemediate locale data +# representation format produced and consumed by the qlocalexml module. +# +# To validate an xml file run: +# +# jing -c qlocalexml.rnc <your-file.xml> +# +# You can download jing from https://relaxng.org/jclark/jing.html if your +# package manager lacks the jing package. + +start = element localeDatabase { + element version { text }, + element languageList { Language+ }, + element scriptList { Script+ }, + element territoryList { Territory+ }, + element likelySubtags { LikelySubtag+ }, + element localeList { Locale+ } +} + +Language = element language { TagDescriptor } +Script = element script { TagDescriptor } +Territory = element territory { TagDescriptor } +TagDescriptor = ( + element name { text }, + element id { xsd:nonNegativeInteger }, + element code { text } +) + +LikelySubtag = element likelySubtag { + element from { LocaleTriplet }, + element to { LocaleTriplet } +} + +LocaleTriplet = ( + element language { text }, + element script { text }, + element territory { text } +) + +WeekDay = ("sun" | "mon" | "tue" | "wed" | "thu" | "fri" | "sat") +Digit = xsd:string { pattern = "\d" } +Punctuation = xsd:string { pattern = "\p{P}" } +GroupSizes = xsd:string { pattern = "\d;\d;\d" } + +Locale = element locale { + element language { text }, + element languagecode { text }, + element script { text }, + element scriptcode { text }, + element territory { text }, + element territorycode { text }, + element decimal { Punctuation }, + element group { text }, + element zero { Digit }, + element list { Punctuation }, + element percent { text }, + element minus { text }, + element plus { text }, + element exp { text }, + element languageEndonym { text }, + element territoryEndonym { text }, + element quotationStart { Punctuation }, + element quotationEnd { Punctuation }, + element alternateQuotationStart { Punctuation }, + element alternateQuotationEnd { Punctuation }, + element listPatternPartStart { text }, + element listPatternPartMiddle { text }, + element listPatternPartEnd { text }, + element listPatternPartTwo { text }, + element byte_unit { text }, + element byte_si_quantified { text }, + element byte_iec_quantified { text }, + element am { text }, + element pm { text }, + element firstDayOfWeek { text }, + element weekendStart { WeekDay }, + element weekendEnd { WeekDay }, + element longDateFormat { text }, + element shortDateFormat { text }, + element longTimeFormat { text }, + element shortTimeFormat { text }, + element currencyIsoCode { text }, + element currencySymbol { text }, + element currencyDisplayName { text }, + element currencyFormat { text }, + element currencyNegativeFormat { text }, + element longDays { text }, + element standaloneLongDays { text }, + element shortDays { text }, + element standaloneShortDays { text }, + element narrowDays { text }, + element standaloneNarrowDays { text }, + + # Some of these entries may be absent depending on command line arguments + element longMonths_gregorian { text }?, + element longMonths_persian { text }?, + element longMonths_islamic { text }?, + element standaloneLongMonths_gregorian { text }?, + element standaloneLongMonths_persian { text }?, + element standaloneLongMonths_islamic { text }?, + element shortMonths_gregorian { text }?, + element shortMonths_persian { text }?, + element shortMonths_islamic { text }?, + element standaloneShortMonths_gregorian { text }?, + element standaloneShortMonths_persian { text }?, + element standaloneShortMonths_islamic { text }?, + element narrowMonths_gregorian { text }?, + element narrowMonths_persian { text }?, + element narrowMonths_islamic { text }?, + element standaloneNarrowMonths_gregorian { text }?, + element standaloneNarrowMonths_persian { text }?, + element standaloneNarrowMonths_islamic { text }?, + + element groupSizes { GroupSizes }, + element currencyDigits { xsd:nonNegativeInteger }, + element currencyRounding { xsd:nonNegativeInteger } +} |