Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions common/dtd/ldml.dtd
Original file line number Diff line number Diff line change
Expand Up @@ -1441,6 +1441,8 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!--@DEPRECATED:true, false-->
<!ATTLIST pattern references CDATA #IMPLIED >
<!--@METADATA-->
<!ATTLIST pattern numberSystem CDATA #IMPLIED >
<!--@MATCH:bcp47/nu-->
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's a failure caused either by this addition, or by one of the later changes in this file where numberSystem gets changed from @DEPRECATED to @MATCH:bcp47/nu. The failure is:

Caused by: java.lang.IllegalArgumentException: Inconsistent requested ordering: cannot merge if we have [...A...B...] and [...B...A...]: {references=[draft, references], standard=[draft, standard, references, validSubLocales], validSubLocales=[draft, standard, references, validSubLocales], numberSystem=[draft, validSubLocales, numberSystem], draft=[numberSystem, draft, references]}
	at org.unicode.cldr.util.MergeLists.merge(MergeLists.java:68)
	at org.unicode.cldr.util.DtdData.freeze(DtdData.java:974)

I've tried moving ...pattern numberSystem... up before ...pattern references... or before ...pattern draft... but similar errors occur. The reference to validSubLocales in the error messages is especially mysterious. I'll continue investigation.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Experimentally I tried adding items for pattern, decimal, and group to attributeOrderGrandfathered, and that succeeded in making the test pass. I expected this would only be a temporary work-around. Then I noticed that a completely analogous item for symbols was already present in attributeOrderGrandfathered. This leads me to suspect that no other solution exists; otherwise why was the item for symbols already present?

However, I still don't fully understand the test and what "ordering" rules it is enforcing, so I hope for a review by someone who understands it better, rather than a rubber stamp.

Copy link
Contributor

@pedberg-icu pedberg-icu Oct 21, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also do not understand what that ordering test is about, but the rest of the PR looks good to me.

Copy link
Contributor

@pedberg-icu pedberg-icu Oct 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess this does have to be #IMPLIED and not #REQUIRED because this is an existing element for which we did not formerly require a numberSystem attribute. Sorry for my mistaken earlier comment on this.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I tried changing it to REQUIRED and encountered errors with other kinds of path where it's still optional. I guess the test wouldn't be needed if it were always required.


