diff --git a/common/dtd/ldmlICU.dtd b/common/dtd/ldmlICU.dtd index 4bb39cbf9b8..e8abdedcbab 100644 --- a/common/dtd/ldmlICU.dtd +++ b/common/dtd/ldmlICU.dtd @@ -49,6 +49,7 @@ NOTE: Unlike the other DTDs, this file is manually maintained. + diff --git a/tools/cldr-code/src/main/java/org/unicode/cldr/api/CldrPaths.java b/tools/cldr-code/src/main/java/org/unicode/cldr/api/CldrPaths.java index 2928c1662f0..42c8a175f90 100644 --- a/tools/cldr-code/src/main/java/org/unicode/cldr/api/CldrPaths.java +++ b/tools/cldr-code/src/main/java/org/unicode/cldr/api/CldrPaths.java @@ -205,8 +205,9 @@ static boolean isLeafPath(CldrPath path) { * sort index). */ static boolean isOrdered(CldrDataType dtdType, String elementName) { - // Elements with namespaces unknown the the DTD are never ordered. - if (elementName.indexOf(':') != -1) { + // Elements with namespaces unknown to the DTD are never ordered + // (but it knows about icu: elements). + if (elementName.indexOf(':') != -1 && !elementName.startsWith("icu:")) { return false; } // Returns empty set if DTD unknown, but it might also be the case that a valid DTD has no diff --git a/tools/cldr-code/src/main/java/org/unicode/cldr/util/DtdData.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/DtdData.java index cf51ba44890..e8ff6f4988e 100644 --- a/tools/cldr-code/src/main/java/org/unicode/cldr/util/DtdData.java +++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/DtdData.java @@ -1202,9 +1202,8 @@ public boolean isDeprecated(String elementName, String attributeName, String att public boolean isOrdered(String elementName) { Element element = nameToElement.get(elementName); if (element == null) { - if (elementName.startsWith("icu:")) { - return false; - } + // No longer need to always return false for icu: elements per CLDR-8614, + // nameToElement should now know about them (see getInstance above). throw new IllegalByDtdException(elementName, null, null); } return element.isOrderedElement;