From 3511420a467bb6e34c46ae931635ad368d46a87c Mon Sep 17 00:00:00 2001 From: btangmu Date: Sat, 28 Oct 2023 16:21:29 -0400 Subject: [PATCH] CLDR-13970 Update ExampleDependencies and related code -Bug fix: when generating example dependencies, disable caching in ICUServiceBuilder to prevent some dependencies from being missed -New cldr.util.GenerateExampleDependencies replaces old cldr.test.TestExampleDependencies -Include DO NOT EDIT comments in ExampleDependencies.java, clarify it is generated -Bug fix: prevent NullPointerException in ExampleGenerator.getOtherGender/getOtherCase -Bug fix: OpenAPI validation CWWKO1650E missing descriptino for 404 in UserAPI.java (unrelated) -Remove dead code, fix warnings -Comments --- .../org/unicode/cldr/web/api/UserAPI.java | 2 +- .../org/unicode/cldr/test/ExampleCache.java | 17 +- .../cldr/test/ExampleDependencies.java | 2181 +++++++++++------ .../unicode/cldr/test/ExampleGenerator.java | 16 +- .../tool/GenerateExampleDependencies.java | 187 ++ .../java/org/unicode/cldr/util/CLDRFile.java | 9 - .../unicode/cldr/util/ICUServiceBuilder.java | 141 +- .../unicode/cldr/util/RecordingCLDRFile.java | 10 +- .../unittest/TestExampleDependencies.java | 490 ---- 9 files changed, 1743 insertions(+), 1310 deletions(-) create mode 100644 tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateExampleDependencies.java delete mode 100644 tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestExampleDependencies.java diff --git a/tools/cldr-apps/src/main/java/org/unicode/cldr/web/api/UserAPI.java b/tools/cldr-apps/src/main/java/org/unicode/cldr/web/api/UserAPI.java index b1f6539d70e..f76ec5475c0 100644 --- a/tools/cldr-apps/src/main/java/org/unicode/cldr/web/api/UserAPI.java +++ b/tools/cldr-apps/src/main/java/org/unicode/cldr/web/api/UserAPI.java @@ -63,7 +63,7 @@ public UserInfo(User u) { @Content( mediaType = "application/json", schema = @Schema(implementation = UserInfo.class))), - @APIResponse(responseCode = "404") + @APIResponse(responseCode = "404", description = "Session not found"), }) @Path("/info/{uid}") public Response getUserInfo( diff --git a/tools/cldr-code/src/main/java/org/unicode/cldr/test/ExampleCache.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/ExampleCache.java index df98f09e9f0..e0f8b33ab7e 100644 --- a/tools/cldr-code/src/main/java/org/unicode/cldr/test/ExampleCache.java +++ b/tools/cldr-code/src/main/java/org/unicode/cldr/test/ExampleCache.java @@ -86,11 +86,7 @@ String getExample() { result = valueMap.get(value); } } - if (cacheOnly && result == NONE) { - throw new InternalError( - "getExampleHtml cacheOnly not found: " + xpath + ", " + value); - } - return (result == NONE) ? null : result; + return NONE.equals(result) ? null : result; } void putExample(String result) { @@ -174,17 +170,6 @@ void setCachingEnabled(boolean enabled) { cachingIsEnabled = enabled; } - /** - * For testing, we can switch some ExampleCaches into a special "cache only" mode, where they - * will throw an exception if queried for a path+value that isn't already in the cache. See - * TestExampleGeneratorDependencies. - */ - private boolean cacheOnly = false; - - void setCacheOnly(boolean only) { - this.cacheOnly = only; - } - /** * Clear the cached examples for any paths whose examples might depend on the winning value of * the given path, since the winning value of the given path has changed. diff --git a/tools/cldr-code/src/main/java/org/unicode/cldr/test/ExampleDependencies.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/ExampleDependencies.java index 9633ad44d71..745709730c6 100644 --- a/tools/cldr-code/src/main/java/org/unicode/cldr/test/ExampleDependencies.java +++ b/tools/cldr-code/src/main/java/org/unicode/cldr/test/ExampleDependencies.java @@ -1,813 +1,1588 @@ package org.unicode.cldr.test; - +/* DO NOT EDIT THIS FILE, instead regenerate it using GenerateExampleDependencies.java */ import com.google.common.collect.ImmutableSetMultimap; public class ExampleDependencies { public static ImmutableSetMultimap dependencies = new ImmutableSetMultimap.Builder() - .put( + .putAll( "//ldml/characterLabels/characterLabelPattern[@type=\"*\"]", "//ldml/characterLabels/characterLabel[@type=\"*\"]") - .put( + .putAll( "//ldml/characterLabels/characterLabel[@type=\"*\"]", "//ldml/characterLabels/characterLabelPattern[@type=\"*\"]") - .put( + .putAll( + "//ldml/characters/exemplarCharacters", + "//ldml/characters/exemplarCharacters[@type=\"*\"]") + .putAll( "//ldml/dates/calendars/calendar[@type=\"*\"]/dateFormats/dateFormatLength[@type=\"*\"]/dateFormat[@type=\"*\"]/pattern[@type=\"*\"]", "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/dateTimeFormatLength[@type=\"*\"]/dateTimeFormat[@type=\"*\"]/pattern[@type=\"*\"]") - .put( - "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/availableFormats/dateFormatItem[@id=\"*\"]", - "//ldml/dates/calendars/calendar[@type=\"*\"]/dayPeriods/dayPeriodContext[@type=\"*\"]/dayPeriodWidth[@type=\"*\"]/dayPeriod[@type=\"*\"]") - .put( + .putAll( "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/availableFormats/dateFormatItem[@id=\"*\"]", - "//ldml/dates/calendars/calendar[@type=\"*\"]/dayPeriods/dayPeriodContext[@type=\"*\"]/dayPeriodWidth[@type=\"*\"]/dayPeriod[@type=\"*\"][@alt=\"*\"]") - .put( - "//ldml/dates/calendars/calendar[@type=\"*\"]/dayPeriods/dayPeriodContext[@type=\"*\"]/dayPeriodWidth[@type=\"*\"]/dayPeriod[@type=\"*\"]", - "//ldml/dates/calendars/calendar[@type=\"*\"]/dateFormats/dateFormatLength[@type=\"*\"]/dateFormat[@type=\"*\"]/pattern[@type=\"*\"]") - .put( - "//ldml/dates/calendars/calendar[@type=\"*\"]/dayPeriods/dayPeriodContext[@type=\"*\"]/dayPeriodWidth[@type=\"*\"]/dayPeriod[@type=\"*\"]", - "//ldml/dates/calendars/calendar[@type=\"*\"]/dayPeriods/dayPeriodContext[@type=\"*\"]/dayPeriodWidth[@type=\"*\"]/dayPeriod[@type=\"*\"]") - .put( "//ldml/dates/calendars/calendar[@type=\"*\"]/dayPeriods/dayPeriodContext[@type=\"*\"]/dayPeriodWidth[@type=\"*\"]/dayPeriod[@type=\"*\"]", - "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern") - .put( + "//ldml/dates/calendars/calendar[@type=\"*\"]/dayPeriods/dayPeriodContext[@type=\"*\"]/dayPeriodWidth[@type=\"*\"]/dayPeriod[@type=\"*\"][@alt=\"*\"]") + .putAll( + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/intervalFormats/intervalFormatFallback", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/dateTimeFormatLength[@type=\"*\"]/dateTimeFormat[@type=\"*\"]/pattern[@type=\"*\"]") + .putAll( "//ldml/dates/calendars/calendar[@type=\"*\"]/dayPeriods/dayPeriodContext[@type=\"*\"]/dayPeriodWidth[@type=\"*\"]/dayPeriod[@type=\"*\"]", - "//ldml/localeDisplayNames/localeDisplayPattern/localePattern") - .put( + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateFormats/dateFormatLength[@type=\"*\"]/dateFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateFormats/dateFormatLength[@type=\"*\"]/dateFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/appendItems/appendItem[@request=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/availableFormats/dateFormatItem[@id=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/availableFormats/dateFormatItem[@id=\"*\"][@alt=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/availableFormats/dateFormatItem[@id=\"*\"][@count=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/dateTimeFormatLength[@type=\"*\"]/dateTimeFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/intervalFormats/intervalFormatItem[@id=\"*\"]/greatestDifference[@id=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/intervalFormats/intervalFormatItem[@id=\"*\"]/greatestDifference[@id=\"*\"][@alt=\"*\"]", "//ldml/dates/calendars/calendar[@type=\"*\"]/dayPeriods/dayPeriodContext[@type=\"*\"]/dayPeriodWidth[@type=\"*\"]/dayPeriod[@type=\"*\"]", - "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator") - .put( - "//ldml/dates/calendars/calendar[@type=\"*\"]/days/dayContext[@type=\"*\"]/dayWidth[@type=\"*\"]/day[@type=\"*\"]", - "//ldml/dates/calendars/calendar[@type=\"*\"]/dateFormats/dateFormatLength[@type=\"*\"]/dateFormat[@type=\"*\"]/pattern[@type=\"*\"]") - .put( - "//ldml/dates/calendars/calendar[@type=\"*\"]/days/dayContext[@type=\"*\"]/dayWidth[@type=\"*\"]/day[@type=\"*\"]", - "//ldml/dates/calendars/calendar[@type=\"*\"]/dayPeriods/dayPeriodContext[@type=\"*\"]/dayPeriodWidth[@type=\"*\"]/dayPeriod[@type=\"*\"]") - .put( - "//ldml/dates/calendars/calendar[@type=\"*\"]/days/dayContext[@type=\"*\"]/dayWidth[@type=\"*\"]/day[@type=\"*\"]", - "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern") - .put( - "//ldml/dates/calendars/calendar[@type=\"*\"]/days/dayContext[@type=\"*\"]/dayWidth[@type=\"*\"]/day[@type=\"*\"]", - "//ldml/localeDisplayNames/localeDisplayPattern/localePattern") - .put( - "//ldml/dates/calendars/calendar[@type=\"*\"]/days/dayContext[@type=\"*\"]/dayWidth[@type=\"*\"]/day[@type=\"*\"]", - "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator") - .put( - "//ldml/dates/calendars/calendar[@type=\"*\"]/eras/eraAbbr/era[@type=\"*\"]", - "//ldml/dates/calendars/calendar[@type=\"*\"]/dateFormats/dateFormatLength[@type=\"*\"]/dateFormat[@type=\"*\"]/pattern[@type=\"*\"]") - .put( - "//ldml/dates/calendars/calendar[@type=\"*\"]/eras/eraAbbr/era[@type=\"*\"]", - "//ldml/dates/calendars/calendar[@type=\"*\"]/dayPeriods/dayPeriodContext[@type=\"*\"]/dayPeriodWidth[@type=\"*\"]/dayPeriod[@type=\"*\"]") - .put( - "//ldml/dates/calendars/calendar[@type=\"*\"]/eras/eraAbbr/era[@type=\"*\"]", - "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern") - .put( - "//ldml/dates/calendars/calendar[@type=\"*\"]/eras/eraAbbr/era[@type=\"*\"]", - "//ldml/localeDisplayNames/localeDisplayPattern/localePattern") - .put( - "//ldml/dates/calendars/calendar[@type=\"*\"]/eras/eraAbbr/era[@type=\"*\"]", - "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator") - .put( - "//ldml/dates/calendars/calendar[@type=\"*\"]/eras/eraNames/era[@type=\"*\"]", - "//ldml/dates/calendars/calendar[@type=\"*\"]/dateFormats/dateFormatLength[@type=\"*\"]/dateFormat[@type=\"*\"]/pattern[@type=\"*\"]") - .put( - "//ldml/dates/calendars/calendar[@type=\"*\"]/eras/eraNames/era[@type=\"*\"]", - "//ldml/dates/calendars/calendar[@type=\"*\"]/dayPeriods/dayPeriodContext[@type=\"*\"]/dayPeriodWidth[@type=\"*\"]/dayPeriod[@type=\"*\"]") - .put( - "//ldml/dates/calendars/calendar[@type=\"*\"]/eras/eraNames/era[@type=\"*\"]", - "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern") - .put( - "//ldml/dates/calendars/calendar[@type=\"*\"]/eras/eraNames/era[@type=\"*\"]", - "//ldml/localeDisplayNames/localeDisplayPattern/localePattern") - .put( - "//ldml/dates/calendars/calendar[@type=\"*\"]/eras/eraNames/era[@type=\"*\"]", - "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator") - .put( - "//ldml/dates/calendars/calendar[@type=\"*\"]/months/monthContext[@type=\"*\"]/monthWidth[@type=\"*\"]/month[@type=\"*\"]", - "//ldml/dates/calendars/calendar[@type=\"*\"]/dateFormats/dateFormatLength[@type=\"*\"]/dateFormat[@type=\"*\"]/pattern[@type=\"*\"]") - .put( - "//ldml/dates/calendars/calendar[@type=\"*\"]/months/monthContext[@type=\"*\"]/monthWidth[@type=\"*\"]/month[@type=\"*\"]", - "//ldml/dates/calendars/calendar[@type=\"*\"]/dayPeriods/dayPeriodContext[@type=\"*\"]/dayPeriodWidth[@type=\"*\"]/dayPeriod[@type=\"*\"]") - .put( - "//ldml/dates/calendars/calendar[@type=\"*\"]/months/monthContext[@type=\"*\"]/monthWidth[@type=\"*\"]/month[@type=\"*\"]", - "//ldml/dates/calendars/calendar[@type=\"*\"]/monthPatterns/monthPatternContext[@type=\"*\"]/monthPatternWidth[@type=\"*\"]/monthPattern[@type=\"*\"]") - .put( - "//ldml/dates/calendars/calendar[@type=\"*\"]/months/monthContext[@type=\"*\"]/monthWidth[@type=\"*\"]/month[@type=\"*\"]", - "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern") - .put( - "//ldml/dates/calendars/calendar[@type=\"*\"]/months/monthContext[@type=\"*\"]/monthWidth[@type=\"*\"]/month[@type=\"*\"]", - "//ldml/localeDisplayNames/localeDisplayPattern/localePattern") - .put( - "//ldml/dates/calendars/calendar[@type=\"*\"]/months/monthContext[@type=\"*\"]/monthWidth[@type=\"*\"]/month[@type=\"*\"]", - "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator") - .put( - "//ldml/dates/calendars/calendar[@type=\"*\"]/quarters/quarterContext[@type=\"*\"]/quarterWidth[@type=\"*\"]/quarter[@type=\"*\"]", - "//ldml/dates/calendars/calendar[@type=\"*\"]/dateFormats/dateFormatLength[@type=\"*\"]/dateFormat[@type=\"*\"]/pattern[@type=\"*\"]") - .put( - "//ldml/dates/calendars/calendar[@type=\"*\"]/quarters/quarterContext[@type=\"*\"]/quarterWidth[@type=\"*\"]/quarter[@type=\"*\"]", - "//ldml/dates/calendars/calendar[@type=\"*\"]/dayPeriods/dayPeriodContext[@type=\"*\"]/dayPeriodWidth[@type=\"*\"]/dayPeriod[@type=\"*\"]") - .put( - "//ldml/dates/calendars/calendar[@type=\"*\"]/quarters/quarterContext[@type=\"*\"]/quarterWidth[@type=\"*\"]/quarter[@type=\"*\"]", - "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern") - .put( - "//ldml/dates/calendars/calendar[@type=\"*\"]/quarters/quarterContext[@type=\"*\"]/quarterWidth[@type=\"*\"]/quarter[@type=\"*\"]", - "//ldml/localeDisplayNames/localeDisplayPattern/localePattern") - .put( - "//ldml/dates/calendars/calendar[@type=\"*\"]/quarters/quarterContext[@type=\"*\"]/quarterWidth[@type=\"*\"]/quarter[@type=\"*\"]", - "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator") - .put( - "//ldml/dates/calendars/calendar[@type=\"*\"]/timeFormats/timeFormatLength[@type=\"*\"]/timeFormat[@type=\"*\"]/pattern[@type=\"*\"]", - "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/appendItems/appendItem[@request=\"*\"]") - .put( - "//ldml/dates/calendars/calendar[@type=\"*\"]/timeFormats/timeFormatLength[@type=\"*\"]/timeFormat[@type=\"*\"]/pattern[@type=\"*\"]", - "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/dateTimeFormatLength[@type=\"*\"]/dateTimeFormat[@type=\"*\"]/pattern[@type=\"*\"]") - .put( - "//ldml/dates/calendars/calendar[@type=\"*\"]/timeFormats/timeFormatLength[@type=\"*\"]/timeFormat[@type=\"*\"]/pattern[@type=\"*\"]", - "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/long/daylight") - .put( - "//ldml/dates/calendars/calendar[@type=\"*\"]/timeFormats/timeFormatLength[@type=\"*\"]/timeFormat[@type=\"*\"]/pattern[@type=\"*\"]", - "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/long/generic") - .put( + "//ldml/dates/calendars/calendar[@type=\"*\"]/dayPeriods/dayPeriodContext[@type=\"*\"]/dayPeriodWidth[@type=\"*\"]/dayPeriod[@type=\"*\"][@alt=\"*\"]", "//ldml/dates/calendars/calendar[@type=\"*\"]/timeFormats/timeFormatLength[@type=\"*\"]/timeFormat[@type=\"*\"]/pattern[@type=\"*\"]", - "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/long/standard") - .put( + "//ldml/dates/calendars/calendar[@type=\"*\"]/timeFormats/timeFormatLength[@type=\"*\"]/timeFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/dates/timeZoneNames/gmtFormat", + "//ldml/dates/timeZoneNames/hourFormat", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/long/daylight", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/long/generic", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/long/standard", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/short/daylight", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/short/generic", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/short/standard", + "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern", + "//ldml/localeDisplayNames/localeDisplayPattern/localePattern", + "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator", + "//ldml/units/durationUnit[@type=\"*\"]/durationUnitPattern", + "//ldml/units/durationUnit[@type=\"*\"]/durationUnitPattern[@alt=\"*\"]") + .putAll( + "//ldml/dates/calendars/calendar[@type=\"*\"]/days/dayContext[@type=\"*\"]/dayWidth[@type=\"*\"]/day[@type=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateFormats/dateFormatLength[@type=\"*\"]/dateFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateFormats/dateFormatLength[@type=\"*\"]/dateFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/appendItems/appendItem[@request=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/availableFormats/dateFormatItem[@id=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/availableFormats/dateFormatItem[@id=\"*\"][@alt=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/availableFormats/dateFormatItem[@id=\"*\"][@count=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/dateTimeFormatLength[@type=\"*\"]/dateTimeFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/intervalFormats/intervalFormatItem[@id=\"*\"]/greatestDifference[@id=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/intervalFormats/intervalFormatItem[@id=\"*\"]/greatestDifference[@id=\"*\"][@alt=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dayPeriods/dayPeriodContext[@type=\"*\"]/dayPeriodWidth[@type=\"*\"]/dayPeriod[@type=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dayPeriods/dayPeriodContext[@type=\"*\"]/dayPeriodWidth[@type=\"*\"]/dayPeriod[@type=\"*\"][@alt=\"*\"]", "//ldml/dates/calendars/calendar[@type=\"*\"]/timeFormats/timeFormatLength[@type=\"*\"]/timeFormat[@type=\"*\"]/pattern[@type=\"*\"]", - "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/short/daylight") - .put( + "//ldml/dates/calendars/calendar[@type=\"*\"]/timeFormats/timeFormatLength[@type=\"*\"]/timeFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/dates/timeZoneNames/gmtFormat", + "//ldml/dates/timeZoneNames/hourFormat", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/long/daylight", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/long/generic", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/long/standard", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/short/daylight", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/short/generic", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/short/standard", + "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern", + "//ldml/localeDisplayNames/localeDisplayPattern/localePattern", + "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator", + "//ldml/units/durationUnit[@type=\"*\"]/durationUnitPattern", + "//ldml/units/durationUnit[@type=\"*\"]/durationUnitPattern[@alt=\"*\"]") + .putAll( + "//ldml/dates/calendars/calendar[@type=\"*\"]/eras/eraAbbr/era[@type=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateFormats/dateFormatLength[@type=\"*\"]/dateFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateFormats/dateFormatLength[@type=\"*\"]/dateFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/appendItems/appendItem[@request=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/availableFormats/dateFormatItem[@id=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/availableFormats/dateFormatItem[@id=\"*\"][@alt=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/availableFormats/dateFormatItem[@id=\"*\"][@count=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/dateTimeFormatLength[@type=\"*\"]/dateTimeFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/intervalFormats/intervalFormatItem[@id=\"*\"]/greatestDifference[@id=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/intervalFormats/intervalFormatItem[@id=\"*\"]/greatestDifference[@id=\"*\"][@alt=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dayPeriods/dayPeriodContext[@type=\"*\"]/dayPeriodWidth[@type=\"*\"]/dayPeriod[@type=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dayPeriods/dayPeriodContext[@type=\"*\"]/dayPeriodWidth[@type=\"*\"]/dayPeriod[@type=\"*\"][@alt=\"*\"]", "//ldml/dates/calendars/calendar[@type=\"*\"]/timeFormats/timeFormatLength[@type=\"*\"]/timeFormat[@type=\"*\"]/pattern[@type=\"*\"]", - "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/short/generic") - .put( + "//ldml/dates/calendars/calendar[@type=\"*\"]/timeFormats/timeFormatLength[@type=\"*\"]/timeFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/dates/timeZoneNames/gmtFormat", + "//ldml/dates/timeZoneNames/hourFormat", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/long/daylight", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/long/generic", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/long/standard", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/short/daylight", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/short/generic", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/short/standard", + "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern", + "//ldml/localeDisplayNames/localeDisplayPattern/localePattern", + "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator", + "//ldml/units/durationUnit[@type=\"*\"]/durationUnitPattern", + "//ldml/units/durationUnit[@type=\"*\"]/durationUnitPattern[@alt=\"*\"]") + .putAll( + "//ldml/dates/calendars/calendar[@type=\"*\"]/eras/eraNames/era[@type=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateFormats/dateFormatLength[@type=\"*\"]/dateFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateFormats/dateFormatLength[@type=\"*\"]/dateFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/appendItems/appendItem[@request=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/availableFormats/dateFormatItem[@id=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/availableFormats/dateFormatItem[@id=\"*\"][@alt=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/availableFormats/dateFormatItem[@id=\"*\"][@count=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/dateTimeFormatLength[@type=\"*\"]/dateTimeFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/intervalFormats/intervalFormatItem[@id=\"*\"]/greatestDifference[@id=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/intervalFormats/intervalFormatItem[@id=\"*\"]/greatestDifference[@id=\"*\"][@alt=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dayPeriods/dayPeriodContext[@type=\"*\"]/dayPeriodWidth[@type=\"*\"]/dayPeriod[@type=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dayPeriods/dayPeriodContext[@type=\"*\"]/dayPeriodWidth[@type=\"*\"]/dayPeriod[@type=\"*\"][@alt=\"*\"]", "//ldml/dates/calendars/calendar[@type=\"*\"]/timeFormats/timeFormatLength[@type=\"*\"]/timeFormat[@type=\"*\"]/pattern[@type=\"*\"]", - "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/short/standard") - .put( + "//ldml/dates/calendars/calendar[@type=\"*\"]/timeFormats/timeFormatLength[@type=\"*\"]/timeFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/dates/timeZoneNames/gmtFormat", + "//ldml/dates/timeZoneNames/hourFormat", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/long/daylight", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/long/generic", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/long/standard", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/short/daylight", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/short/generic", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/short/standard", + "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern", + "//ldml/localeDisplayNames/localeDisplayPattern/localePattern", + "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator", + "//ldml/units/durationUnit[@type=\"*\"]/durationUnitPattern", + "//ldml/units/durationUnit[@type=\"*\"]/durationUnitPattern[@alt=\"*\"]") + .putAll( + "//ldml/dates/calendars/calendar[@type=\"*\"]/months/monthContext[@type=\"*\"]/monthWidth[@type=\"*\"]/month[@type=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateFormats/dateFormatLength[@type=\"*\"]/dateFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateFormats/dateFormatLength[@type=\"*\"]/dateFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/appendItems/appendItem[@request=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/availableFormats/dateFormatItem[@id=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/availableFormats/dateFormatItem[@id=\"*\"][@alt=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/availableFormats/dateFormatItem[@id=\"*\"][@count=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/dateTimeFormatLength[@type=\"*\"]/dateTimeFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/intervalFormats/intervalFormatItem[@id=\"*\"]/greatestDifference[@id=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/intervalFormats/intervalFormatItem[@id=\"*\"]/greatestDifference[@id=\"*\"][@alt=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dayPeriods/dayPeriodContext[@type=\"*\"]/dayPeriodWidth[@type=\"*\"]/dayPeriod[@type=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dayPeriods/dayPeriodContext[@type=\"*\"]/dayPeriodWidth[@type=\"*\"]/dayPeriod[@type=\"*\"][@alt=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/monthPatterns/monthPatternContext[@type=\"*\"]/monthPatternWidth[@type=\"*\"]/monthPattern[@type=\"*\"]", "//ldml/dates/calendars/calendar[@type=\"*\"]/timeFormats/timeFormatLength[@type=\"*\"]/timeFormat[@type=\"*\"]/pattern[@type=\"*\"]", - "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern") - .put( + "//ldml/dates/calendars/calendar[@type=\"*\"]/timeFormats/timeFormatLength[@type=\"*\"]/timeFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/dates/timeZoneNames/gmtFormat", + "//ldml/dates/timeZoneNames/hourFormat", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/long/daylight", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/long/generic", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/long/standard", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/short/daylight", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/short/generic", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/short/standard", + "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern", + "//ldml/localeDisplayNames/localeDisplayPattern/localePattern", + "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator", + "//ldml/units/durationUnit[@type=\"*\"]/durationUnitPattern", + "//ldml/units/durationUnit[@type=\"*\"]/durationUnitPattern[@alt=\"*\"]") + .putAll( + "//ldml/dates/calendars/calendar[@type=\"*\"]/quarters/quarterContext[@type=\"*\"]/quarterWidth[@type=\"*\"]/quarter[@type=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateFormats/dateFormatLength[@type=\"*\"]/dateFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateFormats/dateFormatLength[@type=\"*\"]/dateFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/appendItems/appendItem[@request=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/availableFormats/dateFormatItem[@id=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/availableFormats/dateFormatItem[@id=\"*\"][@alt=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/availableFormats/dateFormatItem[@id=\"*\"][@count=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/dateTimeFormatLength[@type=\"*\"]/dateTimeFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/intervalFormats/intervalFormatItem[@id=\"*\"]/greatestDifference[@id=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/intervalFormats/intervalFormatItem[@id=\"*\"]/greatestDifference[@id=\"*\"][@alt=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dayPeriods/dayPeriodContext[@type=\"*\"]/dayPeriodWidth[@type=\"*\"]/dayPeriod[@type=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dayPeriods/dayPeriodContext[@type=\"*\"]/dayPeriodWidth[@type=\"*\"]/dayPeriod[@type=\"*\"][@alt=\"*\"]", "//ldml/dates/calendars/calendar[@type=\"*\"]/timeFormats/timeFormatLength[@type=\"*\"]/timeFormat[@type=\"*\"]/pattern[@type=\"*\"]", - "//ldml/localeDisplayNames/localeDisplayPattern/localePattern") - .put( + "//ldml/dates/calendars/calendar[@type=\"*\"]/timeFormats/timeFormatLength[@type=\"*\"]/timeFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/dates/timeZoneNames/gmtFormat", + "//ldml/dates/timeZoneNames/hourFormat", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/long/daylight", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/long/generic", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/long/standard", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/short/daylight", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/short/generic", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/short/standard", + "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern", + "//ldml/localeDisplayNames/localeDisplayPattern/localePattern", + "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator", + "//ldml/units/durationUnit[@type=\"*\"]/durationUnitPattern", + "//ldml/units/durationUnit[@type=\"*\"]/durationUnitPattern[@alt=\"*\"]") + .putAll( "//ldml/dates/calendars/calendar[@type=\"*\"]/timeFormats/timeFormatLength[@type=\"*\"]/timeFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/appendItems/appendItem[@request=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/dateTimeFormatLength[@type=\"*\"]/dateTimeFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/long/daylight", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/long/generic", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/long/standard", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/short/daylight", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/short/generic", + "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/short/standard", + "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern", + "//ldml/localeDisplayNames/localeDisplayPattern/localePattern", "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator") - .put( - "//ldml/dates/timeZoneNames/fallbackFormat", - "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern") - .put( - "//ldml/dates/timeZoneNames/fallbackFormat", - "//ldml/localeDisplayNames/localeDisplayPattern/localePattern") - .put( + .putAll( + "//ldml/dates/fields/field[@type=\"*\"]/relative[@type=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/dateTimeFormatLength[@type=\"*\"]/dateTimeFormat[@type=\"*\"]/pattern[@type=\"*\"]") + .putAll( "//ldml/dates/timeZoneNames/fallbackFormat", + "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern", + "//ldml/localeDisplayNames/localeDisplayPattern/localePattern", "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator") - .put( - "//ldml/dates/timeZoneNames/gmtFormat", - "//ldml/dates/timeZoneNames/hourFormat") - .put( - "//ldml/dates/timeZoneNames/gmtFormat", - "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern") - .put( - "//ldml/dates/timeZoneNames/gmtFormat", - "//ldml/localeDisplayNames/localeDisplayPattern/localePattern") - .put( + .putAll( "//ldml/dates/timeZoneNames/gmtFormat", + "//ldml/dates/timeZoneNames/hourFormat", + "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern", + "//ldml/localeDisplayNames/localeDisplayPattern/localePattern", "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator") - .put( + .putAll( "//ldml/dates/timeZoneNames/gmtZeroFormat", "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/appendItems/appendItem[@request=\"*\"]") - .put( - "//ldml/dates/timeZoneNames/hourFormat", - "//ldml/dates/timeZoneNames/gmtFormat") - .put( - "//ldml/dates/timeZoneNames/hourFormat", - "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern") - .put( - "//ldml/dates/timeZoneNames/hourFormat", - "//ldml/localeDisplayNames/localeDisplayPattern/localePattern") - .put( + .putAll( "//ldml/dates/timeZoneNames/hourFormat", + "//ldml/dates/timeZoneNames/gmtFormat", + "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern", + "//ldml/localeDisplayNames/localeDisplayPattern/localePattern", "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator") - .put( + .putAll( "//ldml/dates/timeZoneNames/metazone[@type=\"*\"]/long/generic", "//ldml/dates/timeZoneNames/fallbackFormat") - .put( - "//ldml/dates/timeZoneNames/regionFormat", - "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern") - .put( - "//ldml/dates/timeZoneNames/regionFormat", - "//ldml/localeDisplayNames/localeDisplayPattern/localePattern") - .put( + .putAll( "//ldml/dates/timeZoneNames/regionFormat", + "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern", + "//ldml/localeDisplayNames/localeDisplayPattern/localePattern", "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator") - .put( - "//ldml/dates/timeZoneNames/regionFormat[@type=\"*\"]", - "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern") - .put( - "//ldml/dates/timeZoneNames/regionFormat[@type=\"*\"]", - "//ldml/localeDisplayNames/localeDisplayPattern/localePattern") - .put( + .putAll( "//ldml/dates/timeZoneNames/regionFormat[@type=\"*\"]", + "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern", + "//ldml/localeDisplayNames/localeDisplayPattern/localePattern", "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator") - .put( - "//ldml/dates/timeZoneNames/zone[@type=\"*\"]/exemplarCity", - "//ldml/dates/timeZoneNames/fallbackFormat") - .put( - "//ldml/dates/timeZoneNames/zone[@type=\"*\"]/exemplarCity", - "//ldml/dates/timeZoneNames/regionFormat") - .put( + .putAll( "//ldml/dates/timeZoneNames/zone[@type=\"*\"]/exemplarCity", + "//ldml/dates/timeZoneNames/fallbackFormat", + "//ldml/dates/timeZoneNames/regionFormat", "//ldml/dates/timeZoneNames/regionFormat[@type=\"*\"]") - .put( - "//ldml/delimiters/alternateQuotationEnd", - "//ldml/delimiters/alternateQuotationStart") - .put( - "//ldml/delimiters/alternateQuotationEnd", - "//ldml/delimiters/quotationEnd") - .put( + .putAll( "//ldml/delimiters/alternateQuotationEnd", - "//ldml/delimiters/quotationStart") - .put( - "//ldml/delimiters/alternateQuotationStart", - "//ldml/delimiters/alternateQuotationEnd") - .put( - "//ldml/delimiters/alternateQuotationStart", - "//ldml/delimiters/quotationEnd") - .put( "//ldml/delimiters/alternateQuotationStart", + "//ldml/delimiters/quotationEnd", "//ldml/delimiters/quotationStart") - .put( + .putAll( + "//ldml/delimiters/alternateQuotationStart", + "//ldml/delimiters/alternateQuotationEnd", "//ldml/delimiters/quotationEnd", - "//ldml/delimiters/alternateQuotationEnd") - .put( + "//ldml/delimiters/quotationStart") + .putAll( "//ldml/delimiters/quotationEnd", - "//ldml/delimiters/alternateQuotationStart") - .put("//ldml/delimiters/quotationEnd", "//ldml/delimiters/quotationStart") - .put( - "//ldml/delimiters/quotationStart", - "//ldml/delimiters/alternateQuotationEnd") - .put( + "//ldml/delimiters/alternateQuotationEnd", + "//ldml/delimiters/alternateQuotationStart", + "//ldml/delimiters/quotationStart") + .putAll( "//ldml/delimiters/quotationStart", - "//ldml/delimiters/alternateQuotationStart") - .put("//ldml/delimiters/quotationStart", "//ldml/delimiters/quotationEnd") - .put( + "//ldml/delimiters/alternateQuotationEnd", + "//ldml/delimiters/alternateQuotationStart", + "//ldml/delimiters/quotationEnd") + .putAll( "//ldml/listPatterns/listPattern/listPatternPart[@type=\"*\"]", "//ldml/listPatterns/listPattern/listPatternPart[@type=\"*\"]") - .put( + .putAll( "//ldml/listPatterns/listPattern[@type=\"*\"]/listPatternPart[@type=\"*\"]", "//ldml/listPatterns/listPattern[@type=\"*\"]/listPatternPart[@type=\"*\"]") - .put( - "//ldml/localeDisplayNames/codePatterns/codePattern[@type=\"*\"]", - "//ldml/localeDisplayNames/languages/language[@type=\"*\"]") - .put( - "//ldml/localeDisplayNames/codePatterns/codePattern[@type=\"*\"]", - "//ldml/localeDisplayNames/languages/language[@type=\"*\"][@alt=\"*\"]") - .put( - "//ldml/localeDisplayNames/codePatterns/codePattern[@type=\"*\"]", - "//ldml/localeDisplayNames/scripts/script[@type=\"*\"]") - .put( - "//ldml/localeDisplayNames/codePatterns/codePattern[@type=\"*\"]", - "//ldml/localeDisplayNames/scripts/script[@type=\"*\"][@alt=\"*\"]") - .put( - "//ldml/localeDisplayNames/codePatterns/codePattern[@type=\"*\"]", - "//ldml/localeDisplayNames/territories/territory[@type=\"*\"]") - .put( + .putAll( "//ldml/localeDisplayNames/codePatterns/codePattern[@type=\"*\"]", + "//ldml/localeDisplayNames/languages/language[@type=\"*\"]", + "//ldml/localeDisplayNames/languages/language[@type=\"*\"][@alt=\"*\"]", + "//ldml/localeDisplayNames/scripts/script[@type=\"*\"]", + "//ldml/localeDisplayNames/scripts/script[@type=\"*\"][@alt=\"*\"]", + "//ldml/localeDisplayNames/territories/territory[@type=\"*\"]", "//ldml/localeDisplayNames/territories/territory[@type=\"*\"][@alt=\"*\"]") - .put( - "//ldml/localeDisplayNames/keys/key[@type=\"*\"]", - "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern") - .put( - "//ldml/localeDisplayNames/keys/key[@type=\"*\"]", - "//ldml/localeDisplayNames/localeDisplayPattern/localePattern") - .put( + .putAll( "//ldml/localeDisplayNames/keys/key[@type=\"*\"]", + "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern", + "//ldml/localeDisplayNames/localeDisplayPattern/localePattern", "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator") - .put( - "//ldml/localeDisplayNames/languages/language[@type=\"*\"]", - "//ldml/localeDisplayNames/languages/language[@type=\"*\"]") - .put( - "//ldml/localeDisplayNames/languages/language[@type=\"*\"]", - "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern") - .put( - "//ldml/localeDisplayNames/languages/language[@type=\"*\"]", - "//ldml/localeDisplayNames/localeDisplayPattern/localePattern") - .put( + .putAll( "//ldml/localeDisplayNames/languages/language[@type=\"*\"]", - "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator") - .put( "//ldml/localeDisplayNames/languages/language[@type=\"*\"]", - "//ldml/localeDisplayNames/scripts/script[@type=\"*\"]") - .put( + "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern", + "//ldml/localeDisplayNames/localeDisplayPattern/localePattern", + "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator", + "//ldml/localeDisplayNames/scripts/script[@type=\"*\"]", + "//ldml/localeDisplayNames/scripts/script[@type=\"*\"][@alt=\"*\"]", + "//ldml/localeDisplayNames/territories/territory[@type=\"*\"]", + "//ldml/localeDisplayNames/territories/territory[@type=\"*\"][@alt=\"*\"]", + "//ldml/personNames/nameOrderLocales[@order=\"*\"]") + .putAll( + "//ldml/localeDisplayNames/languages/language[@type=\"*\"][@alt=\"*\"]", "//ldml/localeDisplayNames/languages/language[@type=\"*\"]", - "//ldml/localeDisplayNames/scripts/script[@type=\"*\"][@alt=\"*\"]") - .put( + "//ldml/localeDisplayNames/languages/language[@type=\"*\"][@alt=\"*\"]") + .putAll( + "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern", "//ldml/localeDisplayNames/languages/language[@type=\"*\"]", - "//ldml/localeDisplayNames/territories/territory[@type=\"*\"]") - .put( + "//ldml/localeDisplayNames/localeDisplayPattern/localePattern", + "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator", + "//ldml/personNames/nameOrderLocales[@order=\"*\"]") + .putAll( + "//ldml/localeDisplayNames/localeDisplayPattern/localePattern", "//ldml/localeDisplayNames/languages/language[@type=\"*\"]", - "//ldml/localeDisplayNames/territories/territory[@type=\"*\"][@alt=\"*\"]") - .put( - "//ldml/localeDisplayNames/languages/language[@type=\"*\"][@alt=\"*\"]", - "//ldml/localeDisplayNames/languages/language[@type=\"*\"]") - .put( "//ldml/localeDisplayNames/languages/language[@type=\"*\"][@alt=\"*\"]", - "//ldml/localeDisplayNames/languages/language[@type=\"*\"][@alt=\"*\"]") - .put( - "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern", - "//ldml/localeDisplayNames/languages/language[@type=\"*\"]") - .put( - "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern", - "//ldml/localeDisplayNames/languages/language[@type=\"*\"][@alt=\"*\"]") - .put( "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern", - "//ldml/localeDisplayNames/localeDisplayPattern/localePattern") - .put( + "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator", + "//ldml/localeDisplayNames/scripts/script[@type=\"*\"]", + "//ldml/localeDisplayNames/scripts/script[@type=\"*\"][@alt=\"*\"]", + "//ldml/localeDisplayNames/territories/territory[@type=\"*\"]", + "//ldml/localeDisplayNames/territories/territory[@type=\"*\"][@alt=\"*\"]", + "//ldml/personNames/nameOrderLocales[@order=\"*\"]") + .putAll( + "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator", + "//ldml/localeDisplayNames/languages/language[@type=\"*\"]", + "//ldml/localeDisplayNames/languages/language[@type=\"*\"][@alt=\"*\"]", "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern", - "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator") - .put( - "//ldml/localeDisplayNames/localeDisplayPattern/localePattern", - "//ldml/localeDisplayNames/languages/language[@type=\"*\"]") - .put( "//ldml/localeDisplayNames/localeDisplayPattern/localePattern", - "//ldml/localeDisplayNames/languages/language[@type=\"*\"][@alt=\"*\"]") - .put( - "//ldml/localeDisplayNames/localeDisplayPattern/localePattern", - "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern") - .put( + "//ldml/localeDisplayNames/scripts/script[@type=\"*\"]", + "//ldml/localeDisplayNames/scripts/script[@type=\"*\"][@alt=\"*\"]", + "//ldml/localeDisplayNames/territories/territory[@type=\"*\"]", + "//ldml/localeDisplayNames/territories/territory[@type=\"*\"][@alt=\"*\"]", + "//ldml/personNames/nameOrderLocales[@order=\"*\"]") + .putAll( + "//ldml/localeDisplayNames/scripts/script[@type=\"*\"]", + "//ldml/localeDisplayNames/languages/language[@type=\"*\"]", + "//ldml/localeDisplayNames/languages/language[@type=\"*\"][@alt=\"*\"]", + "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern", "//ldml/localeDisplayNames/localeDisplayPattern/localePattern", - "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator") - .put( - "//ldml/localeDisplayNames/localeDisplayPattern/localePattern", - "//ldml/localeDisplayNames/scripts/script[@type=\"*\"]") - .put( - "//ldml/localeDisplayNames/localeDisplayPattern/localePattern", - "//ldml/localeDisplayNames/scripts/script[@type=\"*\"][@alt=\"*\"]") - .put( - "//ldml/localeDisplayNames/localeDisplayPattern/localePattern", - "//ldml/localeDisplayNames/territories/territory[@type=\"*\"]") - .put( - "//ldml/localeDisplayNames/localeDisplayPattern/localePattern", - "//ldml/localeDisplayNames/territories/territory[@type=\"*\"][@alt=\"*\"]") - .put( - "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator", - "//ldml/localeDisplayNames/languages/language[@type=\"*\"]") - .put( - "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator", - "//ldml/localeDisplayNames/languages/language[@type=\"*\"][@alt=\"*\"]") - .put( - "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator", - "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern") - .put( - "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator", - "//ldml/localeDisplayNames/localeDisplayPattern/localePattern") - .put( - "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator", - "//ldml/localeDisplayNames/scripts/script[@type=\"*\"]") - .put( - "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator", - "//ldml/localeDisplayNames/scripts/script[@type=\"*\"][@alt=\"*\"]") - .put( - "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator", - "//ldml/localeDisplayNames/territories/territory[@type=\"*\"]") - .put( "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator", + "//ldml/localeDisplayNames/territories/territory[@type=\"*\"]", "//ldml/localeDisplayNames/territories/territory[@type=\"*\"][@alt=\"*\"]") - .put( - "//ldml/localeDisplayNames/scripts/script[@type=\"*\"]", - "//ldml/localeDisplayNames/languages/language[@type=\"*\"]") - .put( - "//ldml/localeDisplayNames/scripts/script[@type=\"*\"]", - "//ldml/localeDisplayNames/languages/language[@type=\"*\"][@alt=\"*\"]") - .put( - "//ldml/localeDisplayNames/scripts/script[@type=\"*\"]", - "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern") - .put( - "//ldml/localeDisplayNames/scripts/script[@type=\"*\"]", - "//ldml/localeDisplayNames/localeDisplayPattern/localePattern") - .put( - "//ldml/localeDisplayNames/scripts/script[@type=\"*\"]", - "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator") - .put( - "//ldml/localeDisplayNames/scripts/script[@type=\"*\"]", - "//ldml/localeDisplayNames/territories/territory[@type=\"*\"]") - .put( - "//ldml/localeDisplayNames/scripts/script[@type=\"*\"]", - "//ldml/localeDisplayNames/territories/territory[@type=\"*\"][@alt=\"*\"]") - .put( - "//ldml/localeDisplayNames/scripts/script[@type=\"*\"][@alt=\"*\"]", - "//ldml/localeDisplayNames/languages/language[@type=\"*\"][@alt=\"*\"]") - .put( - "//ldml/localeDisplayNames/scripts/script[@type=\"*\"][@alt=\"*\"]", - "//ldml/localeDisplayNames/scripts/script[@type=\"*\"]") - .put( + .putAll( "//ldml/localeDisplayNames/scripts/script[@type=\"*\"][@alt=\"*\"]", + "//ldml/localeDisplayNames/scripts/script[@type=\"*\"]", "//ldml/localeDisplayNames/scripts/script[@type=\"*\"][@alt=\"*\"]") - .put( - "//ldml/localeDisplayNames/territories/territory[@type=\"*\"]", - "//ldml/characterLabels/characterLabelPattern[@type=\"*\"]") - .put( - "//ldml/localeDisplayNames/territories/territory[@type=\"*\"]", - "//ldml/characterLabels/characterLabel[@type=\"*\"]") - .put( - "//ldml/localeDisplayNames/territories/territory[@type=\"*\"]", - "//ldml/characters/ellipsis[@type=\"*\"]") - .put( - "//ldml/localeDisplayNames/territories/territory[@type=\"*\"]", - "//ldml/dates/timeZoneNames/regionFormat") - .put( - "//ldml/localeDisplayNames/territories/territory[@type=\"*\"]", - "//ldml/dates/timeZoneNames/regionFormat[@type=\"*\"]") - .put( - "//ldml/localeDisplayNames/territories/territory[@type=\"*\"]", - "//ldml/listPatterns/listPattern/listPatternPart[@type=\"*\"]") - .put( - "//ldml/localeDisplayNames/territories/territory[@type=\"*\"]", - "//ldml/listPatterns/listPattern[@type=\"*\"]/listPatternPart[@type=\"*\"]") - .put( - "//ldml/localeDisplayNames/territories/territory[@type=\"*\"]", - "//ldml/localeDisplayNames/languages/language[@type=\"*\"]") - .put( - "//ldml/localeDisplayNames/territories/territory[@type=\"*\"]", - "//ldml/localeDisplayNames/languages/language[@type=\"*\"][@alt=\"*\"]") - .put( - "//ldml/localeDisplayNames/territories/territory[@type=\"*\"]", - "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern") - .put( - "//ldml/localeDisplayNames/territories/territory[@type=\"*\"]", - "//ldml/localeDisplayNames/localeDisplayPattern/localePattern") - .put( - "//ldml/localeDisplayNames/territories/territory[@type=\"*\"]", - "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator") - .put( - "//ldml/localeDisplayNames/territories/territory[@type=\"*\"]", - "//ldml/localeDisplayNames/scripts/script[@type=\"*\"]") - .put( + .putAll( "//ldml/localeDisplayNames/territories/territory[@type=\"*\"]", + "//ldml/characterLabels/characterLabelPattern[@type=\"*\"]", + "//ldml/characterLabels/characterLabel[@type=\"*\"]", + "//ldml/characters/ellipsis[@type=\"*\"]", + "//ldml/dates/timeZoneNames/regionFormat", + "//ldml/dates/timeZoneNames/regionFormat[@type=\"*\"]", + "//ldml/listPatterns/listPattern/listPatternPart[@type=\"*\"]", + "//ldml/listPatterns/listPattern[@type=\"*\"]/listPatternPart[@type=\"*\"]", + "//ldml/localeDisplayNames/languages/language[@type=\"*\"]", + "//ldml/localeDisplayNames/languages/language[@type=\"*\"][@alt=\"*\"]", + "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern", + "//ldml/localeDisplayNames/localeDisplayPattern/localePattern", + "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator", + "//ldml/localeDisplayNames/scripts/script[@type=\"*\"]", "//ldml/localeDisplayNames/scripts/script[@type=\"*\"][@alt=\"*\"]") - .put( - "//ldml/localeDisplayNames/territories/territory[@type=\"*\"][@alt=\"*\"]", - "//ldml/localeDisplayNames/languages/language[@type=\"*\"][@alt=\"*\"]") - .put( - "//ldml/localeDisplayNames/territories/territory[@type=\"*\"][@alt=\"*\"]", - "//ldml/localeDisplayNames/territories/territory[@type=\"*\"]") - .put( + .putAll( "//ldml/localeDisplayNames/territories/territory[@type=\"*\"][@alt=\"*\"]", + "//ldml/localeDisplayNames/territories/territory[@type=\"*\"]", "//ldml/localeDisplayNames/territories/territory[@type=\"*\"][@alt=\"*\"]") - .put( - "//ldml/localeDisplayNames/types/type[@key=\"*\"][@type=\"*\"]", - "//ldml/delimiters/alternateQuotationEnd") - .put( - "//ldml/localeDisplayNames/types/type[@key=\"*\"][@type=\"*\"]", - "//ldml/delimiters/alternateQuotationStart") - .put( - "//ldml/localeDisplayNames/types/type[@key=\"*\"][@type=\"*\"]", - "//ldml/delimiters/quotationEnd") - .put( - "//ldml/localeDisplayNames/types/type[@key=\"*\"][@type=\"*\"]", - "//ldml/delimiters/quotationStart") - .put( - "//ldml/localeDisplayNames/types/type[@key=\"*\"][@type=\"*\"]", - "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern") - .put( - "//ldml/localeDisplayNames/types/type[@key=\"*\"][@type=\"*\"]", - "//ldml/localeDisplayNames/localeDisplayPattern/localePattern") - .put( + .putAll( "//ldml/localeDisplayNames/types/type[@key=\"*\"][@type=\"*\"]", + "//ldml/delimiters/alternateQuotationEnd", + "//ldml/delimiters/alternateQuotationStart", + "//ldml/delimiters/quotationEnd", + "//ldml/delimiters/quotationStart", + "//ldml/localeDisplayNames/localeDisplayPattern/localeKeyTypePattern", + "//ldml/localeDisplayNames/localeDisplayPattern/localePattern", "//ldml/localeDisplayNames/localeDisplayPattern/localeSeparator") - .put( - "//ldml/numbers/currencies/currency[@type=\"*\"]/decimal", - "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName[@count=\"*\"]") - .put( - "//ldml/numbers/currencies/currency[@type=\"*\"]/decimal", - "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol") - .put( - "//ldml/numbers/currencies/currency[@type=\"*\"]/decimal", - "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol[@alt=\"*\"]") - .put( - "//ldml/numbers/currencies/currency[@type=\"*\"]/decimal", - "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]") - .put( - "//ldml/numbers/currencies/currency[@type=\"*\"]/decimal", - "//ldml/numbers/currencyFormats/unitPattern[@count=\"*\"]") - .put( + .putAll( "//ldml/numbers/currencies/currency[@type=\"*\"]/decimal", - "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]") - .put( - "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName", - "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName[@count=\"*\"]") - .put( - "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName", - "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol") - .put( - "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName", - "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol[@alt=\"*\"]") - .put( - "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName", - "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]") - .put( - "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName", - "//ldml/numbers/currencyFormats/unitPattern[@count=\"*\"]") - .put( + "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName[@count=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol[@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/unitPattern[@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/unitPattern[@count=\"*\"]") + .putAll( "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName", - "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]") - .put( "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName[@count=\"*\"]", - "//ldml/numbers/currencyFormats/unitPattern[@count=\"*\"]") - .put( + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol[@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/unitPattern[@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/unitPattern[@count=\"*\"]") + .putAll( "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName[@count=\"*\"]", + "//ldml/numbers/currencyFormats/unitPattern[@count=\"*\"]", "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/unitPattern[@count=\"*\"]") - .put( - "//ldml/numbers/currencies/currency[@type=\"*\"]/grouping", - "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName[@count=\"*\"]") - .put( - "//ldml/numbers/currencies/currency[@type=\"*\"]/grouping", - "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol") - .put( - "//ldml/numbers/currencies/currency[@type=\"*\"]/grouping", - "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol[@alt=\"*\"]") - .put( - "//ldml/numbers/currencies/currency[@type=\"*\"]/grouping", - "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]") - .put( - "//ldml/numbers/currencies/currency[@type=\"*\"]/grouping", - "//ldml/numbers/currencyFormats/unitPattern[@count=\"*\"]") - .put( + .putAll( "//ldml/numbers/currencies/currency[@type=\"*\"]/grouping", - "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]") - .put( - "//ldml/numbers/currencies/currency[@type=\"*\"]/pattern", - "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName[@count=\"*\"]") - .put( - "//ldml/numbers/currencies/currency[@type=\"*\"]/pattern", - "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol") - .put( - "//ldml/numbers/currencies/currency[@type=\"*\"]/pattern", - "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol[@alt=\"*\"]") - .put( - "//ldml/numbers/currencies/currency[@type=\"*\"]/pattern", - "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]") - .put( - "//ldml/numbers/currencies/currency[@type=\"*\"]/pattern", - "//ldml/numbers/currencyFormats/unitPattern[@count=\"*\"]") - .put( - "//ldml/numbers/currencies/currency[@type=\"*\"]/pattern", - "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]") - .put( - "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol", - "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName[@count=\"*\"]") - .put( - "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol", - "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]") - .put( - "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol", - "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]") - .put( - "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol", - "//ldml/numbers/currencyFormats/unitPattern[@count=\"*\"]") - .put( - "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol", - "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]") - .put( + "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName[@count=\"*\"]", "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol", - "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]") - .put( + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol[@alt=\"*\"]", "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", - "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName[@count=\"*\"]") - .put( + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/unitPattern[@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/unitPattern[@count=\"*\"]") + .putAll( + "//ldml/numbers/currencies/currency[@type=\"*\"]/pattern", + "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName[@count=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol[@alt=\"*\"]", "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", - "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol") - .put( + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/unitPattern[@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/unitPattern[@count=\"*\"]") + .putAll( + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol", + "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName[@count=\"*\"]", "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", - "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol[@alt=\"*\"]") - .put( + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/unitPattern[@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/unitPattern[@count=\"*\"]") + .putAll( "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", - "//ldml/numbers/currencyFormats/unitPattern[@count=\"*\"]") - .put( + "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName[@count=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol[@alt=\"*\"]", "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", - "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]") - .put( - "//ldml/numbers/currencyFormats/currencySpacing/afterCurrency/currencyMatch", - "//ldml/numbers/symbols/decimal") - .put( + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/unitPattern[@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/unitPattern[@count=\"*\"]") + .putAll( "//ldml/numbers/currencyFormats/currencySpacing/afterCurrency/currencyMatch", - "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal") - .put( - "//ldml/numbers/currencyFormats/currencySpacing/afterCurrency/insertBetween", - "//ldml/numbers/symbols/decimal") - .put( - "//ldml/numbers/currencyFormats/currencySpacing/afterCurrency/insertBetween", - "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal") - .put( - "//ldml/numbers/currencyFormats/currencySpacing/afterCurrency/surroundingMatch", - "//ldml/numbers/symbols/decimal") - .put( - "//ldml/numbers/currencyFormats/currencySpacing/afterCurrency/surroundingMatch", - "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal") - .put( - "//ldml/numbers/currencyFormats/currencySpacing/beforeCurrency/currencyMatch", - "//ldml/numbers/symbols/decimal") - .put( - "//ldml/numbers/currencyFormats/currencySpacing/beforeCurrency/currencyMatch", - "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal") - .put( - "//ldml/numbers/currencyFormats/currencySpacing/beforeCurrency/insertBetween", - "//ldml/numbers/symbols/decimal") - .put( - "//ldml/numbers/currencyFormats/currencySpacing/beforeCurrency/insertBetween", - "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal") - .put( - "//ldml/numbers/currencyFormats/currencySpacing/beforeCurrency/surroundingMatch", - "//ldml/numbers/symbols/decimal") - .put( - "//ldml/numbers/currencyFormats/currencySpacing/beforeCurrency/surroundingMatch", - "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal") - .put( + "//ldml/listPatterns/listPattern[@type=\"*\"]/listPatternPart[@type=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName[@count=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol[@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", "//ldml/numbers/currencyFormats/unitPattern[@count=\"*\"]", - "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName[@count=\"*\"]") - .put( - "//ldml/numbers/decimalFormats/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", - "//ldml/numbers/miscPatterns[@numberSystem=\"*\"]/pattern[@type=\"*\"]") - .put( + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/unitPattern[@count=\"*\"]", "//ldml/numbers/decimalFormats/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", - "//ldml/numbers/symbols/decimal") - .put( - "//ldml/numbers/decimalFormats/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", - "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal") - .put( - "//ldml/numbers/defaultNumberingSystem", - "//ldml/dates/calendars/calendar[@type=\"*\"]/dateFormats/dateFormatLength[@type=\"*\"]/dateFormat[@type=\"*\"]/pattern[@type=\"*\"]") - .put( - "//ldml/numbers/defaultNumberingSystem", - "//ldml/dates/calendars/calendar[@type=\"*\"]/dateFormats/dateFormatLength[@type=\"*\"]/dateFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]") - .put( - "//ldml/numbers/defaultNumberingSystem", - "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/availableFormats/dateFormatItem[@id=\"*\"]") - .put( - "//ldml/numbers/defaultNumberingSystem", - "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/availableFormats/dateFormatItem[@id=\"*\"][@alt=\"*\"]") - .put( - "//ldml/numbers/defaultNumberingSystem", - "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/availableFormats/dateFormatItem[@id=\"*\"][@count=\"*\"]") - .put( - "//ldml/numbers/defaultNumberingSystem", - "//ldml/dates/calendars/calendar[@type=\"*\"]/timeFormats/timeFormatLength[@type=\"*\"]/timeFormat[@type=\"*\"]/pattern[@type=\"*\"]") - .put( - "//ldml/numbers/defaultNumberingSystem", - "//ldml/dates/calendars/calendar[@type=\"*\"]/timeFormats/timeFormatLength[@type=\"*\"]/timeFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]") - .put("//ldml/numbers/defaultNumberingSystem", "//ldml/numbers/symbols/decimal") - .put( - "//ldml/numbers/percentFormats/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", - "//ldml/numbers/symbols/percentSign") - .put( + "//ldml/numbers/decimalFormats/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/minimalPairs/caseMinimalPairs[@case=\"*\"]", + "//ldml/numbers/minimalPairs/ordinalMinimalPairs[@ordinal=\"*\"]", + "//ldml/numbers/minimalPairs/pluralMinimalPairs[@count=\"*\"]", + "//ldml/numbers/miscPatterns[@numberSystem=\"*\"]/pattern[@type=\"*\"]", "//ldml/numbers/percentFormats/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", - "//ldml/numbers/symbols[@numberSystem=\"*\"]/percentSign") - .put( - "//ldml/numbers/scientificFormats/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", - "//ldml/numbers/symbols/plusSign") - .put( + "//ldml/numbers/percentFormats[@numberSystem=\"*\"]/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", "//ldml/numbers/scientificFormats/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", - "//ldml/numbers/symbols[@numberSystem=\"*\"]/plusSign") - .put("//ldml/numbers/symbols/percentSign", "//ldml/numbers/symbols/perMille") - .put( - "//ldml/numbers/symbols[@numberSystem=\"*\"]/currencyDecimal", - "//ldml/numbers/symbols/decimal") - .put( - "//ldml/numbers/symbols[@numberSystem=\"*\"]/currencyDecimal", - "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal") - .put( - "//ldml/numbers/symbols[@numberSystem=\"*\"]/currencyGroup", - "//ldml/numbers/symbols/decimal") - .put( - "//ldml/numbers/symbols[@numberSystem=\"*\"]/currencyGroup", - "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal") - .put( + "//ldml/numbers/scientificFormats[@numberSystem=\"*\"]/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/symbols/approximatelySign", + "//ldml/numbers/symbols/decimal", + "//ldml/numbers/symbols/exponential", + "//ldml/numbers/symbols/group", + "//ldml/numbers/symbols/minusSign", + "//ldml/numbers/symbols/perMille", + "//ldml/numbers/symbols/percentSign", + "//ldml/numbers/symbols/plusSign", + "//ldml/numbers/symbols/superscriptingExponent", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/approximatelySign", "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal", - "//ldml/numbers/symbols/decimal") - .put( "//ldml/numbers/symbols[@numberSystem=\"*\"]/exponential", - "//ldml/numbers/symbols/decimal") - .put( - "//ldml/numbers/symbols[@numberSystem=\"*\"]/exponential", - "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal") - .put( - "//ldml/numbers/symbols[@numberSystem=\"*\"]/group", - "//ldml/numbers/symbols/decimal") - .put( "//ldml/numbers/symbols[@numberSystem=\"*\"]/group", - "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal") - .put( - "//ldml/numbers/symbols[@numberSystem=\"*\"]/infinity", - "//ldml/numbers/symbols/decimal") - .put( - "//ldml/numbers/symbols[@numberSystem=\"*\"]/infinity", - "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal") - .put( - "//ldml/numbers/symbols[@numberSystem=\"*\"]/list", - "//ldml/numbers/symbols/decimal") - .put( - "//ldml/numbers/symbols[@numberSystem=\"*\"]/list", - "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal") - .put( "//ldml/numbers/symbols[@numberSystem=\"*\"]/minusSign", - "//ldml/numbers/symbols/decimal") - .put( - "//ldml/numbers/symbols[@numberSystem=\"*\"]/minusSign", - "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal") - .put( - "//ldml/numbers/symbols[@numberSystem=\"*\"]/nan", - "//ldml/numbers/symbols/decimal") - .put( - "//ldml/numbers/symbols[@numberSystem=\"*\"]/nan", - "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal") - .put( - "//ldml/numbers/symbols[@numberSystem=\"*\"]/perMille", - "//ldml/numbers/symbols/decimal") - .put( "//ldml/numbers/symbols[@numberSystem=\"*\"]/perMille", - "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal") - .put( - "//ldml/numbers/symbols[@numberSystem=\"*\"]/percentSign", - "//ldml/numbers/symbols/decimal") - .put( - "//ldml/numbers/symbols[@numberSystem=\"*\"]/percentSign", - "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal") - .put( "//ldml/numbers/symbols[@numberSystem=\"*\"]/percentSign", - "//ldml/numbers/symbols[@numberSystem=\"*\"]/perMille") - .put( "//ldml/numbers/symbols[@numberSystem=\"*\"]/plusSign", - "//ldml/numbers/symbols/decimal") - .put( - "//ldml/numbers/symbols[@numberSystem=\"*\"]/plusSign", - "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal") - .put( - "//ldml/numbers/symbols[@numberSystem=\"*\"]/timeSeparator", - "//ldml/dates/calendars/calendar[@type=\"*\"]/dateFormats/dateFormatLength[@type=\"*\"]/dateFormat[@type=\"*\"]/pattern[@type=\"*\"]") - .put( - "//ldml/numbers/symbols[@numberSystem=\"*\"]/timeSeparator", - "//ldml/dates/calendars/calendar[@type=\"*\"]/dateFormats/dateFormatLength[@type=\"*\"]/dateFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]") - .put( - "//ldml/numbers/symbols[@numberSystem=\"*\"]/timeSeparator", - "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/availableFormats/dateFormatItem[@id=\"*\"]") - .put( - "//ldml/numbers/symbols[@numberSystem=\"*\"]/timeSeparator", - "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/availableFormats/dateFormatItem[@id=\"*\"][@alt=\"*\"]") - .put( - "//ldml/numbers/symbols[@numberSystem=\"*\"]/timeSeparator", - "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/availableFormats/dateFormatItem[@id=\"*\"][@count=\"*\"]") - .put( - "//ldml/numbers/symbols[@numberSystem=\"*\"]/timeSeparator", - "//ldml/dates/calendars/calendar[@type=\"*\"]/timeFormats/timeFormatLength[@type=\"*\"]/timeFormat[@type=\"*\"]/pattern[@type=\"*\"]") - .put( - "//ldml/numbers/symbols[@numberSystem=\"*\"]/timeSeparator", - "//ldml/dates/calendars/calendar[@type=\"*\"]/timeFormats/timeFormatLength[@type=\"*\"]/timeFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]") - .put( - "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/displayName", - "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1") - .put( - "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/displayName", - "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/unitPrefixPattern") - .put( + "//ldml/numbers/symbols[@numberSystem=\"*\"]/superscriptingExponent", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/perUnitPattern", "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"]", - "//ldml/listPatterns/listPattern[@type=\"*\"]/listPatternPart[@type=\"*\"]") - .put( - "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"]", - "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern") - .put( - "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"]", - "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"]") - .putAll( - "//ldml/personNames/sampleName[@item=\"*\"]/nameField[@type=\"*\"]", - "//ldml/personNames/personName[@order=\"*\"][@length=\"*\"][@usage=\"*\"][@formality=\"*\"]/namePattern", - "//ldml/personNames/personName[@order=\"*\"][@length=\"*\"][@formality=\"*\"]/namePattern") - .putAll( - "//ldml/personNames/initialPattern[@type=\"*\"]", - "//ldml/personNames/personName[@order=\"*\"][@length=\"*\"][@usage=\"*\"][@formality=\"*\"]/namePattern", - "//ldml/personNames/personName[@order=\"*\"][@length=\"*\"][@formality=\"*\"]/namePattern", - "//ldml/personNames/initialPattern[@type=\"*\"]") + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"][@case=\"*\"]") .putAll( - "//ldml/personNames/nameOrderLocales[@order=\"*\"]", - "//ldml/personNames/personName[@order=\"*\"][@length=\"*\"][@usage=\"*\"][@formality=\"*\"]/namePattern", - "//ldml/personNames/personName[@order=\"*\"][@length=\"*\"][@formality=\"*\"]/namePattern", - "//ldml/personNames/nameOrderLocales[@order=\"*\"]") + "//ldml/numbers/currencyFormats/currencySpacing/afterCurrency/insertBetween", + "//ldml/listPatterns/listPattern[@type=\"*\"]/listPatternPart[@type=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName[@count=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol[@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/unitPattern[@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/minimalPairs/caseMinimalPairs[@case=\"*\"]", + "//ldml/numbers/minimalPairs/ordinalMinimalPairs[@ordinal=\"*\"]", + "//ldml/numbers/minimalPairs/pluralMinimalPairs[@count=\"*\"]", + "//ldml/numbers/miscPatterns[@numberSystem=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/percentFormats/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/percentFormats[@numberSystem=\"*\"]/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/scientificFormats/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/scientificFormats[@numberSystem=\"*\"]/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/symbols/approximatelySign", + "//ldml/numbers/symbols/decimal", + "//ldml/numbers/symbols/exponential", + "//ldml/numbers/symbols/group", + "//ldml/numbers/symbols/minusSign", + "//ldml/numbers/symbols/perMille", + "//ldml/numbers/symbols/percentSign", + "//ldml/numbers/symbols/plusSign", + "//ldml/numbers/symbols/superscriptingExponent", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/approximatelySign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/exponential", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/group", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/minusSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/perMille", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/percentSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/plusSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/superscriptingExponent", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/perUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"][@case=\"*\"]") .putAll( - "//ldml/personNames/foreignSpaceReplacement", - "//ldml/personNames/personName[@order=\"*\"][@length=\"*\"][@usage=\"*\"][@formality=\"*\"]/namePattern", - "//ldml/personNames/personName[@order=\"*\"][@length=\"*\"][@formality=\"*\"]/namePattern") + "//ldml/numbers/currencyFormats/currencySpacing/afterCurrency/surroundingMatch", + "//ldml/listPatterns/listPattern[@type=\"*\"]/listPatternPart[@type=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName[@count=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol[@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/unitPattern[@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/minimalPairs/caseMinimalPairs[@case=\"*\"]", + "//ldml/numbers/minimalPairs/ordinalMinimalPairs[@ordinal=\"*\"]", + "//ldml/numbers/minimalPairs/pluralMinimalPairs[@count=\"*\"]", + "//ldml/numbers/miscPatterns[@numberSystem=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/percentFormats/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/percentFormats[@numberSystem=\"*\"]/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/scientificFormats/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/scientificFormats[@numberSystem=\"*\"]/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/symbols/approximatelySign", + "//ldml/numbers/symbols/decimal", + "//ldml/numbers/symbols/exponential", + "//ldml/numbers/symbols/group", + "//ldml/numbers/symbols/minusSign", + "//ldml/numbers/symbols/perMille", + "//ldml/numbers/symbols/percentSign", + "//ldml/numbers/symbols/plusSign", + "//ldml/numbers/symbols/superscriptingExponent", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/approximatelySign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/exponential", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/group", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/minusSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/perMille", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/percentSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/plusSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/superscriptingExponent", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/perUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"][@case=\"*\"]") .putAll( - "//ldml/personNames/nativeSpaceReplacement", - "//ldml/personNames/personName[@order=\"*\"][@length=\"*\"][@usage=\"*\"][@formality=\"*\"]/namePattern", - "//ldml/personNames/personName[@order=\"*\"][@length=\"*\"][@formality=\"*\"]/namePattern") + "//ldml/numbers/currencyFormats/currencySpacing/beforeCurrency/currencyMatch", + "//ldml/listPatterns/listPattern[@type=\"*\"]/listPatternPart[@type=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName[@count=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol[@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/unitPattern[@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/minimalPairs/caseMinimalPairs[@case=\"*\"]", + "//ldml/numbers/minimalPairs/ordinalMinimalPairs[@ordinal=\"*\"]", + "//ldml/numbers/minimalPairs/pluralMinimalPairs[@count=\"*\"]", + "//ldml/numbers/miscPatterns[@numberSystem=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/percentFormats/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/percentFormats[@numberSystem=\"*\"]/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/scientificFormats/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/scientificFormats[@numberSystem=\"*\"]/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/symbols/approximatelySign", + "//ldml/numbers/symbols/decimal", + "//ldml/numbers/symbols/exponential", + "//ldml/numbers/symbols/group", + "//ldml/numbers/symbols/minusSign", + "//ldml/numbers/symbols/perMille", + "//ldml/numbers/symbols/percentSign", + "//ldml/numbers/symbols/plusSign", + "//ldml/numbers/symbols/superscriptingExponent", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/approximatelySign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/exponential", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/group", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/minusSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/perMille", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/percentSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/plusSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/superscriptingExponent", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/perUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"][@case=\"*\"]") + .putAll( + "//ldml/numbers/currencyFormats/currencySpacing/beforeCurrency/insertBetween", + "//ldml/listPatterns/listPattern[@type=\"*\"]/listPatternPart[@type=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName[@count=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol[@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/unitPattern[@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/minimalPairs/caseMinimalPairs[@case=\"*\"]", + "//ldml/numbers/minimalPairs/ordinalMinimalPairs[@ordinal=\"*\"]", + "//ldml/numbers/minimalPairs/pluralMinimalPairs[@count=\"*\"]", + "//ldml/numbers/miscPatterns[@numberSystem=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/percentFormats/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/percentFormats[@numberSystem=\"*\"]/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/scientificFormats/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/scientificFormats[@numberSystem=\"*\"]/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/symbols/approximatelySign", + "//ldml/numbers/symbols/decimal", + "//ldml/numbers/symbols/exponential", + "//ldml/numbers/symbols/group", + "//ldml/numbers/symbols/minusSign", + "//ldml/numbers/symbols/perMille", + "//ldml/numbers/symbols/percentSign", + "//ldml/numbers/symbols/plusSign", + "//ldml/numbers/symbols/superscriptingExponent", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/approximatelySign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/exponential", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/group", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/minusSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/perMille", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/percentSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/plusSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/superscriptingExponent", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/perUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"][@case=\"*\"]") + .putAll( + "//ldml/numbers/currencyFormats/currencySpacing/beforeCurrency/surroundingMatch", + "//ldml/listPatterns/listPattern[@type=\"*\"]/listPatternPart[@type=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName[@count=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol[@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/unitPattern[@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/minimalPairs/caseMinimalPairs[@case=\"*\"]", + "//ldml/numbers/minimalPairs/ordinalMinimalPairs[@ordinal=\"*\"]", + "//ldml/numbers/minimalPairs/pluralMinimalPairs[@count=\"*\"]", + "//ldml/numbers/miscPatterns[@numberSystem=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/percentFormats/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/percentFormats[@numberSystem=\"*\"]/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/scientificFormats/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/scientificFormats[@numberSystem=\"*\"]/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/symbols/approximatelySign", + "//ldml/numbers/symbols/decimal", + "//ldml/numbers/symbols/exponential", + "//ldml/numbers/symbols/group", + "//ldml/numbers/symbols/minusSign", + "//ldml/numbers/symbols/perMille", + "//ldml/numbers/symbols/percentSign", + "//ldml/numbers/symbols/plusSign", + "//ldml/numbers/symbols/superscriptingExponent", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/approximatelySign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/exponential", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/group", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/minusSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/perMille", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/percentSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/plusSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/superscriptingExponent", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/perUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"][@case=\"*\"]") + .putAll( + "//ldml/numbers/currencyFormats/unitPattern[@count=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName[@count=\"*\"]") + .putAll( + "//ldml/numbers/decimalFormats/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/listPatterns/listPattern[@type=\"*\"]/listPatternPart[@type=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName[@count=\"*\"]", + "//ldml/numbers/currencyFormats/unitPattern[@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/numbers/minimalPairs/caseMinimalPairs[@case=\"*\"]", + "//ldml/numbers/minimalPairs/ordinalMinimalPairs[@ordinal=\"*\"]", + "//ldml/numbers/minimalPairs/pluralMinimalPairs[@count=\"*\"]", + "//ldml/numbers/miscPatterns[@numberSystem=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/symbols/approximatelySign", + "//ldml/numbers/symbols/decimal", + "//ldml/numbers/symbols/group", + "//ldml/numbers/symbols/minusSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/approximatelySign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/group", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/minusSign", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/perUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"][@case=\"*\"]") + .putAll( + "//ldml/numbers/defaultNumberingSystem", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateFormats/dateFormatLength[@type=\"*\"]/dateFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateFormats/dateFormatLength[@type=\"*\"]/dateFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/availableFormats/dateFormatItem[@id=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/availableFormats/dateFormatItem[@id=\"*\"][@alt=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/availableFormats/dateFormatItem[@id=\"*\"][@count=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/timeFormats/timeFormatLength[@type=\"*\"]/timeFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/timeFormats/timeFormatLength[@type=\"*\"]/timeFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/listPatterns/listPattern[@type=\"*\"]/listPatternPart[@type=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName[@count=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol[@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/unitPattern[@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/minimalPairs/caseMinimalPairs[@case=\"*\"]", + "//ldml/numbers/minimalPairs/ordinalMinimalPairs[@ordinal=\"*\"]", + "//ldml/numbers/minimalPairs/pluralMinimalPairs[@count=\"*\"]", + "//ldml/numbers/miscPatterns[@numberSystem=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/percentFormats/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/scientificFormats/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/symbols/approximatelySign", + "//ldml/numbers/symbols/decimal", + "//ldml/numbers/symbols/exponential", + "//ldml/numbers/symbols/group", + "//ldml/numbers/symbols/minusSign", + "//ldml/numbers/symbols/perMille", + "//ldml/numbers/symbols/percentSign", + "//ldml/numbers/symbols/plusSign", + "//ldml/numbers/symbols/superscriptingExponent", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/perUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"][@case=\"*\"]") + .putAll( + "//ldml/numbers/minimalPairs/caseMinimalPairs[@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"][@case=\"*\"]") + .putAll( + "//ldml/numbers/percentFormats/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/symbols/perMille", + "//ldml/numbers/symbols/percentSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/perMille", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/percentSign") + .putAll( + "//ldml/numbers/scientificFormats/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/symbols/exponential", + "//ldml/numbers/symbols/plusSign", + "//ldml/numbers/symbols/superscriptingExponent", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/exponential", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/plusSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/superscriptingExponent") + .putAll( + "//ldml/numbers/symbols/minusSign", + "//ldml/numbers/symbols/approximatelySign") + .putAll("//ldml/numbers/symbols/percentSign", "//ldml/numbers/symbols/perMille") + .putAll( + "//ldml/numbers/symbols[@numberSystem=\"*\"]/currencyDecimal", + "//ldml/listPatterns/listPattern[@type=\"*\"]/listPatternPart[@type=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName[@count=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol[@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/unitPattern[@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/minimalPairs/caseMinimalPairs[@case=\"*\"]", + "//ldml/numbers/minimalPairs/ordinalMinimalPairs[@ordinal=\"*\"]", + "//ldml/numbers/minimalPairs/pluralMinimalPairs[@count=\"*\"]", + "//ldml/numbers/miscPatterns[@numberSystem=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/percentFormats/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/percentFormats[@numberSystem=\"*\"]/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/scientificFormats/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/scientificFormats[@numberSystem=\"*\"]/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/symbols/approximatelySign", + "//ldml/numbers/symbols/decimal", + "//ldml/numbers/symbols/exponential", + "//ldml/numbers/symbols/group", + "//ldml/numbers/symbols/minusSign", + "//ldml/numbers/symbols/perMille", + "//ldml/numbers/symbols/percentSign", + "//ldml/numbers/symbols/plusSign", + "//ldml/numbers/symbols/superscriptingExponent", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/approximatelySign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/exponential", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/group", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/minusSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/perMille", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/percentSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/plusSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/superscriptingExponent", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/perUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"][@case=\"*\"]") + .putAll( + "//ldml/numbers/symbols[@numberSystem=\"*\"]/currencyGroup", + "//ldml/listPatterns/listPattern[@type=\"*\"]/listPatternPart[@type=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName[@count=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol[@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/unitPattern[@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/minimalPairs/caseMinimalPairs[@case=\"*\"]", + "//ldml/numbers/minimalPairs/ordinalMinimalPairs[@ordinal=\"*\"]", + "//ldml/numbers/minimalPairs/pluralMinimalPairs[@count=\"*\"]", + "//ldml/numbers/miscPatterns[@numberSystem=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/percentFormats/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/percentFormats[@numberSystem=\"*\"]/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/scientificFormats/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/scientificFormats[@numberSystem=\"*\"]/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/symbols/approximatelySign", + "//ldml/numbers/symbols/decimal", + "//ldml/numbers/symbols/exponential", + "//ldml/numbers/symbols/group", + "//ldml/numbers/symbols/minusSign", + "//ldml/numbers/symbols/perMille", + "//ldml/numbers/symbols/percentSign", + "//ldml/numbers/symbols/plusSign", + "//ldml/numbers/symbols/superscriptingExponent", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/approximatelySign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/exponential", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/group", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/minusSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/perMille", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/percentSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/plusSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/superscriptingExponent", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/perUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"][@case=\"*\"]") + .putAll( + "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal", + "//ldml/listPatterns/listPattern[@type=\"*\"]/listPatternPart[@type=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName[@count=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol[@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/unitPattern[@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/minimalPairs/caseMinimalPairs[@case=\"*\"]", + "//ldml/numbers/minimalPairs/ordinalMinimalPairs[@ordinal=\"*\"]", + "//ldml/numbers/minimalPairs/pluralMinimalPairs[@count=\"*\"]", + "//ldml/numbers/miscPatterns[@numberSystem=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/percentFormats/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/percentFormats[@numberSystem=\"*\"]/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/scientificFormats/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/scientificFormats[@numberSystem=\"*\"]/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/symbols/approximatelySign", + "//ldml/numbers/symbols/decimal", + "//ldml/numbers/symbols/exponential", + "//ldml/numbers/symbols/group", + "//ldml/numbers/symbols/minusSign", + "//ldml/numbers/symbols/perMille", + "//ldml/numbers/symbols/percentSign", + "//ldml/numbers/symbols/plusSign", + "//ldml/numbers/symbols/superscriptingExponent", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/approximatelySign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/exponential", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/group", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/minusSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/perMille", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/percentSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/plusSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/superscriptingExponent", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/perUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"][@case=\"*\"]") + .putAll( + "//ldml/numbers/symbols[@numberSystem=\"*\"]/exponential", + "//ldml/listPatterns/listPattern[@type=\"*\"]/listPatternPart[@type=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName[@count=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol[@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/unitPattern[@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/minimalPairs/caseMinimalPairs[@case=\"*\"]", + "//ldml/numbers/minimalPairs/ordinalMinimalPairs[@ordinal=\"*\"]", + "//ldml/numbers/minimalPairs/pluralMinimalPairs[@count=\"*\"]", + "//ldml/numbers/miscPatterns[@numberSystem=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/percentFormats/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/percentFormats[@numberSystem=\"*\"]/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/scientificFormats/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/scientificFormats[@numberSystem=\"*\"]/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/symbols/approximatelySign", + "//ldml/numbers/symbols/decimal", + "//ldml/numbers/symbols/exponential", + "//ldml/numbers/symbols/group", + "//ldml/numbers/symbols/minusSign", + "//ldml/numbers/symbols/perMille", + "//ldml/numbers/symbols/percentSign", + "//ldml/numbers/symbols/plusSign", + "//ldml/numbers/symbols/superscriptingExponent", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/approximatelySign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/group", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/minusSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/perMille", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/percentSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/plusSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/superscriptingExponent", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/perUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"][@case=\"*\"]") + .putAll( + "//ldml/numbers/symbols[@numberSystem=\"*\"]/group", + "//ldml/listPatterns/listPattern[@type=\"*\"]/listPatternPart[@type=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName[@count=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol[@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/unitPattern[@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/minimalPairs/caseMinimalPairs[@case=\"*\"]", + "//ldml/numbers/minimalPairs/ordinalMinimalPairs[@ordinal=\"*\"]", + "//ldml/numbers/minimalPairs/pluralMinimalPairs[@count=\"*\"]", + "//ldml/numbers/miscPatterns[@numberSystem=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/percentFormats/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/percentFormats[@numberSystem=\"*\"]/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/scientificFormats/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/scientificFormats[@numberSystem=\"*\"]/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/symbols/approximatelySign", + "//ldml/numbers/symbols/decimal", + "//ldml/numbers/symbols/exponential", + "//ldml/numbers/symbols/group", + "//ldml/numbers/symbols/minusSign", + "//ldml/numbers/symbols/perMille", + "//ldml/numbers/symbols/percentSign", + "//ldml/numbers/symbols/plusSign", + "//ldml/numbers/symbols/superscriptingExponent", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/approximatelySign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/exponential", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/minusSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/perMille", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/percentSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/plusSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/superscriptingExponent", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/perUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"][@case=\"*\"]") + .putAll( + "//ldml/numbers/symbols[@numberSystem=\"*\"]/infinity", + "//ldml/listPatterns/listPattern[@type=\"*\"]/listPatternPart[@type=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName[@count=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol[@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/unitPattern[@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/minimalPairs/caseMinimalPairs[@case=\"*\"]", + "//ldml/numbers/minimalPairs/ordinalMinimalPairs[@ordinal=\"*\"]", + "//ldml/numbers/minimalPairs/pluralMinimalPairs[@count=\"*\"]", + "//ldml/numbers/miscPatterns[@numberSystem=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/percentFormats/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/percentFormats[@numberSystem=\"*\"]/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/scientificFormats/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/scientificFormats[@numberSystem=\"*\"]/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/symbols/approximatelySign", + "//ldml/numbers/symbols/decimal", + "//ldml/numbers/symbols/exponential", + "//ldml/numbers/symbols/group", + "//ldml/numbers/symbols/minusSign", + "//ldml/numbers/symbols/perMille", + "//ldml/numbers/symbols/percentSign", + "//ldml/numbers/symbols/plusSign", + "//ldml/numbers/symbols/superscriptingExponent", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/approximatelySign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/exponential", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/group", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/minusSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/perMille", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/percentSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/plusSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/superscriptingExponent", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/perUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"][@case=\"*\"]") + .putAll( + "//ldml/numbers/symbols[@numberSystem=\"*\"]/list", + "//ldml/listPatterns/listPattern[@type=\"*\"]/listPatternPart[@type=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName[@count=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol[@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/unitPattern[@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/minimalPairs/caseMinimalPairs[@case=\"*\"]", + "//ldml/numbers/minimalPairs/ordinalMinimalPairs[@ordinal=\"*\"]", + "//ldml/numbers/minimalPairs/pluralMinimalPairs[@count=\"*\"]", + "//ldml/numbers/miscPatterns[@numberSystem=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/percentFormats/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/percentFormats[@numberSystem=\"*\"]/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/scientificFormats/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/scientificFormats[@numberSystem=\"*\"]/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/symbols/approximatelySign", + "//ldml/numbers/symbols/decimal", + "//ldml/numbers/symbols/exponential", + "//ldml/numbers/symbols/group", + "//ldml/numbers/symbols/minusSign", + "//ldml/numbers/symbols/perMille", + "//ldml/numbers/symbols/percentSign", + "//ldml/numbers/symbols/plusSign", + "//ldml/numbers/symbols/superscriptingExponent", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/approximatelySign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/exponential", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/group", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/minusSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/perMille", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/percentSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/plusSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/superscriptingExponent", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/perUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"][@case=\"*\"]") + .putAll( + "//ldml/numbers/symbols[@numberSystem=\"*\"]/minusSign", + "//ldml/listPatterns/listPattern[@type=\"*\"]/listPatternPart[@type=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName[@count=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol[@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/unitPattern[@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/minimalPairs/caseMinimalPairs[@case=\"*\"]", + "//ldml/numbers/minimalPairs/ordinalMinimalPairs[@ordinal=\"*\"]", + "//ldml/numbers/minimalPairs/pluralMinimalPairs[@count=\"*\"]", + "//ldml/numbers/miscPatterns[@numberSystem=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/percentFormats/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/percentFormats[@numberSystem=\"*\"]/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/scientificFormats/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/scientificFormats[@numberSystem=\"*\"]/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/symbols/approximatelySign", + "//ldml/numbers/symbols/decimal", + "//ldml/numbers/symbols/exponential", + "//ldml/numbers/symbols/group", + "//ldml/numbers/symbols/minusSign", + "//ldml/numbers/symbols/perMille", + "//ldml/numbers/symbols/percentSign", + "//ldml/numbers/symbols/plusSign", + "//ldml/numbers/symbols/superscriptingExponent", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/approximatelySign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/exponential", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/group", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/perMille", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/percentSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/plusSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/superscriptingExponent", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/perUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"][@case=\"*\"]") + .putAll( + "//ldml/numbers/symbols[@numberSystem=\"*\"]/nan", + "//ldml/listPatterns/listPattern[@type=\"*\"]/listPatternPart[@type=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName[@count=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol[@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/unitPattern[@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/minimalPairs/caseMinimalPairs[@case=\"*\"]", + "//ldml/numbers/minimalPairs/ordinalMinimalPairs[@ordinal=\"*\"]", + "//ldml/numbers/minimalPairs/pluralMinimalPairs[@count=\"*\"]", + "//ldml/numbers/miscPatterns[@numberSystem=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/percentFormats/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/percentFormats[@numberSystem=\"*\"]/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/scientificFormats/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/scientificFormats[@numberSystem=\"*\"]/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/symbols/approximatelySign", + "//ldml/numbers/symbols/decimal", + "//ldml/numbers/symbols/exponential", + "//ldml/numbers/symbols/group", + "//ldml/numbers/symbols/minusSign", + "//ldml/numbers/symbols/perMille", + "//ldml/numbers/symbols/percentSign", + "//ldml/numbers/symbols/plusSign", + "//ldml/numbers/symbols/superscriptingExponent", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/approximatelySign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/exponential", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/group", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/minusSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/perMille", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/percentSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/plusSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/superscriptingExponent", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/perUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"][@case=\"*\"]") + .putAll( + "//ldml/numbers/symbols[@numberSystem=\"*\"]/perMille", + "//ldml/listPatterns/listPattern[@type=\"*\"]/listPatternPart[@type=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName[@count=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol[@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/unitPattern[@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/minimalPairs/caseMinimalPairs[@case=\"*\"]", + "//ldml/numbers/minimalPairs/ordinalMinimalPairs[@ordinal=\"*\"]", + "//ldml/numbers/minimalPairs/pluralMinimalPairs[@count=\"*\"]", + "//ldml/numbers/miscPatterns[@numberSystem=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/percentFormats/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/percentFormats[@numberSystem=\"*\"]/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/scientificFormats/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/scientificFormats[@numberSystem=\"*\"]/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/symbols/approximatelySign", + "//ldml/numbers/symbols/decimal", + "//ldml/numbers/symbols/exponential", + "//ldml/numbers/symbols/group", + "//ldml/numbers/symbols/minusSign", + "//ldml/numbers/symbols/perMille", + "//ldml/numbers/symbols/percentSign", + "//ldml/numbers/symbols/plusSign", + "//ldml/numbers/symbols/superscriptingExponent", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/approximatelySign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/exponential", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/group", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/minusSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/percentSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/plusSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/superscriptingExponent", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/perUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"][@case=\"*\"]") + .putAll( + "//ldml/numbers/symbols[@numberSystem=\"*\"]/percentSign", + "//ldml/listPatterns/listPattern[@type=\"*\"]/listPatternPart[@type=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName[@count=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol[@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/unitPattern[@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/minimalPairs/caseMinimalPairs[@case=\"*\"]", + "//ldml/numbers/minimalPairs/ordinalMinimalPairs[@ordinal=\"*\"]", + "//ldml/numbers/minimalPairs/pluralMinimalPairs[@count=\"*\"]", + "//ldml/numbers/miscPatterns[@numberSystem=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/percentFormats/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/percentFormats[@numberSystem=\"*\"]/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/scientificFormats/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/scientificFormats[@numberSystem=\"*\"]/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/symbols/approximatelySign", + "//ldml/numbers/symbols/decimal", + "//ldml/numbers/symbols/exponential", + "//ldml/numbers/symbols/group", + "//ldml/numbers/symbols/minusSign", + "//ldml/numbers/symbols/perMille", + "//ldml/numbers/symbols/percentSign", + "//ldml/numbers/symbols/plusSign", + "//ldml/numbers/symbols/superscriptingExponent", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/approximatelySign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/exponential", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/group", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/minusSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/perMille", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/plusSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/superscriptingExponent", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/perUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"][@case=\"*\"]") + .putAll( + "//ldml/numbers/symbols[@numberSystem=\"*\"]/plusSign", + "//ldml/listPatterns/listPattern[@type=\"*\"]/listPatternPart[@type=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/displayName[@count=\"*\"]", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol", + "//ldml/numbers/currencies/currency[@type=\"*\"]/symbol[@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats/unitPattern[@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/currencyFormatLength[@type=\"*\"]/currencyFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"][@alt=\"*\"]", + "//ldml/numbers/currencyFormats[@numberSystem=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/decimalFormats[@numberSystem=\"*\"]/decimalFormatLength[@type=\"*\"]/decimalFormat[@type=\"*\"]/pattern[@type=\"*\"][@count=\"*\"]", + "//ldml/numbers/minimalPairs/caseMinimalPairs[@case=\"*\"]", + "//ldml/numbers/minimalPairs/ordinalMinimalPairs[@ordinal=\"*\"]", + "//ldml/numbers/minimalPairs/pluralMinimalPairs[@count=\"*\"]", + "//ldml/numbers/miscPatterns[@numberSystem=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/percentFormats/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/percentFormats[@numberSystem=\"*\"]/percentFormatLength/percentFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/scientificFormats/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/scientificFormats[@numberSystem=\"*\"]/scientificFormatLength/scientificFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/numbers/symbols/approximatelySign", + "//ldml/numbers/symbols/decimal", + "//ldml/numbers/symbols/exponential", + "//ldml/numbers/symbols/group", + "//ldml/numbers/symbols/minusSign", + "//ldml/numbers/symbols/perMille", + "//ldml/numbers/symbols/percentSign", + "//ldml/numbers/symbols/plusSign", + "//ldml/numbers/symbols/superscriptingExponent", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/approximatelySign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/decimal", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/exponential", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/group", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/minusSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/perMille", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/percentSign", + "//ldml/numbers/symbols[@numberSystem=\"*\"]/superscriptingExponent", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/perUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"][@case=\"*\"]") + .putAll( + "//ldml/numbers/symbols[@numberSystem=\"*\"]/timeSeparator", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateFormats/dateFormatLength[@type=\"*\"]/dateFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateFormats/dateFormatLength[@type=\"*\"]/dateFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/availableFormats/dateFormatItem[@id=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/availableFormats/dateFormatItem[@id=\"*\"][@alt=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/dateTimeFormats/availableFormats/dateFormatItem[@id=\"*\"][@count=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/timeFormats/timeFormatLength[@type=\"*\"]/timeFormat[@type=\"*\"]/pattern[@type=\"*\"]", + "//ldml/dates/calendars/calendar[@type=\"*\"]/timeFormats/timeFormatLength[@type=\"*\"]/timeFormat[@type=\"*\"]/pattern[@type=\"*\"][@alt=\"*\"]") + .putAll( + "//ldml/personNames/foreignSpaceReplacement", + "//ldml/personNames/personName[@order=\"*\"][@length=\"*\"][@usage=\"*\"][@formality=\"*\"]/namePattern") + .putAll( + "//ldml/personNames/initialPattern[@type=\"*\"]", + "//ldml/personNames/personName[@order=\"*\"][@length=\"*\"][@usage=\"*\"][@formality=\"*\"]/namePattern") + .putAll( + "//ldml/personNames/nameOrderLocales[@order=\"*\"]", + "//ldml/personNames/personName[@order=\"*\"][@length=\"*\"][@usage=\"*\"][@formality=\"*\"]/namePattern") .putAll( "//ldml/personNames/nativeSpaceReplacement", + "//ldml/personNames/personName[@order=\"*\"][@length=\"*\"][@usage=\"*\"][@formality=\"*\"]/namePattern") + .putAll( + "//ldml/personNames/parameterDefault[@parameter=\"*\"]", + "//ldml/personNames/personName[@order=\"*\"][@length=\"*\"][@usage=\"*\"][@formality=\"*\"]/namePattern") + .putAll( "//ldml/personNames/personName[@order=\"*\"][@length=\"*\"][@usage=\"*\"][@formality=\"*\"]/namePattern", - "//ldml/personNames/personName[@order=\"*\"][@length=\"*\"][@formality=\"*\"]/namePattern") - - // For UnicodeSet examples, need to clear this path's value if the winning value - // changes + "//ldml/personNames/personName[@order=\"*\"][@length=\"*\"][@usage=\"*\"][@formality=\"*\"]/namePattern") .putAll( - "//ldml/characters/exemplarCharacters", - "//ldml/characters/exemplarCharacters") + "//ldml/personNames/personName[@order=\"*\"][@length=\"*\"][@usage=\"*\"][@formality=\"*\"]/namePattern[@alt=\"*\"]", + "//ldml/personNames/personName[@order=\"*\"][@length=\"*\"][@usage=\"*\"][@formality=\"*\"]/namePattern") .putAll( - "//ldml/characters/exemplarCharacters[@type=\"*\"]", - "//ldml/characters/exemplarCharacters[@type=\"*\"]") + "//ldml/personNames/sampleName[@item=\"*\"]/nameField[@type=\"*\"]", + "//ldml/personNames/personName[@order=\"*\"][@length=\"*\"][@usage=\"*\"][@formality=\"*\"]/namePattern") + .putAll( + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/displayName", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/unitPrefixPattern") .putAll( - "//ldml/characters/parseLenients[@scope=\"*\"][@level=\"*\"]/parseLenient[@sample=\"*\"]", - "//ldml/characters/parseLenients[@scope=\"*\"][@level=\"*\"]/parseLenient[@sample=\"*\"]") + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/gender", + "//ldml/numbers/minimalPairs/caseMinimalPairs[@case=\"*\"]", + "//ldml/numbers/minimalPairs/genderMinimalPairs[@gender=\"*\"]") + .putAll( + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/listPatterns/listPattern[@type=\"*\"]/listPatternPart[@type=\"*\"]", + "//ldml/numbers/minimalPairs/caseMinimalPairs[@case=\"*\"]", + "//ldml/numbers/minimalPairs/genderMinimalPairs[@gender=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/compoundUnit[@type=\"*\"]/compoundUnitPattern1[@count=\"*\"][@gender=\"*\"][@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"][@case=\"*\"]") + .putAll( + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"][@case=\"*\"]", + "//ldml/numbers/minimalPairs/caseMinimalPairs[@case=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"]", + "//ldml/units/unitLength[@type=\"*\"]/unit[@type=\"*\"]/unitPattern[@count=\"*\"][@case=\"*\"]") .build(); } +/* DO NOT EDIT THIS FILE, instead regenerate it using GenerateExampleDependencies.java */ diff --git a/tools/cldr-code/src/main/java/org/unicode/cldr/test/ExampleGenerator.java b/tools/cldr-code/src/main/java/org/unicode/cldr/test/ExampleGenerator.java index ecfd7af0a7e..25c38c7ac04 100644 --- a/tools/cldr-code/src/main/java/org/unicode/cldr/test/ExampleGenerator.java +++ b/tools/cldr-code/src/main/java/org/unicode/cldr/test/ExampleGenerator.java @@ -224,10 +224,7 @@ private static Date getDate(int year, int month, int date, int hour, int minute, public void setCachingEnabled(boolean enabled) { exCache.setCachingEnabled(enabled); - } - - public void setCacheOnly(boolean cacheOnly) { - exCache.setCacheOnly(cacheOnly); + icuServiceBuilder.setCachingEnabled(enabled); } /** @@ -291,6 +288,9 @@ public CLDRFile getCldrFile() { */ public void updateCache(String xpath) { exCache.update(xpath); + if (ICUServiceBuilder.ISB_CAN_CLEAR_CACHE) { + icuServiceBuilder.clearCache(); + } } /** @@ -1159,6 +1159,9 @@ private String handleMinimalPairs(XPathParts parts, String minimalPattern) { } private String getOtherGender(String gender) { + if (gender == null) { + return null; + } Collection unitGenders = grammarInfo.get( GrammaticalTarget.nominal, @@ -1173,6 +1176,9 @@ private String getOtherGender(String gender) { } private String getOtherCase(String sample) { + if (sample == null) { + return null; + } Collection unitCases = grammarInfo.get( GrammaticalTarget.nominal, @@ -1183,7 +1189,7 @@ private String getOtherCase(String sample) { String sampleBad = bestMinimalPairSamples.getBestUnitWithCase( otherCase, output); // Pick a unit that exhibits the most variation - if (!sampleBad.equals(sample)) { + if (!sample.equals(sampleBad)) { // caution: sampleBad may be null return sampleBad; } } diff --git a/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateExampleDependencies.java b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateExampleDependencies.java new file mode 100644 index 00000000000..b35dc300502 --- /dev/null +++ b/tools/cldr-code/src/main/java/org/unicode/cldr/tool/GenerateExampleDependencies.java @@ -0,0 +1,187 @@ +package org.unicode.cldr.tool; + +import com.google.common.collect.Multimap; +import com.google.common.collect.TreeMultimap; +import java.io.File; +import java.io.IOException; +import java.io.PrintWriter; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.TreeSet; +import org.unicode.cldr.draft.FileUtilities; +import org.unicode.cldr.test.ExampleGenerator; +import org.unicode.cldr.util.CLDRConfig; +import org.unicode.cldr.util.CLDRFile; +import org.unicode.cldr.util.CLDRPaths; +import org.unicode.cldr.util.CLDRTool; +import org.unicode.cldr.util.Factory; +import org.unicode.cldr.util.LocaleIDParser; +import org.unicode.cldr.util.PathStarrer; +import org.unicode.cldr.util.RecordingCLDRFile; +import org.unicode.cldr.util.XMLSource; + +@CLDRTool(alias = "generate-example-dependencies", description = "Generate example dependencies") +public class GenerateExampleDependencies { + private static final String OUTPUT_FILE_NAME = "ExampleDependencies.java"; + private static final String DO_NOT_EDIT = + "/* DO NOT EDIT THIS FILE, instead regenerate it using " + + GenerateExampleDependencies.class.getSimpleName() + + ".java */"; + private final CLDRFile englishFile; + private final Factory factory; + private final Set locales; + private final String outputDir; + private final PathStarrer pathStarrer; + + public static void main(String[] args) throws IOException { + new GenerateExampleDependencies().run(); + } + + /** + * Find dependencies where changing the value of one path changes example-generation for another + * path. + * + *

The goal is to optimize example caching by only regenerating examples when necessary. + */ + public GenerateExampleDependencies() { + CLDRConfig info = CLDRConfig.getInstance(); + englishFile = info.getEnglish(); + factory = info.getCldrFactory(); + locales = factory.getAvailable(); + outputDir = CLDRPaths.GEN_DIRECTORY + "test" + File.separator; + pathStarrer = new PathStarrer().setSubstitutionPattern("*"); + } + + public void run() throws IOException { + int localeCount = locales.size(); + System.out.println( + "Looping through " + localeCount + " locales ... (this may take an hour)"); + final Multimap dependencies = TreeMultimap.create(); + int i = 0; + for (String localeId : locales) { + int percent = (++i * 100) / localeCount; + System.out.println(localeId + " " + i + "/" + localeCount + " " + percent + "%"); + addDependenciesForLocale(dependencies, localeId); + } + System.out.println("Creating " + outputDir + OUTPUT_FILE_NAME + " ..."); + PrintWriter writer = FileUtilities.openUTF8Writer(outputDir, OUTPUT_FILE_NAME); + int dependenciesWritten = writeDependenciesToFile(dependencies, writer); + System.out.println( + "Wrote " + + dependenciesWritten + + " dependencies to " + + outputDir + + GenerateExampleDependencies.OUTPUT_FILE_NAME); + System.out.println( + "If it looks OK, you can move it to the proper location, replacing the old version."); + } + + private void addDependenciesForLocale(Multimap dependencies, String localeId) { + RecordingCLDRFile cldrFile = makeRecordingCldrFile(localeId); + cldrFile.disableCaching(); + + Set paths = new TreeSet<>(cldrFile.getComparator()); + cldrFile.forEach(paths::add); // time-consuming + + ExampleGenerator egTest = new ExampleGenerator(cldrFile, englishFile); + // Caching MUST be disabled for egTest.ICUServiceBuilder to prevent some dependencies from + // being missed + egTest.setCachingEnabled(false); + + for (String pathB : paths) { + if (skipPathForDependencies(pathB)) { + continue; + } + String valueB = cldrFile.getStringValue(pathB); + if (valueB == null) { + continue; + } + String starredB = pathStarrer.set(pathB); + cldrFile.clearRecordedPaths(); + egTest.getExampleHtml(pathB, valueB); + HashSet pathsA = cldrFile.getRecordedPaths(); + for (String pathA : pathsA) { + if (pathA.equals(pathB) || skipPathForDependencies(pathA)) { + continue; + } + String starredA = pathStarrer.set(pathA); + dependencies.put(starredA, starredB); + } + } + } + + private RecordingCLDRFile makeRecordingCldrFile(String localeId) { + XMLSource topSource = factory.makeSource(localeId); + List parents = getParentSources(factory, localeId); + XMLSource[] a = new XMLSource[parents.size()]; + return new RecordingCLDRFile(topSource, parents.toArray(a)); + } + + /** + * Get the parent sources for the given localeId + * + * @param factory the Factory for makeSource + * @param localeId the locale ID + * @return the List of XMLSource objects + */ + private static List getParentSources(Factory factory, String localeId) { + List parents = new ArrayList<>(); + for (String currentLocaleID = LocaleIDParser.getParent(localeId); + currentLocaleID != null; + currentLocaleID = LocaleIDParser.getParent(currentLocaleID)) { + parents.add(factory.makeSource(currentLocaleID)); + } + return parents; + } + + /** + * Should the given path be skipped when testing example-generator path dependencies? + * + * @param path the path in question + * @return true to skip, else false + */ + private static boolean skipPathForDependencies(String path) { + return path.endsWith("/alias") || path.startsWith("//ldml/identity"); + } + + /** + * Write the given map of example-generator path dependencies to a java file. + * + * @param dependencies the multimap of example-generator path dependencies + * @param writer the PrintWriter + * @return the number of dependencies written + */ + private int writeDependenciesToFile(Multimap dependencies, PrintWriter writer) { + writer.println("package org.unicode.cldr.test;"); + writer.println(DO_NOT_EDIT); + writer.println("import com.google.common.collect.ImmutableSetMultimap;"); + writer.println(""); + writer.println("public class ExampleDependencies {"); + writer.println(" public static ImmutableSetMultimap dependencies ="); + writer.println(" new ImmutableSetMultimap.Builder()"); + int dependenciesWritten = 0; + ArrayList listA = new ArrayList<>(dependencies.keySet()); + Collections.sort(listA); + for (String pathA : listA) { + ArrayList listB = new ArrayList<>(dependencies.get(pathA)); + Collections.sort(listB); + String a = "\"" + pathA.replaceAll("\"", "\\\\\"") + "\""; + writer.println(" .putAll(" + a + ","); + int remainingCount = listB.size(); + for (String pathB : listB) { + String b = "\"" + pathB.replaceAll("\"", "\\\\\"") + "\""; + String endOfLine = --remainingCount > 0 ? "," : ")"; + writer.println(" " + b + endOfLine); + ++dependenciesWritten; + } + } + writer.println(" .build();"); + writer.println("}"); + writer.println(DO_NOT_EDIT); + writer.close(); + return dependenciesWritten; + } +} diff --git a/tools/cldr-code/src/main/java/org/unicode/cldr/util/CLDRFile.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/CLDRFile.java index 6c2fbe5d7e3..baa044f3ecc 100644 --- a/tools/cldr-code/src/main/java/org/unicode/cldr/util/CLDRFile.java +++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/CLDRFile.java @@ -3627,15 +3627,6 @@ public void setDtdType(DtdType dtdType) { this.dtdType = dtdType; } - /** Used only for TestExampleGenerator. */ - public void valueChanged(String xpath) { - if (isResolved()) { - ResolvingSource resSource = (ResolvingSource) dataSource; - resSource.valueChanged(xpath, resSource); - } - } - - /** Used only for TestExampleGenerator. */ public void disableCaching() { dataSource.disableCaching(); } diff --git a/tools/cldr-code/src/main/java/org/unicode/cldr/util/ICUServiceBuilder.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/ICUServiceBuilder.java index 98ce73ff948..033b5b7cc35 100644 --- a/tools/cldr-code/src/main/java/org/unicode/cldr/util/ICUServiceBuilder.java +++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/ICUServiceBuilder.java @@ -22,7 +22,6 @@ import java.util.List; import java.util.Map; import java.util.Objects; -import java.util.regex.Matcher; import org.unicode.cldr.util.CLDRFile.Status; import org.unicode.cldr.util.DayPeriodInfo.DayPeriod; import org.unicode.cldr.util.SupplementalDataInfo.CurrencyNumberInfo; @@ -46,7 +45,6 @@ public static String isoDateFormat(Date date) { } public static String isoDateFormat(long value) { - // TODO Auto-generated method stub return iso.format(new Date(value)); } @@ -60,46 +58,49 @@ public static Date isoDateParse(String date) throws ParseException { private Map cacheDecimalFormatSymbols = new HashMap<>(); private Map cacheRuleBasedCollators = new HashMap<>(); - private SupplementalDataInfo supplementalData; + /** + * Caching can be disabled for some ICUServiceBuilder instances while still enabled for others. + */ + private boolean cachingIsEnabled = true; + + public void setCachingEnabled(boolean enabled) { + cachingIsEnabled = enabled; + } + + /** + * TODO: the ability to clear the cache(s) is temporarily useful for debugging, and may or may + * not be useful in the long run. In the meantime, this should be false except while debugging. + * Reference: https://unicode-org.atlassian.net/browse/CLDR-13970 + */ + public static final boolean ISB_CAN_CLEAR_CACHE = false; + + public void clearCache() { + if (ISB_CAN_CLEAR_CACHE) { + cacheDateFormats.clear(); + cacheDateFormatSymbols.clear(); + cacheNumberFormats.clear(); + cacheDecimalFormatSymbols.clear(); + cacheRuleBasedCollators.clear(); + } + } - // private Factory cldrFactory; - // public ICUServiceBuilder setCLDRFactory(Factory cldrFactory) { - // this.cldrFactory = cldrFactory; - // dateFormatCache.clear(); - // return this; // for chaining - // } + private SupplementalDataInfo supplementalData; private static int[] DateFormatValues = { -1, DateFormat.SHORT, DateFormat.MEDIUM, DateFormat.LONG, DateFormat.FULL }; private static String[] DateFormatNames = {"none", "short", "medium", "long", "full"}; - public static String getDateNames(int i) { - return DateFormatNames[i]; - } - - public static int LIMIT_DATE_FORMAT_INDEX = DateFormatValues.length; - private static final String[] Days = {"sun", "mon", "tue", "wed", "thu", "fri", "sat"}; - // public SimpleDateFormat getDateFormat(CLDRFile cldrFile, int dateIndex, int timeIndex) { - // //CLDRFile cldrFile = cldrFactory.make(localeID.toString(), true); - // return getDateFormat(dateIndex, timeIndex); - // } - public CLDRFile getCldrFile() { return cldrFile; } - public CLDRFile getCollationFile() { - return collationFile; - } - public ICUServiceBuilder setCldrFile(CLDRFile cldrFile) { if (!cldrFile.isResolved()) throw new IllegalArgumentException("CLDRFile must be resolved"); this.cldrFile = cldrFile; supplementalData = CLDRConfig.getInstance().getSupplementalDataInfo(); - // SupplementalDataInfo.getInstance(this.cldrFile.getSupplementalDirectory()); cacheDateFormats.clear(); cacheNumberFormats.clear(); cacheDateFormatSymbols.clear(); @@ -142,10 +143,12 @@ public static ICUServiceBuilder forLocale(CLDRLocale locale) { } public RuleBasedCollator getRuleBasedCollator(String type) throws Exception { - RuleBasedCollator col = cacheRuleBasedCollators.get(type); + RuleBasedCollator col = cachingIsEnabled ? cacheRuleBasedCollators.get(type) : null; if (col == null) { col = _getRuleBasedCollator(type); - cacheRuleBasedCollators.put(type, col); + if (cachingIsEnabled) { + cacheRuleBasedCollators.put(type, col); + } } return (RuleBasedCollator) col.clone(); } @@ -198,13 +201,15 @@ public SimpleDateFormat getDateFormat(String calendar, int dateIndex, int timeIn public SimpleDateFormat getDateFormat( String calendar, int dateIndex, int timeIndex, String numbersOverride) { String key = cldrFile.getLocaleID() + "," + calendar + "," + dateIndex + "," + timeIndex; - SimpleDateFormat result = cacheDateFormats.get(key); + SimpleDateFormat result = cachingIsEnabled ? cacheDateFormats.get(key) : null; if (result != null) return (SimpleDateFormat) result.clone(); String pattern = getPattern(calendar, dateIndex, timeIndex); result = getFullFormat(calendar, pattern, numbersOverride); - cacheDateFormats.put(key, result); + if (cachingIsEnabled) { + cacheDateFormats.put(key, result); + } // System.out.println("created " + key); return (SimpleDateFormat) result.clone(); } @@ -212,10 +217,12 @@ public SimpleDateFormat getDateFormat( public SimpleDateFormat getDateFormat(String calendar, String pattern, String numbersOverride) { String key = cldrFile.getLocaleID() + "," + calendar + ",," + pattern + ",,," + numbersOverride; - SimpleDateFormat result = cacheDateFormats.get(key); + SimpleDateFormat result = cachingIsEnabled ? cacheDateFormats.get(key) : null; if (result != null) return (SimpleDateFormat) result.clone(); result = getFullFormat(calendar, pattern, numbersOverride); - cacheDateFormats.put(key, result); + if (cachingIsEnabled) { + cacheDateFormats.put(key, result); + } // System.out.println("created " + key); return (SimpleDateFormat) result.clone(); } @@ -281,7 +288,7 @@ private SimpleDateFormat getFullFormat( private DateFormatSymbols _getDateFormatSymbols(String calendar) { String key = cldrFile.getLocaleID() + "," + calendar; - DateFormatSymbols result = cacheDateFormatSymbols.get(key); + DateFormatSymbols result = cachingIsEnabled ? cacheDateFormatSymbols.get(key) : null; if (result != null) return (DateFormatSymbols) result.clone(); String[] last; @@ -414,7 +421,9 @@ private DateFormatSymbols _getDateFormatSymbols(String calendar) { DateFormatSymbols.STANDALONE, DateFormatSymbols.NARROW); - cacheDateFormatSymbols.put(key, formatData); + if (cachingIsEnabled) { + cacheDateFormatSymbols.put(key, formatData); + } return (DateFormatSymbols) formatData.clone(); } @@ -436,7 +445,7 @@ private String getDayPeriods(String prefix, String context, String width, String } private String[] getArrayOfWinningValues(String[] xpaths) { - String result[] = new String[xpaths.length]; + String[] result = new String[xpaths.length]; for (int i = 0; i < xpaths.length; i++) { result[i] = cldrFile.getWinningValueWithBailey(xpaths[i]); } @@ -532,9 +541,6 @@ private String[] getArray(String key, String type, String context, String width) return result; } - static final Matcher gregorianMonthsMatcher = - PatternCache.get(".*gregorian.*months.*").matcher(""); - private List getArray( String prefix, int firstIndex, String[] itemNames, String postfix, int minimumSize) { List result = new ArrayList<>(); @@ -573,12 +579,6 @@ private List getArray( "integer", "decimal", "percent", "scientific" }; // // "standard", , "INR", - public String getNumberNames(int i) { - return NumberNames[i]; - } - - public static int LIMIT_NUMBER_INDEX = NumberNames.length; - private static class MyCurrency extends Currency { String symbol; String displayName; @@ -681,11 +681,6 @@ public DecimalFormat getCurrencyFormat( return _getNumberFormat(currency, CURRENCY, currencySymbol, numberSystem); } - public DecimalFormat getLongCurrencyFormat(String currency) { - // CLDRFile cldrFile = cldrFactory.make(localeID, true); - return _getNumberFormat(currency, CURRENCY, null, null); - } - public DecimalFormat getNumberFormat(int index) { // CLDRFile cldrFile = cldrFactory.make(localeID, true); return _getNumberFormat(NumberNames[index], OTHER_KEY, null, null); @@ -698,11 +693,16 @@ public DecimalFormat getNumberFormat(int index, String numberSystem) { public NumberFormat getGenericNumberFormat(String ns) { // CLDRFile cldrFile = cldrFactory.make(localeID, true); - NumberFormat result = cacheNumberFormats.get(cldrFile.getLocaleID() + "@numbers=" + ns); + NumberFormat result = + cachingIsEnabled + ? cacheNumberFormats.get(cldrFile.getLocaleID() + "@numbers=" + ns) + : null; if (result == null) { ULocale ulocale = new ULocale(cldrFile.getLocaleID() + "@numbers=" + ns); result = NumberFormat.getInstance(ulocale); - cacheNumberFormats.put(cldrFile.getLocaleID() + "@numbers=" + ns, result); + if (cachingIsEnabled) { + cacheNumberFormats.put(cldrFile.getLocaleID() + "@numbers=" + ns, result); + } } return (NumberFormat) result.clone(); } @@ -728,7 +728,8 @@ private DecimalFormat _getNumberFormat( (currencySymbol == null) ? ulocale + "/" + key1 + "/" + kind : ulocale + "/" + key1 + "/" + kind + "/" + currencySymbol; - DecimalFormat result = (DecimalFormat) cacheNumberFormats.get(key); + DecimalFormat result = + cachingIsEnabled ? (DecimalFormat) cacheNumberFormats.get(key) : null; if (result != null) { return (DecimalFormat) result.clone(); } @@ -843,7 +844,9 @@ private DecimalFormat _getNumberFormat( result.setDecimalSeparatorAlwaysShown(false); result.setParseIntegerOnly(true); } - cacheNumberFormats.put(key, result); + if (cachingIsEnabled) { + cacheNumberFormats.put(key, result); + } return (DecimalFormat) result.clone(); } @@ -890,7 +893,7 @@ private DecimalFormatSymbols _getDecimalFormatSymbols(String numberSystem) { (numberSystem == null) ? cldrFile.getLocaleID() : cldrFile.getLocaleID() + "@numbers=" + numberSystem; - DecimalFormatSymbols symbols = cacheDecimalFormatSymbols.get(key); + DecimalFormatSymbols symbols = cachingIsEnabled ? cacheDecimalFormatSymbols.get(key) : null; if (symbols != null) { return (DecimalFormatSymbols) symbols.clone(); } @@ -952,7 +955,9 @@ private DecimalFormatSymbols _getDecimalFormatSymbols(String numberSystem) { .freeze(); afterInsertBetween = cldrFile.getWinningValueWithBailey(prefix + "insertBetween"); - cacheDecimalFormatSymbols.put(key, symbols); + if (cachingIsEnabled) { + cacheDecimalFormatSymbols.put(key, symbols); + } return (DecimalFormatSymbols) symbols.clone(); } @@ -962,20 +967,6 @@ private char getSymbolCharacter(String key, String numsys) { return getSymbolString(key, numsys).charAt(0); } - // TODO no longer used now that http://bugs.icu-project.org/trac/ticket/10368 is done. - private char getHackSymbolCharacter(String key, String numsys) { - String minusString = getSymbolString(key, numsys); - char minusSign = - (minusString.length() > 1 && isBidiMark(minusString.charAt(0))) - ? minusString.charAt(1) - : minusString.charAt(0); - return minusSign; - } - - private static boolean isBidiMark(char c) { - return (c == '\u200E' || c == '\u200F' || c == '\u061C'); - } - private String getSymbolString(String key, String numsys) { // numsys should not be null (previously resolved to defaultNumberingSystem if necessary) String value = null; @@ -1043,13 +1034,7 @@ public String toString() { } } - /** - * Format a dayPeriod string. The dayPeriodOverride, if null, will be fetched from the file. - * - * @param timeInDay - * @param dayPeriodString - * @return - */ + /** Format a dayPeriod string. The dayPeriodOverride, if null, will be fetched from the file. */ public String formatDayPeriod(int timeInDay, Context context, Width width) { DayPeriodInfo dayPeriodInfo = supplementalData.getDayPeriods(DayPeriodInfo.Type.format, cldrFile.getLocaleID()); @@ -1086,8 +1071,6 @@ public static String getDayPeriodPath(DayPeriod period, Context context, Width w return path; } - static final String SHORT_PATH = - "//ldml/dates/calendars/calendar[@type=\"gregorian\"]/timeFormats/timeFormatLength[@type=\"short\"]/timeFormat[@type=\"standard\"]/pattern[@type=\"standard\"]"; static final String HM_PATH = "//ldml/dates/calendars/calendar[@type=\"gregorian\"]/dateTimeFormats/availableFormats/dateFormatItem[@id=\"hm\"]"; static final String BHM_PATH = @@ -1138,8 +1121,4 @@ private String formatDayPeriod(int timeInDay, DayPeriod period, String dayPeriod String result = formatted.replace("\uE000", dayPeriodFormatString); return result; } - - public String getMinusSign(String numberSystem) { - return _getDecimalFormatSymbols(numberSystem).getMinusSignString(); - } } diff --git a/tools/cldr-code/src/main/java/org/unicode/cldr/util/RecordingCLDRFile.java b/tools/cldr-code/src/main/java/org/unicode/cldr/util/RecordingCLDRFile.java index 025f97d0a42..9548647f393 100644 --- a/tools/cldr-code/src/main/java/org/unicode/cldr/util/RecordingCLDRFile.java +++ b/tools/cldr-code/src/main/java/org/unicode/cldr/util/RecordingCLDRFile.java @@ -6,11 +6,11 @@ * Like CLDRFile, with an added feature for recording the paths for which getStringValue, etc., are * called. * - *

The first intended usage is for TestExampleDependencies, to identify all the paths on which a - * given example depends. Before calling ExampleGenerator.getExampleHtml, TestExampleDependencies - * calls clearRecordedPaths. After getting each example, TestExampleDependencies calls - * getRecordedPaths to get the set of all paths in this file that were accessed to generate the - * example. + *

The first intended usage is for GenerateExampleDependencies, to identify all the paths on + * which a given example depends. Before calling ExampleGenerator.getExampleHtml, + * GenerateExampleDependencies calls clearRecordedPaths. After getting each example, + * GenerateExampleDependencies calls getRecordedPaths to get the set of all paths in this file that + * were accessed to generate the example. */ public class RecordingCLDRFile extends CLDRFile { private HashSet recordedPaths = new HashSet<>(); diff --git a/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestExampleDependencies.java b/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestExampleDependencies.java deleted file mode 100644 index a8e55e20cd1..00000000000 --- a/tools/cldr-code/src/test/java/org/unicode/cldr/unittest/TestExampleDependencies.java +++ /dev/null @@ -1,490 +0,0 @@ -package org.unicode.cldr.unittest; - -import com.google.common.collect.Multimap; -import com.google.common.collect.TreeMultimap; -import com.ibm.icu.dev.test.TestFmwk; -import java.io.File; -import java.io.IOException; -import java.io.PrintWriter; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import java.util.TreeSet; -import org.unicode.cldr.draft.FileUtilities; -import org.unicode.cldr.test.ExampleGenerator; -import org.unicode.cldr.util.CLDRConfig; -import org.unicode.cldr.util.CLDRFile; -import org.unicode.cldr.util.CLDRPaths; -import org.unicode.cldr.util.Factory; -import org.unicode.cldr.util.LocaleIDParser; -import org.unicode.cldr.util.PathStarrer; -import org.unicode.cldr.util.RecordingCLDRFile; -import org.unicode.cldr.util.XMLSource; - -public class TestExampleDependencies extends TestFmwk { - - private final boolean USE_STARRED_PATHS = true; - private final boolean USE_RECORDING = true; - private final String fileExtension = USE_RECORDING ? ".java" : ".json"; - - private CLDRConfig info; - private CLDRFile englishFile; - private Factory factory; - private Set locales; - private String outputDir; - private PathStarrer pathStarrer; - - public static void main(String[] args) { - new TestExampleDependencies().run(args); - } - - /** - * Test dependencies where changing the value of one path changes example-generation for another - * path. - * - *

The goal is to optimize example caching by only regenerating examples when necessary. - * - *

Reference: https://unicode-org.atlassian.net/browse/CLDR-13636 - * - * @throws IOException - */ - public void TestExampleGeneratorDependencies() throws IOException { - info = CLDRConfig.getInstance(); - englishFile = info.getEnglish(); - factory = info.getCldrFactory(); - locales = factory.getAvailable(); - outputDir = CLDRPaths.GEN_DIRECTORY + "test" + File.separator; - pathStarrer = USE_STARRED_PATHS ? new PathStarrer().setSubstitutionPattern("*") : null; - - System.out.println("..."); - System.out.println("Looping through " + locales.size() + " locales ..."); - - if (USE_RECORDING) { - /* - * Fast method: use RecordingCLDRFile to learn which paths are checked - * to produce the example for a given path. This is fast enough that we - * can do it for all locales at once to produce a single file. - */ - useRecording(); - } else { - /* - * Slow method: loop through all paths, modifying the value for each path - * and then doing an inner loop through all paths to see whether the example - * changed for each other path. This is extremely slow, so we produce one file - * for each locale, with the intention of merging the files afterwards. - */ - useModifying(); - } - } - - private void useRecording() throws IOException { - final Multimap dependencies = TreeMultimap.create(); - for (String localeId : locales) { - System.out.println(localeId); - addDependenciesForLocale(dependencies, localeId); - } - String fileName = "ExampleDependencies" + fileExtension; - System.out.println("Creating " + outputDir + fileName + " ..."); - writeDependenciesToFile(dependencies, outputDir, fileName); - } - - private void addDependenciesForLocale(Multimap dependencies, String localeId) { - RecordingCLDRFile cldrFile = makeRecordingCldrFile(localeId); - cldrFile.disableCaching(); - - Set paths = new TreeSet<>(cldrFile.getComparator()); - // time-consuming - cldrFile.forEach(paths::add); - - ExampleGenerator egTest = new ExampleGenerator(cldrFile, englishFile); - egTest.setCachingEnabled( - false); // will not employ a cache -- this should save some time, since cache would - // be wasted - - for (String pathB : paths) { - if (skipPathForDependencies(pathB)) { - continue; - } - String valueB = cldrFile.getStringValue(pathB); - if (valueB == null) { - continue; - } - String starredB = USE_STARRED_PATHS ? pathStarrer.set(pathB) : null; - cldrFile.clearRecordedPaths(); - egTest.getExampleHtml(pathB, valueB); - HashSet pathsA = cldrFile.getRecordedPaths(); - for (String pathA : pathsA) { - if (pathA.equals(pathB) || skipPathForDependencies(pathA)) { - continue; - } - String starredA = USE_STARRED_PATHS ? pathStarrer.set(pathA) : null; - dependencies.put( - USE_STARRED_PATHS ? starredA : pathA, USE_STARRED_PATHS ? starredB : pathB); - } - } - } - - private RecordingCLDRFile makeRecordingCldrFile(String localeId) { - XMLSource topSource = factory.makeSource(localeId); - List parents = getParentSources(factory, localeId); - XMLSource[] a = new XMLSource[parents.size()]; - return new RecordingCLDRFile(topSource, parents.toArray(a)); - } - - private void useModifying() throws IOException { - for (String localeId : locales) { - String fileName = - "example_dependencies_A_" - + localeId - + (USE_STARRED_PATHS ? "_star" : "") - + fileExtension; - - if (new File(outputDir, fileName).exists()) { - System.out.println( - "Locale: " - + localeId - + " -- skipping since " - + outputDir - + fileName - + " already exists"); - } else { - System.out.println( - "Locale: " + localeId + " -- creating " + outputDir + fileName + " ..."); - writeOneLocale(localeId, outputDir, fileName); - } - } - } - - private void writeOneLocale(String localeId, String outputDir, String fileName) - throws IOException { - CLDRFile cldrFile = makeMutableResolved(factory, localeId); // time-consuming - cldrFile.disableCaching(); - - Set paths = new TreeSet<>(cldrFile.getComparator()); - // time-consuming - cldrFile.forEach(paths::add); - - ExampleGenerator egBase = new ExampleGenerator(cldrFile, englishFile); - - HashMap originalValues = new HashMap<>(); - - getExamplesForBase(egBase, cldrFile, paths, originalValues); - /* - * Make egBase "cacheOnly" so that getExampleHtml will throw an exception if future queries - * are not found in the cache. Alternatively, could just make a local hashmap originalExamples, - * similar to originalValues. That might be more robust, require more memory, faster or slower? - * Should try both ways. - */ - egBase.setCacheOnly(true); - - ExampleGenerator egTest = new ExampleGenerator(cldrFile, englishFile); - egTest.setCachingEnabled( - false); // will not employ a cache -- this should save some time, since cache would - // be wasted - - CLDRFile top = cldrFile.getUnresolved(); // can mutate top - - final Multimap dependencies = TreeMultimap.create(); - long count = 0; - long skipCount = 0; - long dependencyCount = 0; - - /* - * For each path (A), temporarily change its value, and then check each other path (B), - * to see whether changing the value for A changed the example for B. - */ - for (String pathA : paths) { - if (skipPathForDependencies(pathA)) { - ++skipCount; - continue; - } - String valueA = cldrFile.getStringValue(pathA); - if (valueA == null) { - continue; - } - if ((++count % 100) == 0) { - System.out.println(count); - } - if (count > 500000) { - break; - } - String starredA = USE_STARRED_PATHS ? pathStarrer.set(pathA) : null; - /* - * Modify the value for pathA in some random way - */ - String newValue = modifyValueRandomly(valueA); - /* - * cldrFile.add would lead to UnsupportedOperationException("Resolved CLDRFiles are read-only"); - * Instead do top.add(), which works since top.dataSource = cldrFile.dataSource.currentSource. - * First, need to do valueChanged to clear getSourceLocaleIDCache. - */ - cldrFile.valueChanged(pathA); - top.add(pathA, newValue); - - /* - * Reality check, did we really change the value returned by cldrFile.getStringValue? - */ - String valueAX = cldrFile.getStringValue(pathA); - if (!valueAX.equals(newValue)) { - // Bad, didn't work as expected - System.out.println( - "Changing top did not change cldrFile: newValue = " - + newValue - + "; valueAX = " - + valueAX - + "; valueA = " - + valueA); - } - - for (String pathB : paths) { - if (pathA.equals(pathB) || skipPathForDependencies(pathB)) { - continue; - } - /* - * For valueB, use originalValues.get(pathB), not cldrFile.getStringValue(pathB). - * They could be different if changing valueA changes valueB (probably due to aliasing). - * In that case, we're not interested in whether changing valueA changes valueB. We need - * to know whether changing valueA changes an example that was already cached, keyed by - * pathB and the original valueB. - */ - String valueB = originalValues.get(pathB); - if (valueB == null) { - continue; - } - pathB = pathB.intern(); - - // egTest.icuServiceBuilder.setCldrFile(cldrFile); // clear caches in - // icuServiceBuilder; has to be public - String exBase = - egBase.getExampleHtml( - pathB, - valueB); // this will come from cache (or throw cacheOnly exception) - String exTest = egTest.getExampleHtml(pathB, valueB); // this won't come from cache - if ((exTest == null) != (exBase == null)) { - throw new InternalError("One null but not both? " + pathA + " --- " + pathB); - } else if (exTest != null && !exTest.equals(exBase)) { - dependencies.put( - USE_STARRED_PATHS ? starredA : pathA, - USE_STARRED_PATHS ? pathStarrer.set(pathB).intern() : pathB); - ++dependencyCount; - } - } - /* - * Restore the original value, so that the changes due to this pathA don't get - * carried over to the next pathA. Again call valueChanged to clear getSourceLocaleIDCache. - */ - top.add(pathA, valueA); - cldrFile.valueChanged(pathA); - String valueAXX = cldrFile.getStringValue(pathA); - if (!valueAXX.equals(valueA)) { - System.out.println( - "Failed to restore original value: valueAXX = " - + valueAXX - + "; valueA = " - + valueA); - } - } - writeDependenciesToFile(dependencies, outputDir, fileName); - System.out.println( - "count = " - + count - + "; skipCount = " - + skipCount - + "; dependencyCount = " - + dependencyCount); - } - - /** - * Get all the examples so they'll be added to the cache for egBase. Also fill originalValues. - * - * @param egBase - * @param cldrFile - * @param paths - * @param originalValues - */ - private void getExamplesForBase( - ExampleGenerator egBase, - CLDRFile cldrFile, - Set paths, - HashMap originalValues) { - for (String path : paths) { - if (skipPathForDependencies(path)) { - continue; - } - String value = cldrFile.getStringValue(path); - if (value == null) { - continue; - } - originalValues.put(path, value); - egBase.getExampleHtml(path, value); - } - } - - /** - * Modify the given value string for testing dependencies - * - * @param value - * @return the modified value, guaranteed to be different from value - *

Note: it might be best to avoid IllegalArgumentException thrown/caught in, e.g., - * ICUServiceBuilder.getSymbolString; in which case this function might need path as - * parameter, to generate only "legal" values for specific paths. - */ - private String modifyValueRandomly(String value) { - /* - * Change 1 to 0 - */ - String newValue = value.replace("1", "0"); - if (!newValue.equals(value)) { - return newValue; - } - /* - * Change 0 to 1 - */ - newValue = value.replace("0", "1"); - if (!newValue.equals(value)) { - return newValue; - } - /* - * String concatenation, e.g., change "foo" to "foo1" - */ - return value + "1"; - } - - /** - * Get a CLDRFile that is mutable yet shares the same dataSource as a pre-existing resolving - * CLDRFile for the same locale. - * - *

If cldrFile is the pre-existing resolving CLDRFile, and we return topCldrFile, then we'll - * end up with topCldrFile.dataSource = cldrFile.dataSource.currentSource, which will be a - * SimpleXMLSource. - * - * @param factory - * @param localeId - * @return the CLDRFile - */ - private static CLDRFile makeMutableResolved(Factory factory, String localeId) { - XMLSource topSource = - factory.makeSource(localeId).cloneAsThawed(); // make top one modifiable - List parents = getParentSources(factory, localeId); - XMLSource[] a = new XMLSource[parents.size()]; - return new CLDRFile(topSource, parents.toArray(a)); - } - - /** - * Get the parent sources for the given localeId - * - * @param factory - * @param localeId - * @return the List of XMLSource objects - *

Called only by makeMutableResolved - */ - private static List getParentSources(Factory factory, String localeId) { - List parents = new ArrayList<>(); - for (String currentLocaleID = LocaleIDParser.getParent(localeId); - currentLocaleID != null; - currentLocaleID = LocaleIDParser.getParent(currentLocaleID)) { - parents.add(factory.makeSource(currentLocaleID)); - } - return parents; - } - - /** - * Should the given path be skipped when testing example-generator path dependencies? - * - * @param path - * @param isTypeA true if path is playing role of pathA not pathB - * @return true to skip, else false - */ - private static boolean skipPathForDependencies(String path) { - if (path.endsWith("/alias") || path.startsWith("//ldml/identity")) { - return true; - } - return false; - } - - /** - * Write the given map of example-generator path dependencies to a json or java file. - * - *

If this function is to be used for json and revised long-term, it would be better to use - * JSONObject, or write a format other than json. JSONObject isn't currently linked to - * cldr-unittest TestAll, package org.unicode.cldr.unittest. - * - * @param dependencies the multimap of example-generator path dependencies - * @param dir the directory in which to create the file - * @param fileName the name of the file to create - * @throws IOException - */ - private void writeDependenciesToFile( - Multimap dependencies, String dir, String name) throws IOException { - PrintWriter writer = FileUtilities.openUTF8Writer(dir, name); - if (fileExtension.equals(".json")) { - writeJson(dependencies, dir, name, writer); - } else { - writeJava(dependencies, dir, name, writer); - } - } - - private void writeJava( - Multimap dependencies, String dir, String name, PrintWriter writer) { - writer.println("package org.unicode.cldr.test;"); - writer.println("import com.google.common.collect.ImmutableSetMultimap;"); - writer.println("public class ExampleDependencies {"); - writer.println(" public static ImmutableSetMultimap dependencies"); - writer.println(" = new ImmutableSetMultimap.Builder()"); - int dependenciesWritten = 0; - ArrayList listA = new ArrayList<>(dependencies.keySet()); - Collections.sort(listA); - for (String pathA : listA) { - ArrayList listB = new ArrayList<>(dependencies.get(pathA)); - Collections.sort(listB); - String a = "\"" + pathA.replaceAll("\"", "\\\\\"") + "\""; - for (String pathB : listB) { - String b = "\"" + pathB.replaceAll("\"", "\\\\\"") + "\""; - writer.println(" .put(" + a + ", " + b + ")"); - ++dependenciesWritten; - } - } - writer.println(" .build();"); - writer.println("}"); - writer.close(); - System.out.println("Wrote " + dependenciesWritten + " dependencies to " + dir + name); - } - - private void writeJson( - Multimap dependencies, String dir, String name, PrintWriter writer) { - ArrayList list = new ArrayList<>(dependencies.keySet()); - Collections.sort(list); - boolean firstPathA = true; - int keysWritten = 0; - for (String pathA : list) { - if (firstPathA) { - firstPathA = false; - } else { - writer.println(","); - } - Collection values = dependencies.get(pathA); - writer.print(" " + "\"" + pathA.replaceAll("\"", "\\\\\"") + "\"" + ": "); - writer.println("["); - boolean firstPathB = true; - for (String pathB : values) { - if (firstPathB) { - firstPathB = false; - } else { - writer.println(","); - } - writer.print(" " + "\"" + pathB.replaceAll("\"", "\\\\\"") + "\""); - } - writer.println(""); - writer.print(" ]"); - ++keysWritten; - } - writer.println(""); - writer.println("}"); - writer.close(); - System.out.println("Wrote " + keysWritten + " keys to " + dir + name); - } -}