<!ELEMENT datetimeSkeleton ( #PCDATA ) >
<!ATTLIST datetimeSkeleton numbers CDATA #IMPLIED >
Expand Down Expand Up @@ -2062,7 +2064,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!ATTLIST decimal references CDATA #IMPLIED >
<!--@METADATA-->
<!ATTLIST decimal numberSystem CDATA #IMPLIED >
<!--@DEPRECATED-->
<!--@MATCH:bcp47/nu-->

<!ELEMENT group ( #PCDATA ) >
<!ATTLIST group alt NMTOKENS #IMPLIED >
Expand All @@ -2073,7 +2075,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
<!ATTLIST group references CDATA #IMPLIED >
<!--@METADATA-->
<!ATTLIST group numberSystem CDATA #IMPLIED >
<!--@DEPRECATED-->
<!--@MATCH:bcp47/nu-->

<!ELEMENT list ( #PCDATA ) >
<!ATTLIST list alt NMTOKENS #IMPLIED >
Expand Down
6 changes: 3 additions & 3 deletions common/main/ca.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6502,13 +6502,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<symbol draft="contributed">↑↑↑</symbol>
</currency>
<currency type="ESP">
<pattern>¤ #,##0.00</pattern>
<pattern numberSystem="latn">¤ #,##0.00</pattern>
<displayName>pesseta espanyola</displayName>
<displayName count="one">pesseta espanyola</displayName>
<displayName count="other">pessetes espanyoles</displayName>
<symbol>₧</symbol>
<decimal>,</decimal>
<group>.</group>
<decimal numberSystem="latn">,</decimal>
<group numberSystem="latn">.</group>
</currency>
<currency type="ETB">
<displayName>birr etíop</displayName>
Expand Down
6 changes: 3 additions & 3 deletions common/main/el.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6576,13 +6576,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<displayName count="other">εκουέλε Ισημερινής Γουινέας</displayName>
</currency>
<currency type="GRD">
<pattern>#,##0.00 ¤</pattern>
<pattern numberSystem="latn">#,##0.00 ¤</pattern>
<displayName>Δραχμή Ελλάδας</displayName>
<displayName count="one">δραχμή Ελλάδας</displayName>
<displayName count="other">δραχμές Ελλάδας</displayName>
<symbol>Δρχ</symbol>
<decimal>,</decimal>
<group>.</group>
<decimal numberSystem="latn">,</decimal>
<group numberSystem="latn">.</group>
</currency>
<currency type="GTQ">
<displayName>Κουετσάλ Γουατεμάλας</displayName>
Expand Down
2 changes: 1 addition & 1 deletion common/main/en_150.xml
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
</currencyFormats>
<currencies>
<currency type="EUR">
<pattern>¤#,##0.00</pattern>
<pattern numberSystem="latn">¤#,##0.00</pattern>
</currency>
</currencies>
</numbers>
Expand Down
2 changes: 1 addition & 1 deletion common/main/en_AT.xml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ CLDR data files are interpreted according to the LDML specification (http://unic
</currencyFormats>
<currencies>
<currency type="EUR">
<pattern>¤ #,##0.00</pattern>
<pattern numberSystem="latn">¤ #,##0.00</pattern>
</currency>
</currencies>
</numbers>
Expand Down
6 changes: 3 additions & 3 deletions common/main/eu.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13962,14 +13962,14 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<symbol draft="contributed">↑↑↑</symbol>
</currency>
<currency type="ESP">
<pattern>¤ #,##0.00</pattern>
<pattern numberSystem="latn">¤ #,##0.00</pattern>
<displayName>pezeta espainiarra</displayName>
<displayName count="one">↑↑↑</displayName>
<displayName count="other">pezeta espainiar</displayName>
<symbol>₧</symbol>
<symbol alt="narrow" draft="contributed">↑↑↑</symbol>
<decimal>,</decimal>
<group>.</group>
<decimal numberSystem="latn">,</decimal>
<group numberSystem="latn">.</group>
</currency>
<currency type="ETB">
<displayName>birr etiopiarra</displayName>
Expand Down
6 changes: 3 additions & 3 deletions common/main/gl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5383,13 +5383,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<displayName draft="contributed">Peseta española (conta convertible)</displayName>
</currency>
<currency type="ESP">
<pattern>#,##0.00 ¤</pattern>
<pattern numberSystem="latn">#,##0.00 ¤</pattern>
<displayName draft="contributed">Peseta española</displayName>
<displayName count="one" draft="contributed">peseta</displayName>
<displayName count="other" draft="contributed">pesetas</displayName>
<symbol>₧</symbol>
<decimal>,</decimal>
<group> </group>
<decimal numberSystem="latn">,</decimal>
<group numberSystem="latn">❰NBTSP❱</group>
</currency>
<currency type="ETB">
<displayName>birr etíope</displayName>
Expand Down
6 changes: 3 additions & 3 deletions common/main/it.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6093,13 +6093,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<symbol alt="narrow">↑↑↑</symbol>
</currency>
<currency type="ITL">
<pattern>¤ #,##0.00</pattern>
<pattern numberSystem="latn">¤ #,##0.00</pattern>
<displayName>lira italiana</displayName>
<displayName count="one" draft="contributed">↑↑↑</displayName>
<displayName count="other" draft="contributed">lire italiane</displayName>
<symbol draft="contributed">↑↑↑</symbol>
<decimal>,</decimal>
<group>.</group>
<decimal numberSystem="latn">,</decimal>
<group numberSystem="latn">.</group>
</currency>
<currency type="JMD">
<displayName>dollaro giamaicano</displayName>
Expand Down
2 changes: 1 addition & 1 deletion common/main/tr.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7650,7 +7650,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<symbol draft="contributed">↑↑↑</symbol>
</currency>
<currency type="TRY">
<pattern>¤#,##0.00</pattern>
<pattern numberSystem="latn">¤#,##0.00</pattern>
<displayName>Türk lirası</displayName>
<displayName count="one">↑↑↑</displayName>
<displayName count="other">↑↑↑</displayName>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -259,12 +259,8 @@ public CheckCLDR handleCheck(
}
XPathParts parts = XPathParts.getFrozenInstance(path);

// TODO: re-enable this commented-out check
// Reference: https://unicode-org.atlassian.net/browse/CLDR-18722
/*
// Check that number formats are for an explicit number system.
String numberSystem = parts.getAttributeValue(2, "numberSystem");
if (numberSystem == null) {
if (!parts.containsAttribute("numberSystem")) {
result.add(
new CheckStatus()
.setCause(this)
Expand All @@ -273,7 +269,6 @@ public CheckCLDR handleCheck(
.setMessage(
"Number formats must have an explicit numberSystem attribute."));
}
*/

// Do tests that need to split the values

Expand Down
Loading