The validSubLocales attribute is defined on many elements.
We only use validSubLocales currently in collation/, but they don't add any value. Any implementation can simply get them from the sublocales in main/. So they are really only a possible source of errors, and we are better off removing them.
The cp element was a hack that we had to represent values that XML doesn't permit, like control codes. However, we always use a hex notation (like \uxxxx) for those now, and don't need it.
We should also deprecate references in ldml elements, since we don't use those.
FYI: The following elements are not found in the data, but are not deprecated. They should be reviewed as well.
Unused (but not deprecated) attributes are found in column F of
The distinguishing attributes are marked with *.
«NONE» means that the element is found with no attributes sometimes.
another one to deprecate is:
<!ATTLIST distinguishingItems exclude ( true | false ) #IMPLIED >
The validSubLocales for collation are worse than redundant: When they are out of sync with the main locales, then we may go to the default locale rather than the intended one (which would usually fall back to root).
This showed up in ICU 52m1 (): There is no Basque (eu) collation data, and eu is missing from the root/validSublocales, so a request for a Basque collator returns one for whatever is the default locale. (In ICU, it is not currently possible to avoid the default-locale lookup.) However, there is main/eu.xml data, complete with index exemplar characters. Requesting an "eu" collator should return a root collator.
As a workaround until we come up with something better, the LDML-to-ICU converter should add empty top-level-language resource bundles (e.g., eu.txt) for every main CLDR language that would not otherwise get a collation bundle file.
As a second step, if & after we change ICU to look for main locale data to fill in the "valid locale", we could then stop generating empty collation resource bundles for anything that is not a top-level language (e.g., de_DE.txt).
Milestone 25M1 deleted