| ******************************************************************************* | 
 | * © 2016 and later: Unicode, Inc. and others. | 
 | * License & terms of use: http://www.unicode.org/copyright.html | 
 | ******************************************************************************* | 
 | * Copyright (C) 2012-2013, International Business Machines Corporation and    * | 
 | * others. All Rights Reserved.                                                * | 
 | ******************************************************************************* | 
 |  | 
 | [Overview] | 
 |  | 
 | This directory contains a tool used for maintaining ICU's ISO 4217 currency | 
 | code mapping data. ICU uses a resource generated by this tool for mapping | 
 | ISO 4217 currency alpha codes to numeric codes. | 
 |  | 
 |  | 
 | [Files] | 
 |  | 
 | package com.ibm.icu.dev.tool.currency | 
 |  | 
 | Main.java - The tool's entry point | 
 | NumericCodeData.java - The mapping data used by ICU | 
 | CurrencyDataParser.java - ISO 4217 XML data parser | 
 | CurrencyDataEntry.java - ISO 4217 XML data entry | 
 |  | 
 |  | 
 | [Details] | 
 |  | 
 | com.ibm.icu.dev.tool.NumericCodeData has String[][] CODE_MAP_DATA. | 
 | This array represents mappings between ISO 4217 alpha codes and | 
 | numeric codes. ICU's resource bundle currencyNumericCodes is generated | 
 | from the table. | 
 |  | 
 | ISO 4217 maintenance agency - SIX Interbank Clearing distributes | 
 | ISO 4217 code data in XML format. These files are found in | 
 | http://www.currency-iso.org/iso_index/iso_tables.htm. There are two | 
 | files that we're interested in. | 
 |  | 
 |  - http://www.currency-iso.org/dl_iso_table_a1.xml | 
 |  - http://www.currency-iso.org/dl_iso_tables_a3.xml | 
 |  | 
 | Table A.1 contains current currencies and funds and Table A.3 contains | 
 | historic denominations. | 
 |  | 
 | The tool supports 2 commands - check / resource. | 
 |  | 
 | 1) check | 
 |  | 
 | This command compares the hardcoded mapping data in NumericCodeData.java | 
 | with the ISO 4217 XML data files side by side and check differences. | 
 |  | 
 | 2) resource | 
 |  | 
 | This command writes out the hardcoded mapping data in NumericCodeData.java | 
 | in ICU resource bundle source format - currencyNumericCodes.txt. | 
 |  | 
 |  | 
 | [Release Tasks] | 
 |  | 
 | For each ICU release, we should check if the mapping data is up to date. | 
 |  | 
 | Prerequisites: Java 6+, ant | 
 |  | 
 | First, run the ant target "check". This ant target download XML files from | 
 | the SIX Interbank Clearing site and invoke the tool command "check". | 
 |  | 
 | When the target successfully finished, you should see the log like below: | 
 | ---------------------------------------------------------------------------- | 
 | C:\devtools\trunk\currency>ant | 
 | Buildfile: C:\devtools\trunk\currency\build.xml | 
 |  | 
 | classes: | 
 |  | 
 | _checkLocalXml: | 
 |  | 
 | _localXml: | 
 |  | 
 | _downloadXml: | 
 |      [echo] Downloading ISO 4217 XML data files | 
 |       [get] Getting: http://www.currency-iso.org/dam/downloads/lists/list_one.xm | 
 | l | 
 |       [get] To: C:\devtools\trunk\currency\out\xml\list_one.xml | 
 |       [get] Getting: http://www.currency-iso.org/dam/downloads/lists/list_three. | 
 | xml | 
 |       [get] To: C:\devtools\trunk\currency\out\xml\list_three.xml | 
 |  | 
 | xmlData: | 
 |  | 
 | check: | 
 |      [java] [OK] ICU data is synchronized with the reference data | 
 |  | 
 | resource: | 
 |      [echo] ISO 4217 numeric code mapping data was successfully created in C:\de | 
 | vtools\trunk\currency/out/res | 
 |  | 
 | build: | 
 |  | 
 | BUILD SUCCESSFUL | 
 | Total time: 1 second | 
 | ---------------------------------------------------------------------------- | 
 | In this case, our data is synchronized with the latest XML data and you're done. | 
 |  | 
 |  | 
 | If the data is out of sync, you should see message like below: | 
 | ---------------------------------------------------------------------------- | 
 | check: | 
 |      [java] Missing alpha code in ICU map [ZWR] | 
 |      [java] Codes not found in the reference data: ZZZ | 
 |  | 
 | BUILD FAILED | 
 | C:\devtools\trunk\currency\build.xml:54: Java returned: 1 | 
 | ---------------------------------------------------------------------------- | 
 | In this case, you have to update the hardcoded data in NumericCodeData. | 
 | You can either edit the table in NumericCodeData manually, or run the tool | 
 | command "print" and copy the output and paste it to the table. | 
 |  | 
 | Once you make sure "ant check" returns no errors, run "ant resource". This | 
 | target generate out/res/currencyNumericCodes.txt. The file should go to | 
 | <icu4c>/source/data/misc directory. | 
 |  | 
 | Note: The default ant target does both operation. Although it creates the | 
 | ICU resource file, you do not need to replace the one in ICU4C package with | 
 | the newly generated one if "check" successfully finished. | 
 |  |