You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by pr...@apache.org on 2002/03/11 07:30:00 UTC

cvs commit: jakarta-commons-sandbox/periodicity/src/xml countrycodes.xml languagecodes.xml

prickett    02/03/10 22:30:00

  Modified:    periodicity/src/java/org/apache/commons/periodicity/test/altrep
                        ValidAltRepTest.java
               periodicity/src/java/org/apache/commons/periodicity/test/usertype
                        ValidUserTypeTest.java
  Added:       periodicity/src/java/org/apache/commons/periodicity/test
                        ParamTests.java
               periodicity/src/xml countrycodes.xml languagecodes.xml
  Log:
  New contributions courtesy of Mike George javajoe2975@comcast.net
  
  1. Patches to ValidAltRepTest and ValidUserTypeTest due to lessons learned
  on how to create JUnit tests. Thanks Mike for the persistence to get this
  working.
  
  2. The first test suite, ParamTests.java, for iCalendar.
  
  3. An xml file that contains country codes as outlined in ISO 3166-1 as of
  February 20, 2002.
  
  4. An xml file that contains language codes as outlined in ISO639A as of
  February 9, 2001
  
  Revision  Changes    Path
  1.1                  jakarta-commons-sandbox/periodicity/src/java/org/apache/commons/periodicity/test/ParamTests.java
  
  Index: ParamTests.java
  ===================================================================
  /* ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2000-2002 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache" and "Apache Software Foundation" and
   *     "Apache Jetspeed" must not be used to endorse or promote products
   *    derived from this software without prior written permission. For
   *    written permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache" or
   *    "Apache Jetspeed", nor may "Apache" appear in their name, without
   *    prior written permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.commons.periodicity.test;
  
  import org.apache.commons.periodicity.test.altrep.ValidAltRepTest;
  import org.apache.commons.periodicity.test.usertype.ValidUserTypeTest;
  import junit.framework.TestSuite;
  import junit.framework.Test;
  import java.util.Date;
  
  /**
    * This class consolidates all of the individual JUnit TestCase 
    * classes for the iCalendar parameter types into a single JUnit 
    * TestSuite.  JUnit can be found at <a href="http://www.junit.org">JUnit.org.</a>
    * @author Mike George
    * <a href="mailto:javajoe2975@comcast.net">javajoe2975@comcast.net</a>
    */
  public class ParamTests extends TestSuite
  {
      /**
        * This static method returns the Testsuite object that
        * JUnit needs to perform its tests.
        * @return A TestSuite object that will be used in JUnit testing.
        */
      public static Test suite() {
          
          String dateStr = new Date().toString();
          TestSuite ts = new TestSuite(dateStr);
          
          try 
          {
              ts.addTest(new ValidAltRepTest(dateStr));
              ts.addTest(new ValidUserTypeTest(dateStr));
              return ts;
          }
          catch(Throwable t)
          {
              System.out.println("Throwable thrown in ParamTests.suite() method.");
          }
          return ts;
      }
  }
  
  
  
  1.3       +134 -132  jakarta-commons-sandbox/periodicity/src/java/org/apache/commons/periodicity/test/altrep/ValidAltRepTest.java
  
  Index: ValidAltRepTest.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/periodicity/src/java/org/apache/commons/periodicity/test/altrep/ValidAltRepTest.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ValidAltRepTest.java	24 Feb 2002 04:34:21 -0000	1.2
  +++ ValidAltRepTest.java	11 Mar 2002 06:30:00 -0000	1.3
  @@ -1,132 +1,134 @@
  -/* ====================================================================
  - * The Apache Software License, Version 1.1
  - *
  - * Copyright (c) 2000-2002 The Apache Software Foundation.  All rights
  - * reserved.
  - *
  - * Redistribution and use in source and binary forms, with or without
  - * modification, are permitted provided that the following conditions
  - * are met:
  - *
  - * 1. Redistributions of source code must retain the above copyright
  - *    notice, this list of conditions and the following disclaimer.
  - *
  - * 2. Redistributions in binary form must reproduce the above copyright
  - *    notice, this list of conditions and the following disclaimer in
  - *    the documentation and/or other materials provided with the
  - *    distribution.
  - *
  - * 3. The end-user documentation included with the redistribution,
  - *    if any, must include the following acknowledgment:
  - *       "This product includes software developed by the
  - *        Apache Software Foundation (http://www.apache.org/)."
  - *    Alternately, this acknowledgment may appear in the software itself,
  - *    if and wherever such third-party acknowledgments normally appear.
  - *
  - * 4. The names "Apache" and "Apache Software Foundation" and
  - *     "Apache Jetspeed" must not be used to endorse or promote products
  - *    derived from this software without prior written permission. For
  - *    written permission, please contact apache@apache.org.
  - *
  - * 5. Products derived from this software may not be called "Apache" or
  - *    "Apache Jetspeed", nor may "Apache" appear in their name, without
  - *    prior written permission of the Apache Software Foundation.
  - *
  - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  - * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  - * SUCH DAMAGE.
  - * ====================================================================
  - *
  - * This software consists of voluntary contributions made by many
  - * individuals on behalf of the Apache Software Foundation.  For more
  - * information on the Apache Software Foundation, please see
  - * <http://www.apache.org/>.
  - */
  -package org.apache.commons.periodicity.test.altrep;
  -
  -import org.apache.commons.periodicity.parameters.AltRep;
  -import org.apache.commons.periodicity.util.ICalendarException;
  -import junit.framework.TestCase;
  -import java.lang.reflect.Array;
  -
  -/**
  - * This class tests to ensure that a URI passed into
  - * the AltRep class (org\apache\commons\periodicity\parameters\AltRep)
  - * is stored correctly and is valid when retrieved.
  - * Some of the sample URIs were selected from
  - * RFC1630 "Universal Resource Identifiers in WWW" located
  - * at http://www.faqs.org/rfcs/rfc1630.html
  - * and RFC1738 "Uniform Resource Locators located
  - * at http://www.w3.org/Addressing/rfc1738.txt.
  - * @author Mike George
  - * <a href="mailto:javajoe2975@comcast.net">javajoe2975@comcast.net</a>
  - */
  -
  -public class ValidAltRepTest extends TestCase
  -{
  -    private static final String[] URI_VALUES = new String[]
  -    {
  -        "mailto:javajoe2975@comcast.com",
  -        "http://jakarta.apache.org",
  -        "ftp://ftp.apache.org/",
  -        "news://news.grc.com",
  -        "nntp://nntp.perl.org",
  -        "telnet://ax4.ppp.smu.edu",
  -        "wais://www.ncsa.uiuc.edu:8001",
  -        "http://info.cern.ch/albert/bertram/marie-claude",
  -        "http://info.cern.ch/albert/bertram/marie%2Dclaude",
  -        "http://info.cern.ch/albert/bertram/marie-claude",
  -        "http://info.cern.ch/albert/bertram%2Fmarie-claude",
  -        "http://info.cern.ch:8000/imaginary/test",
  -        "http://www.myu.edu/org/admin/people#andy",
  -        "http://info.my.org/AboutUs/Index/Phonebook?dobbins",
  -        "http://www.amazon.com/obidos/ASIN/052/qid=10928/sr=8-1/ref=sr_8_71_1/103-5734792-5447027",
  -        "file://c:/somedirectory/somefile.htm"
  -    };
  -
  -    /**
  -      * This public constructor passes a String to the TestCase
  -      * constructor.
  -      * @param A name that helps uniquely identify the test, i.e. a date, test#.
  -      */
  -    public ValidAltRepTest(String name) throws Throwable
  -    {
  -        super("ValidAltRepTest:" + name);
  -        runTest();
  -    }
  -
  -    /**
  -      * This method passes a valid URI to an AltRep object using
  -      * a set method.  The value is retrieved from the object
  -      * using a get method and then compared with the original
  -      * to make sure that the value was processed and stored correctly.
  -      */
  -    protected void setValidAltRep() throws ICalendarException
  -    {
  -        final int length = Array.getLength(URI_VALUES);
  -        AltRep testAltRep = new AltRep();
  -
  -        for (int i = 0; i < length; i++)
  -        {
  -            testAltRep.setValue(URI_VALUES[i]);
  -            assertEquals(testAltRep.getValue(), URI_VALUES[i]);
  -        }
  -    }
  -
  -    /**
  -      * This method runs the test.
  -      */
  -    protected void runTest() throws Throwable
  -    {
  -        setValidAltRep();
  -    }
  -}
  +/* ====================================================================
  + * The Apache Software License, Version 1.1
  + *
  + * Copyright (c) 2000-2002 The Apache Software Foundation.  All rights
  + * reserved.
  + *
  + * Redistribution and use in source and binary forms, with or without
  + * modification, are permitted provided that the following conditions
  + * are met:
  + *
  + * 1. Redistributions of source code must retain the above copyright
  + *    notice, this list of conditions and the following disclaimer.
  + *
  + * 2. Redistributions in binary form must reproduce the above copyright
  + *    notice, this list of conditions and the following disclaimer in
  + *    the documentation and/or other materials provided with the
  + *    distribution.
  + *
  + * 3. The end-user documentation included with the redistribution,
  + *    if any, must include the following acknowledgment:
  + *       "This product includes software developed by the
  + *        Apache Software Foundation (http://www.apache.org/)."
  + *    Alternately, this acknowledgment may appear in the software itself,
  + *    if and wherever such third-party acknowledgments normally appear.
  + *
  + * 4. The names "Apache" and "Apache Software Foundation" and
  + *     "Apache Jetspeed" must not be used to endorse or promote products
  + *    derived from this software without prior written permission. For
  + *    written permission, please contact apache@apache.org.
  + *
  + * 5. Products derived from this software may not be called "Apache" or
  + *    "Apache Jetspeed", nor may "Apache" appear in their name, without
  + *    prior written permission of the Apache Software Foundation.
  + *
  + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  + * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  + * SUCH DAMAGE.
  + * ====================================================================
  + *
  + * This software consists of voluntary contributions made by many
  + * individuals on behalf of the Apache Software Foundation.  For more
  + * information on the Apache Software Foundation, please see
  + * <http://www.apache.org/>.
  + */
  +package org.apache.commons.periodicity.test.altrep;
  +
  +import org.apache.commons.periodicity.parameters.AltRep;
  +import org.apache.commons.periodicity.util.ICalendarException;
  +import junit.framework.TestCase;
  +import junit.framework.TestResult;
  +import java.lang.reflect.Array;
  +
  +/**
  + * This class tests to ensure that a URI passed into
  + * the AltRep class (org\apache\commons\periodicity\parameters\AltRep)
  + * is stored correctly and is valid when retrieved.
  + * Some of the sample URIs were selected from
  + * RFC1630 "Universal Resource Identifiers in WWW" located
  + * at http://www.faqs.org/rfcs/rfc1630.html
  + * and RFC1738 "Uniform Resource Locators located
  + * at http://www.w3.org/Addressing/rfc1738.txt.
  + * @author Mike George
  + * <a href="mailto:javajoe2975@comcast.net">javajoe2975@comcast.net</a>
  + */
  +
  +public class ValidAltRepTest extends TestCase
  +{
  +    public static final String[] URI_VALUES = new String[]
  +    {
  +        "mailto:javajoe2975@comcast.com",
  +        "http://jakarta.apache.org",
  +        "ftp://ftp.apache.org/",
  +        "news://news.grc.com",
  +        "nntp://nntp.perl.org",
  +        "telnet://ax4.ppp.smu.edu",
  +        "wais://www.ncsa.uiuc.edu:8001",
  +        "http://info.cern.ch/albert/bertram/marie-claude",
  +        "http://info.cern.ch/albert/bertram/marie%2Dclaude",
  +        "http://info.cern.ch/albert/bertram/marie-claude",
  +        "http://info.cern.ch/albert/bertram%2Fmarie-claude",
  +        "http://info.cern.ch:8000/imaginary/test",
  +        "http://www.myu.edu/org/admin/people#andy",
  +        "http://info.my.org/AboutUs/Index/Phonebook?dobbins",
  +        "http://www.amazon.com/obidos/ASIN/052/qid=10928/sr=8-1/ref=sr_8_71_1/103-5734792-5447027",
  +        "file://c:/somedirectory/somefile.htm"
  +    };
  +
  +    /**
  +      * This public constructor passes a String to the TestCase
  +      * constructor.
  +      * @param A name that helps uniquely identify the test, i.e. a date, test#.
  +      */
  +    public ValidAltRepTest(String name) throws Throwable
  +    {
  +        super("ValidAltRepTest:" + name);
  +        TestCase.assertEquals(3, 3);
  +        runTest();
  +    }
  +
  +    /**
  +      * This method passes a valid URI to an AltRep object using
  +      * a set method.  The value is retrieved from the object
  +      * using a get method and then compared with the original
  +      * to make sure that the value was processed and stored correctly.
  +      */
  +    public void test_setValidAltRep() throws ICalendarException
  +    {
  +        final int length = Array.getLength(URI_VALUES);
  +        AltRep testAltRep = new AltRep();
  +
  +        for (int i = 0; i < length; i++)
  +        {
  +            testAltRep.setValue(URI_VALUES[i]);
  +            TestCase.assertEquals(testAltRep.getValue(), URI_VALUES[i]);
  +        }
  +    }
  +
  +    /**
  +      * This method runs the test.
  +      */
  +    public void runTest() throws Throwable
  +    {
  +        test_setValidAltRep();
  +    }
  +}
  
  
  
  1.2       +201 -206  jakarta-commons-sandbox/periodicity/src/java/org/apache/commons/periodicity/test/usertype/ValidUserTypeTest.java
  
  Index: ValidUserTypeTest.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/periodicity/src/java/org/apache/commons/periodicity/test/usertype/ValidUserTypeTest.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ValidUserTypeTest.java	9 Mar 2002 07:27:37 -0000	1.1
  +++ ValidUserTypeTest.java	11 Mar 2002 06:30:00 -0000	1.2
  @@ -1,206 +1,201 @@
  -/* ====================================================================
  - * The Apache Software License, Version 1.1
  - *
  - * Copyright (c) 2000-2002 The Apache Software Foundation.  All rights
  - * reserved.
  - *
  - * Redistribution and use in source and binary forms, with or without
  - * modification, are permitted provided that the following conditions
  - * are met:
  - *
  - * 1. Redistributions of source code must retain the above copyright
  - *    notice, this list of conditions and the following disclaimer.
  - *
  - * 2. Redistributions in binary form must reproduce the above copyright
  - *    notice, this list of conditions and the following disclaimer in
  - *    the documentation and/or other materials provided with the
  - *    distribution.
  - *
  - * 3. The end-user documentation included with the redistribution,
  - *    if any, must include the following acknowledgment:
  - *       "This product includes software developed by the
  - *        Apache Software Foundation (http://www.apache.org/)."
  - *    Alternately, this acknowledgment may appear in the software itself,
  - *    if and wherever such third-party acknowledgments normally appear.
  - *
  - * 4. The names "Apache" and "Apache Software Foundation" and
  - *     "Apache Jetspeed" must not be used to endorse or promote products
  - *    derived from this software without prior written permission. For
  - *    written permission, please contact apache@apache.org.
  - *
  - * 5. Products derived from this software may not be called "Apache" or
  - *    "Apache Jetspeed", nor may "Apache" appear in their name, without
  - *    prior written permission of the Apache Software Foundation.
  - *
  - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  - * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  - * SUCH DAMAGE.
  - * ====================================================================
  - *
  - * This software consists of voluntary contributions made by many
  - * individuals on behalf of the Apache Software Foundation.  For more
  - * information on the Apache Software Foundation, please see
  - * <http://www.apache.org/>.
  - */
  -package org.apache.commons.periodicity.test.usertype;
  -
  -import org.apache.commons.periodicity.parameters.UserType;
  -import org.apache.commons.periodicity.util.ICalendarException;
  -import junit.framework.TestCase;
  -import java.lang.reflect.Array;
  -
  -/**
  - * This class tests to ensure that a CUTYPE value passed into
  - * the UserType class (org\apache\commons\periodicity\parameters\UserType)
  - * is stored correctly and is valid when retrieved.
  - * Valid user types include "INDIVIDUAL", "GROUP", "RESOURCE", "ROOM",
  - * X-types and "UNKNOWN".
  - * CUTYPE is covered in RFC2445 Section 4.2.3.
  - * @author Mike George
  - * <a href="mailto:javajoe2975@comcast.net">javajoe2975@comcast.net</a>
  - */
  -
  -public class ValidUserTypeTest extends TestCase
  -{
  -    private static final String[] VALUES = new String[]
  -    {
  -        "INDIVIDUAL", "GROUP", "RESOURCE", "ROOM", "UNKNOWN"
  -    };
  -
  -    /**
  -      * This public constructor passes a String to the TestCase
  -      * constructor.
  -      * @param A name that helps uniquely identify the test, i.e. a date, test#.
  -      */
  -    public ValidUserTypeTest(String name) throws Throwable
  -    {
  -        super("ValidUserTypeTest:" + name);
  -        runTest();
  -    }
  -
  -    /**
  -      * This method passes a valid CUTYPE value to a UserType object using
  -      * the single parameter constructor in the UserType class.
  -      */
  -    protected void useSingleArgConstructor() throws ICalendarException
  -    {
  -        final int length = Array.getLength(VALUES);
  -
  -        for (int i = 0; i < length; i++)
  -        {
  -            UserType test = new UserType(VALUES[i]);
  -            assertEquals(test.getValue(), VALUES[i]);
  -        }
  -    }
  -    
  -    /**
  -      * This method uses the setvalue method directly to pass in a valid
  -      * CUTYPE value.
  -      */
  -    protected void useSetValue() throws ICalendarException
  -    {
  -        final int length = Array.getLength(VALUES);
  -        UserType test = new UserType();
  -        
  -        for (int i = 0; i < length; i++)
  -        {
  -            test.setValue(VALUES[i]);
  -            assertEquals(test.getValue(), VALUES[i]);
  -        }
  -    }
  -    
  -    /**
  -      * This method tests to make sure that if a null value is 
  -      * passed in, a null value is returned.
  -      */
  -    protected void setNullValue() throws ICalendarException
  -    {   
  -        //Using no-arg constructor
  -        UserType test = new UserType();
  -        assertEquals(test.getValue(), null);
  -    }
  -    
  -    /**
  -      * This method passes in a valid parameter and then uses
  -      * the get<CUTYPE> method to validate the parameter.
  -      */
  -    protected void testValidValue() throws ICalendarException
  -    {
  -        UserType test1 = new UserType("INDIVIDUAL");
  -        assertEquals(test1.isIndividual(), true);
  -        assertEquals(test1.isGroup(), false);
  -        assertEquals(test1.isResource(), false);
  -        assertEquals(test1.isRoom(), false);
  -        assertEquals(test1.isUnknown(), false);
  -        
  -        UserType test2 = new UserType("GROUP");
  -        assertEquals(test2.isIndividual(), false);
  -        assertEquals(test2.isGroup(), true);
  -        assertEquals(test2.isResource(), false);
  -        assertEquals(test2.isRoom(), false);
  -        assertEquals(test2.isUnknown(), false);
  -        
  -        UserType test3 = new UserType("RESOURCE");
  -        assertEquals(test3.isIndividual(), false);
  -        assertEquals(test3.isGroup(), false);
  -        assertEquals(test3.isResource(), true);
  -        assertEquals(test3.isRoom(), false);
  -        assertEquals(test3.isUnknown(), false);
  -      
  -        UserType test4 = new UserType("ROOM");
  -        assertEquals(test4.isIndividual(), false);
  -        assertEquals(test4.isGroup(), false);
  -        assertEquals(test4.isResource(), false);
  -        assertEquals(test4.isRoom(), true);
  -        assertEquals(test4.isUnknown(), false);   
  -        
  -        UserType test5 = new UserType("UNKNOWN");
  -        assertEquals(test5.isIndividual(), false);
  -        assertEquals(test5.isGroup(), false);
  -        assertEquals(test5.isResource(), false);
  -        assertEquals(test5.isRoom(), false);
  -        assertEquals(test5.isUnknown(), true);
  -        
  -        UserType test6 = new UserType();
  -        assertEquals(test6.isIndividual(), false);
  -        assertEquals(test6.isGroup(), false);
  -        assertEquals(test6.isResource(), false);
  -        assertEquals(test6.isRoom(), false);
  -        assertEquals(test6.isUnknown(), false);        
  -    }
  -    
  -    /**
  -      * This method tests to make sure that an X-value can be set
  -      * and retrieved using both the single-arg and no-arg constructors
  -      */
  -    protected void setXName() throws ICalendarException
  -    {
  -        UserType test1 = new UserType();
  -        test1.setValue("X-newOne");
  -        assertEquals(test1.getValue(), "X-newOne");
  -        
  -        UserType test2 = new UserType("X-newTwo");
  -        assertEquals(test2.getValue(), "X-newTwo");
  -    }
  -       
  -    /**
  -      * This method runs the test.
  -      */
  -    protected void runTest() throws Throwable
  -    {
  -        useSingleArgConstructor();
  -        useSetValue();
  -        setNullValue();
  -        testValidValue();
  -        setXName();
  -    }
  -}
  +/* ====================================================================

  + * The Apache Software License, Version 1.1

  + *

  + * Copyright (c) 2000-2002 The Apache Software Foundation.  All rights

  + * reserved.

  + *

  + * Redistribution and use in source and binary forms, with or without

  + * modification, are permitted provided that the following conditions

  + * are met:

  + *

  + * 1. Redistributions of source code must retain the above copyright

  + *    notice, this list of conditions and the following disclaimer.

  + *

  + * 2. Redistributions in binary form must reproduce the above copyright

  + *    notice, this list of conditions and the following disclaimer in

  + *    the documentation and/or other materials provided with the

  + *    distribution.

  + *

  + * 3. The end-user documentation included with the redistribution,

  + *    if any, must include the following acknowledgment:

  + *       "This product includes software developed by the

  + *        Apache Software Foundation (http://www.apache.org/)."

  + *    Alternately, this acknowledgment may appear in the software itself,

  + *    if and wherever such third-party acknowledgments normally appear.

  + *

  + * 4. The names "Apache" and "Apache Software Foundation" and

  + *     "Apache Jetspeed" must not be used to endorse or promote products

  + *    derived from this software without prior written permission. For

  + *    written permission, please contact apache@apache.org.

  + *

  + * 5. Products derived from this software may not be called "Apache" or

  + *    "Apache Jetspeed", nor may "Apache" appear in their name, without

  + *    prior written permission of the Apache Software Foundation.

  + *

  + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED

  + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES

  + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE

  + * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR

  + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,

  + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT

  + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF

  + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND

  + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,

  + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT

  + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF

  + * SUCH DAMAGE.

  + * ====================================================================

  + *

  + * This software consists of voluntary contributions made by many

  + * individuals on behalf of the Apache Software Foundation.  For more

  + * information on the Apache Software Foundation, please see

  + * <http://www.apache.org/>.

  + */

  +package org.apache.commons.periodicity.test.usertype;

  +

  +import org.apache.commons.periodicity.parameters.UserType;

  +import org.apache.commons.periodicity.util.ICalendarException;

  +import junit.framework.TestCase;

  +import junit.framework.TestResult; //remove this line

  +import java.lang.reflect.Array;

  +

  +/**

  + * This class tests to ensure that a CUTYPE value passed into

  + * the UserType class (org\apache\commons\periodicity\parameters\UserType)

  + * is stored correctly and is valid when retrieved.

  + * Valid user types include "INDIVIDUAL", "GROUP", "RESOURCE", "ROOM",

  + * X-types and "UNKNOWN".

  + * CUTYPE is covered in RFC2445 Section 4.2.3.

  + * @author Mike George

  + * <a href="mailto:javajoe2975@comcast.net">javajoe2975@comcast.net</a>

  + */

  +

  +public class ValidUserTypeTest extends TestCase

  +{

  +    public static final String[] VALUES = new String[]

  +    {

  +        "INDIVIDUAL", "GROUP", "RESOURCE", "ROOM", "UNKNOWN"

  +    };

  +

  +    /**

  +      * This public constructor passes a String to the TestCase

  +      * constructor.

  +      * @param A name that helps uniquely identify the test, i.e. a date, test#.

  +      */

  +    public ValidUserTypeTest(String name) throws Throwable

  +    {

  +        super("ValidUserTypeTest:" + name);

  +        runTest();

  +    }

  +

  +    /**

  +      * This method passes a valid CUTYPE value to a UserType object using

  +      * the single parameter constructor in the UserType class.

  +      */

  +    public void test_useSingleArgConstructor() throws ICalendarException

  +    {

  +        final int length = Array.getLength(VALUES);

  +

  +        for (int i = 0; i < length; i++)

  +        {

  +            UserType test = new UserType(VALUES[i]);

  +            TestCase.assertEquals(test.getValue(), VALUES[i]);

  +        }

  +    }

  +    

  +    /**

  +      * This method uses the setvalue method directly to pass in a valid

  +      * CUTYPE value.

  +      */

  +    public void test_useSetValue() throws ICalendarException

  +    {

  +        final int length = Array.getLength(VALUES);

  +        UserType test = new UserType();

  +        

  +        for (int i = 0; i < length; i++)

  +        {

  +            test.setValue(VALUES[i]);

  +            TestCase.assertEquals(test.getValue(), VALUES[i]);

  +        }

  +    }

  +    

  +    /**

  +      * This method tests to make sure that if a null value is 

  +      * passed in, a null value is returned.

  +      */

  +    public void test_setNullValue() throws ICalendarException

  +    {   

  +        //Using no-arg constructor

  +        UserType test = new UserType();

  +        TestCase.assertEquals(test.getValue(), null);

  +    }

  +    

  +    /**

  +      * This method passes in a valid parameter and then uses

  +      * the get<CUTYPE> method to validate the parameter.

  +      */

  +    public void test_setValidValue() throws ICalendarException

  +    {

  +        UserType test1 = new UserType("INDIVIDUAL");

  +          TestCase.assertEquals(test1.isIndividual(), true);

  +          TestCase.assertEquals(test1.isGroup(), false);

  +          TestCase.assertEquals(test1.isResource(), false);

  +          TestCase.assertEquals(test1.isRoom(), false);

  +          TestCase.assertEquals(test1.isUnknown(), false);

  +        

  +        UserType test2 = new UserType("GROUP");

  +          TestCase.assertEquals(test2.isIndividual(), false);

  +          TestCase.assertEquals(test2.isGroup(), true);

  +          TestCase.assertEquals(test2.isResource(), false);

  +          TestCase.assertEquals(test2.isRoom(), false);

  +          TestCase.assertEquals(test2.isUnknown(), false);

  +        

  +        UserType test3 = new UserType("RESOURCE");

  +          TestCase.assertEquals(test3.isIndividual(), false);

  +          TestCase.assertEquals(test3.isGroup(), false);

  +          TestCase.assertEquals(test3.isResource(), true);

  +          TestCase.assertEquals(test3.isRoom(), false);

  +          TestCase.assertEquals(test3.isUnknown(), false);

  +      

  +        UserType test4 = new UserType("ROOM");

  +          TestCase.assertEquals(test4.isIndividual(), false);

  +          TestCase.assertEquals(test4.isGroup(), false);

  +          TestCase.assertEquals(test4.isResource(), false);

  +          TestCase.assertEquals(test4.isRoom(), true);

  +          TestCase.assertEquals(test4.isUnknown(), false);   

  +         

  +        UserType test5 = new UserType("UNKNOWN");

  +          TestCase.assertEquals(test5.isIndividual(), false);

  +          TestCase.assertEquals(test5.isGroup(), false);

  +          TestCase.assertEquals(test5.isResource(), false);

  +          TestCase.assertEquals(test5.isRoom(), false);

  +          TestCase.assertEquals(test5.isUnknown(), true);

  +    }

  +    

  +    

  +    /**

  +      * This method tests to make sure that an X-value can be set

  +      * and retrieved using both the single-arg and no-arg constructors

  +      */

  +    public void test_setXName() throws ICalendarException

  +    {

  +        UserType test1 = new UserType();

  +        test1.setValue("X-newOne");

  +        TestCase.assertEquals(test1.getValue(), "X-newOne");

  +        

  +        UserType test2 = new UserType("X-newTwo");

  +        TestCase.assertEquals(test2.getValue(), "X-newTwo");

  +    }

  +       

  +    /**

  +      * This method runs the test.

  +      */

  +    public void runTest() throws Throwable

  +    {

  +        test_useSingleArgConstructor();

  +        test_useSetValue();

  +        test_setNullValue();

  +        test_setValidValue();

  +        test_setXName();

  +    }

  +}

  
  
  
  1.1                  jakarta-commons-sandbox/periodicity/src/xml/countrycodes.xml
  
  Index: countrycodes.xml
  ===================================================================
  <?xml version="1.0"?>
  <!DOCTYPE countries [
  	<!ELEMENT countries (country*)>
  	<!ELEMENT country (iso3166code, englishName)>
  	<!ELEMENT iso3166code (#PCDATA)>
  	<!ELEMENT englishName (#PCDATA)>
  ]>
  <!--
  	/**
  	  * These country codes can be found on the Internet at
  	  * http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/index.html
  	  *
  	  * Per the website:
  	  * "The short country names from ISO 3166-1 and the alpha-2 codes are made 
  	  *  available by ISO at no charge."
  	  * Per the website:
  	  * "This list states the country names (official short names in English) in alphabetical order as 
  	  * given in ISO 3166-1 and the corresponding ISO 3166-1-alpha-2 code elements. The list is 
  	  * updated whenever a change to the official code list in ISO 3166-1 is effected by the ISO 3166/MA. 
  	  * The list is complete and up-to-date as of 2002-02-20. It lists 239 official short names and code elements."
  	  */
  -->
  <countries>
  	<country>
  		<iso3166code>AF</iso3166code>
  		<englishName>AFGHANISTAN </englishName>
  	</country>
  	<country>
  		<iso3166code>AL</iso3166code>
  		<englishName>ALBANIA </englishName>
  	</country>
  	<country>
  		<iso3166code>DZ</iso3166code>
  		<englishName>ALGERIA </englishName>
  	</country>
  	<country>
  		<iso3166code>AS</iso3166code>
  		<englishName>AMERICAN SAMOA </englishName>
  	</country>
  	<country>
  		<iso3166code>AD</iso3166code>
  		<englishName>ANDORRA </englishName>
  	</country>
  	<country>
  		<iso3166code>AO</iso3166code>
  		<englishName>ANGOLA </englishName>
  	</country>
  	<country>
  		<iso3166code>AI</iso3166code>
  		<englishName>ANGUILLA </englishName>
  	</country>
  	<country>
  		<iso3166code>AQ</iso3166code>
  		<englishName>ANTARCTICA </englishName>
  	</country>
  	<country>
  		<iso3166code>AG</iso3166code>
  		<englishName>ANTIGUA AND BARBUDA </englishName>
  	</country>
  	<country>
  		<iso3166code>AR</iso3166code>
  		<englishName>ARGENTINA </englishName>
  	</country>
  	<country>
  		<iso3166code>AM</iso3166code>
  		<englishName>ARMENIA </englishName>
  	</country>
  	<country>
  		<iso3166code>AW</iso3166code>
  		<englishName>ARUBA </englishName>
  	</country>
  	<country>
  		<iso3166code>AU</iso3166code>
  		<englishName>AUSTRALIA </englishName>
  	</country>
  	<country>
  		<iso3166code>AT</iso3166code>
  		<englishName>AUSTRIA </englishName>
  	</country>
  	<country>
  		<iso3166code>AZ</iso3166code>
  		<englishName>AZERBAIJAN </englishName>
  	</country>
  	<country>
  		<iso3166code>BS</iso3166code>
  		<englishName>BAHAMAS </englishName>
  	</country>
  	<country>
  		<iso3166code>BH</iso3166code>
  		<englishName>BAHRAIN </englishName>
  	</country>
  	<country>
  		<iso3166code>BD</iso3166code>
  		<englishName>BANGLADESH </englishName>
  	</country>
  	<country>
  		<iso3166code>BB</iso3166code>
  		<englishName>BARBADOS </englishName>
  	</country>
  	<country>
  		<iso3166code>BY</iso3166code>
  		<englishName>BELARUS </englishName>
  	</country>
  	<country>
  		<iso3166code>BE</iso3166code>
  		<englishName>BELGIUM </englishName>
  	</country>
  	<country>
  		<iso3166code>BZ</iso3166code>
  		<englishName>BELIZE </englishName>
  	</country>
  	<country>
  		<iso3166code>BJ</iso3166code>
  		<englishName>BENIN </englishName>
  	</country>
  	<country>
  		<iso3166code>BM</iso3166code>
  		<englishName>BERMUDA </englishName>
  	</country>
  	<country>
  		<iso3166code>BT</iso3166code>
  		<englishName>BHUTAN </englishName>
  	</country>
  	<country>
  		<iso3166code>BO</iso3166code>
  		<englishName>BOLIVIA </englishName>
  	</country>
  	<country>
  		<iso3166code>BA</iso3166code>
  		<englishName>BOSNIA AND HERZEGOVINA </englishName>
  	</country>
  	<country>
  		<iso3166code>BW</iso3166code>
  		<englishName>BOTSWANA </englishName>
  	</country>
  	<country>
  		<iso3166code>BV</iso3166code>
  		<englishName>BOUVET ISLAND </englishName>
  	</country>
  	<country>
  		<iso3166code>BR</iso3166code>
  		<englishName>BRAZIL </englishName>
  	</country>
  	<country>
  		<iso3166code>IO</iso3166code>
  		<englishName>BRITISH INDIAN OCEAN TERRITORY </englishName>
  	</country>
  	<country>
  		<iso3166code>BN</iso3166code>
  		<englishName>BRUNEI DARUSSALAM </englishName>
  	</country>
  	<country>
  		<iso3166code>BG</iso3166code>
  		<englishName>BULGARIA </englishName>
  	</country>
  	<country>
  		<iso3166code>BF</iso3166code>
  		<englishName>BURKINA FASO </englishName>
  	</country>
  	<country>
  		<iso3166code>BI</iso3166code>
  		<englishName>BURUNDI </englishName>
  	</country>
  	<country>
  		<iso3166code>KH</iso3166code>
  		<englishName>CAMBODIA </englishName>
  	</country>
  	<country>
  		<iso3166code>CM</iso3166code>
  		<englishName>CAMEROON </englishName>
  	</country>
  	<country>
  		<iso3166code>CA</iso3166code>
  		<englishName>CANADA </englishName>
  	</country>
  	<country>
  		<iso3166code>CV</iso3166code>
  		<englishName>CAPE VERDE </englishName>
  	</country>
  	<country>
  		<iso3166code>KY</iso3166code>
  		<englishName>CAYMAN ISLANDS </englishName>
  	</country>
  	<country>
  		<iso3166code>CF</iso3166code>
  		<englishName>CENTRAL AFRICAN REPUBLIC </englishName>
  	</country>
  	<country>
  		<iso3166code>TD</iso3166code>
  		<englishName>CHAD </englishName>
  	</country>
  	<country>
  		<iso3166code>CL</iso3166code>
  		<englishName>CHILE </englishName>
  	</country>
  	<country>
  		<iso3166code>CN</iso3166code>
  		<englishName>CHINA </englishName>
  	</country>
  	<country>
  		<iso3166code>CX</iso3166code>
  		<englishName>CHRISTMAS ISLAND </englishName>
  	</country>
  	<country>
  		<iso3166code>CC</iso3166code>
  		<englishName>COCOS (KEELING) ISLANDS </englishName>
  	</country>
  	<country>
  		<iso3166code>CO</iso3166code>
  		<englishName>COLOMBIA </englishName>
  	</country>
  	<country>
  		<iso3166code>KM</iso3166code>
  		<englishName>COMOROS </englishName>
  	</country>
  	<country>
  		<iso3166code>CG</iso3166code>
  		<englishName>CONGO </englishName>
  	</country>
  	<country>
  		<iso3166code>CD</iso3166code>
  		<englishName>CONGO, THE DEMOCRATIC REPUBLIC OF THE </englishName>
  	</country>
  	<country>
  		<iso3166code>CK</iso3166code>
  		<englishName>COOK ISLANDS </englishName>
  	</country>
  	<country>
  		<iso3166code>CR</iso3166code>
  		<englishName>COSTA RICA </englishName>
  	</country>
  	<country>
  		<iso3166code>CI</iso3166code>
  		<englishName>COTE D'IVOIRE </englishName>
  	</country>
  	<country>
  		<iso3166code>HR</iso3166code>
  		<englishName>CROATIA </englishName>
  	</country>
  	<country>
  		<iso3166code>CU</iso3166code>
  		<englishName>CUBA </englishName>
  	</country>
  	<country>
  		<iso3166code>CY</iso3166code>
  		<englishName>CYPRUS </englishName>
  	</country>
  	<country>
  		<iso3166code>CZ</iso3166code>
  		<englishName>CZECH REPUBLIC </englishName>
  	</country>
  	<country>
  		<iso3166code>DK</iso3166code>
  		<englishName>DENMARK </englishName>
  	</country>
  	<country>
  		<iso3166code>DJ</iso3166code>
  		<englishName>DJIBOUTI </englishName>
  	</country>
  	<country>
  		<iso3166code>DM</iso3166code>
  		<englishName>DOMINICA </englishName>
  	</country>
  	<country>
  		<iso3166code>DO</iso3166code>
  		<englishName>DOMINICAN REPUBLIC </englishName>
  	</country>
  	<country>
  		<iso3166code>TP</iso3166code>
  		<englishName>EAST TIMOR </englishName>
  	</country>
  	<country>
  		<iso3166code>EC</iso3166code>
  		<englishName>ECUADOR </englishName>
  	</country>
  	<country>
  		<iso3166code>EG</iso3166code>
  		<englishName>EGYPT </englishName>
  	</country>
  	<country>
  		<iso3166code>SV</iso3166code>
  		<englishName>EL SALVADOR </englishName>
  	</country>
  	<country>
  		<iso3166code>GQ</iso3166code>
  		<englishName>EQUATORIAL GUINEA </englishName>
  	</country>
  	<country>
  		<iso3166code>ER</iso3166code>
  		<englishName>ERITREA </englishName>
  	</country>
  	<country>
  		<iso3166code>EE</iso3166code>
  		<englishName>ESTONIA </englishName>
  	</country>
  	<country>
  		<iso3166code>ET</iso3166code>
  		<englishName>ETHIOPIA </englishName>
  	</country>
  	<country>
  		<iso3166code>FK</iso3166code>
  		<englishName>FALKLAND ISLANDS (MALVINAS) </englishName>
  	</country>
  	<country>
  		<iso3166code>FO</iso3166code>
  		<englishName>FAROE ISLANDS </englishName>
  	</country>
  	<country>
  		<iso3166code>FJ</iso3166code>
  		<englishName>FIJI </englishName>
  	</country>
  	<country>
  		<iso3166code>FI</iso3166code>
  		<englishName>FINLAND </englishName>
  	</country>
  	<country>
  		<iso3166code>FR</iso3166code>
  		<englishName>FRANCE </englishName>
  	</country>
  	<country>
  		<iso3166code>GF</iso3166code>
  		<englishName>FRENCH GUIANA </englishName>
  	</country>
  	<country>
  		<iso3166code>PF</iso3166code>
  		<englishName>FRENCH POLYNESIA </englishName>
  	</country>
  	<country>
  		<iso3166code>TF</iso3166code>
  		<englishName>FRENCH SOUTHERN TERRITORIES </englishName>
  	</country>
  	<country>
  		<iso3166code>GA</iso3166code>
  		<englishName>GABON </englishName>
  	</country>
  	<country>
  		<iso3166code>GM</iso3166code>
  		<englishName>GAMBIA </englishName>
  	</country>
  	<country>
  		<iso3166code>GE</iso3166code>
  		<englishName>GEORGIA </englishName>
  	</country>
  	<country>
  		<iso3166code>DE</iso3166code>
  		<englishName>GERMANY </englishName>
  	</country>
  	<country>
  		<iso3166code>GH</iso3166code>
  		<englishName>GHANA </englishName>
  	</country>
  	<country>
  		<iso3166code>GI</iso3166code>
  		<englishName>GIBRALTAR </englishName>
  	</country>
  	<country>
  		<iso3166code>GR</iso3166code>
  		<englishName>GREECE </englishName>
  	</country>
  	<country>
  		<iso3166code>GL</iso3166code>
  		<englishName>GREENLAND </englishName>
  	</country>
  	<country>
  		<iso3166code>GD</iso3166code>
  		<englishName>GRENADA </englishName>
  	</country>
  	<country>
  		<iso3166code>GP</iso3166code>
  		<englishName>GUADELOUPE </englishName>
  	</country>
  	<country>
  		<iso3166code>GU</iso3166code>
  		<englishName>GUAM </englishName>
  	</country>
  	<country>
  		<iso3166code>GT</iso3166code>
  		<englishName>GUATEMALA </englishName>
  	</country>
  	<country>
  		<iso3166code>GN</iso3166code>
  		<englishName>GUINEA </englishName>
  	</country>
  	<country>
  		<iso3166code>GW</iso3166code>
  		<englishName>GUINEA-BISSAU </englishName>
  	</country>
  	<country>
  		<iso3166code>GY</iso3166code>
  		<englishName>GUYANA </englishName>
  	</country>
  	<country>
  		<iso3166code>HT</iso3166code>
  		<englishName>HAITI </englishName>
  	</country>
  	<country>
  		<iso3166code>HM</iso3166code>
  		<englishName>HEARD ISLAND AND MCDONALD ISLANDS </englishName>
  	</country>
  	<country>
  		<iso3166code>VA</iso3166code>
  		<englishName>HOLY SEE (VATICAN CITY STATE) </englishName>
  	</country>
  	<country>
  		<iso3166code>HN</iso3166code>
  		<englishName>HONDURAS </englishName>
  	</country>
  	<country>
  		<iso3166code>HK</iso3166code>
  		<englishName>HONG KONG </englishName>
  	</country>
  	<country>
  		<iso3166code>HU</iso3166code>
  		<englishName>HUNGARY </englishName>
  	</country>
  	<country>
  		<iso3166code>IS</iso3166code>
  		<englishName>ICELAND </englishName>
  	</country>
  	<country>
  		<iso3166code>IN</iso3166code>
  		<englishName>INDIA </englishName>
  	</country>
  	<country>
  		<iso3166code>ID</iso3166code>
  		<englishName>INDONESIA </englishName>
  	</country>
  	<country>
  		<iso3166code>IR</iso3166code>
  		<englishName>IRAN, ISLAMIC REPUBLIC OF </englishName>
  	</country>
  	<country>
  		<iso3166code>IQ</iso3166code>
  		<englishName>IRAQ </englishName>
  	</country>
  	<country>
  		<iso3166code>IE</iso3166code>
  		<englishName>IRELAND </englishName>
  	</country>
  	<country>
  		<iso3166code>IL</iso3166code>
  		<englishName>ISRAEL </englishName>
  	</country>
  	<country>
  		<iso3166code>IT</iso3166code>
  		<englishName>ITALY </englishName>
  	</country>
  	<country>
  		<iso3166code>JM</iso3166code>
  		<englishName>JAMAICA </englishName>
  	</country>
  	<country>
  		<iso3166code>JP</iso3166code>
  		<englishName>JAPAN </englishName>
  	</country>
  	<country>
  		<iso3166code>JO</iso3166code>
  		<englishName>JORDAN </englishName>
  	</country>
  	<country>
  		<iso3166code>KZ</iso3166code>
  		<englishName>KAZAKSTAN </englishName>
  	</country>
  	<country>
  		<iso3166code>KE</iso3166code>
  		<englishName>KENYA </englishName>
  	</country>
  	<country>
  		<iso3166code>KI</iso3166code>
  		<englishName>KIRIBATI </englishName>
  	</country>
  	<country>
  		<iso3166code>KP</iso3166code>
  		<englishName>KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF </englishName>
  	</country>
  	<country>
  		<iso3166code>KR</iso3166code>
  		<englishName>KOREA, REPUBLIC OF </englishName>
  	</country>
  	<country>
  		<iso3166code>KW</iso3166code>
  		<englishName>KUWAIT </englishName>
  	</country>
  	<country>
  		<iso3166code>KG</iso3166code>
  		<englishName>KYRGYZSTAN </englishName>
  	</country>
  	<country>
  		<iso3166code>LA</iso3166code>
  		<englishName>LAO PEOPLE'S DEMOCRATIC REPUBLIC </englishName>
  	</country>
  	<country>
  		<iso3166code>LV</iso3166code>
  		<englishName>LATVIA </englishName>
  	</country>
  	<country>
  		<iso3166code>LB</iso3166code>
  		<englishName>LEBANON </englishName>
  	</country>
  	<country>
  		<iso3166code>LS</iso3166code>
  		<englishName>LESOTHO </englishName>
  	</country>
  	<country>
  		<iso3166code>LR</iso3166code>
  		<englishName>LIBERIA </englishName>
  	</country>
  	<country>
  		<iso3166code>LY</iso3166code>
  		<englishName>LIBYAN ARAB JAMAHIRIYA </englishName>
  	</country>
  	<country>
  		<iso3166code>LI</iso3166code>
  		<englishName>LIECHTENSTEIN </englishName>
  	</country>
  	<country>
  		<iso3166code>LT</iso3166code>
  		<englishName>LITHUANIA </englishName>
  	</country>
  	<country>
  		<iso3166code>LU</iso3166code>
  		<englishName>LUXEMBOURG </englishName>
  	</country>
  	<country>
  		<iso3166code>MO</iso3166code>
  		<englishName>MACAU </englishName>
  	</country>
  	<country>
  		<iso3166code>MK</iso3166code>
  		<englishName>MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF </englishName>
  	</country>
  	<country>
  		<iso3166code>MG</iso3166code>
  		<englishName>MADAGASCAR </englishName>
  	</country>
  	<country>
  		<iso3166code>MW</iso3166code>
  		<englishName>MALAWI </englishName>
  	</country>
  	<country>
  		<iso3166code>MY</iso3166code>
  		<englishName>MALAYSIA </englishName>
  	</country>
  	<country>
  		<iso3166code>MV</iso3166code>
  		<englishName>MALDIVES </englishName>
  	</country>
  	<country>
  		<iso3166code>ML</iso3166code>
  		<englishName>MALI </englishName>
  	</country>
  	<country>
  		<iso3166code>MT</iso3166code>
  		<englishName>MALTA </englishName>
  	</country>
  	<country>
  		<iso3166code>MH</iso3166code>
  		<englishName>MARSHALL ISLANDS </englishName>
  	</country>
  	<country>
  		<iso3166code>MQ</iso3166code>
  		<englishName>MARTINIQUE </englishName>
  	</country>
  	<country>
  		<iso3166code>MR</iso3166code>
  		<englishName>MAURITANIA </englishName>
  	</country>
  	<country>
  		<iso3166code>MU</iso3166code>
  		<englishName>MAURITIUS </englishName>
  	</country>
  	<country>
  		<iso3166code>YT</iso3166code>
  		<englishName>MAYOTTE </englishName>
  	</country>
  	<country>
  		<iso3166code>MX</iso3166code>
  		<englishName>MEXICO </englishName>
  	</country>
  	<country>
  		<iso3166code>FM</iso3166code>
  		<englishName>MICRONESIA, FEDERATED STATES OF </englishName>
  	</country>
  	<country>
  		<iso3166code>MD</iso3166code>
  		<englishName>MOLDOVA, REPUBLIC OF </englishName>
  	</country>
  	<country>
  		<iso3166code>MC</iso3166code>
  		<englishName>MONACO </englishName>
  	</country>
  	<country>
  		<iso3166code>MN</iso3166code>
  		<englishName>MONGOLIA </englishName>
  	</country>
  	<country>
  		<iso3166code>MS</iso3166code>
  		<englishName>MONTSERRAT </englishName>
  	</country>
  	<country>
  		<iso3166code>MA</iso3166code>
  		<englishName>MOROCCO </englishName>
  	</country>
  	<country>
  		<iso3166code>MZ</iso3166code>
  		<englishName>MOZAMBIQUE </englishName>
  	</country>
  	<country>
  		<iso3166code>MM</iso3166code>
  		<englishName>MYANMAR </englishName>
  	</country>
  	<country>
  		<iso3166code>NA</iso3166code>
  		<englishName>NAMIBIA </englishName>
  	</country>
  	<country>
  		<iso3166code>NR</iso3166code>
  		<englishName>NAURU </englishName>
  	</country>
  	<country>
  		<iso3166code>NP</iso3166code>
  		<englishName>NEPAL </englishName>
  	</country>
  	<country>
  		<iso3166code>NL</iso3166code>
  		<englishName>NETHERLANDS </englishName>
  	</country>
  	<country>
  		<iso3166code>AN</iso3166code>
  		<englishName>NETHERLANDS ANTILLES </englishName>
  	</country>
  	<country>
  		<iso3166code>NC</iso3166code>
  		<englishName>NEW CALEDONIA </englishName>
  	</country>
  	<country>
  		<iso3166code>NZ</iso3166code>
  		<englishName>NEW ZEALAND </englishName>
  	</country>
  	<country>
  		<iso3166code>NI</iso3166code>
  		<englishName>NICARAGUA </englishName>
  	</country>
  	<country>
  		<iso3166code>NE</iso3166code>
  		<englishName>NIGER </englishName>
  	</country>
  	<country>
  		<iso3166code>NG</iso3166code>
  		<englishName>NIGERIA </englishName>
  	</country>
  	<country>
  		<iso3166code>NU</iso3166code>
  		<englishName>NIUE </englishName>
  	</country>
  	<country>
  		<iso3166code>NF</iso3166code>
  		<englishName>NORFOLK ISLAND </englishName>
  	</country>
  	<country>
  		<iso3166code>MP</iso3166code>
  		<englishName>NORTHERN MARIANA ISLANDS </englishName>
  	</country>
  	<country>
  		<iso3166code>NO</iso3166code>
  		<englishName>NORWAY </englishName>
  	</country>
  	<country>
  		<iso3166code>OM</iso3166code>
  		<englishName>OMAN </englishName>
  	</country>
  	<country>
  		<iso3166code>PK</iso3166code>
  		<englishName>PAKISTAN </englishName>
  	</country>
  	<country>
  		<iso3166code>PW</iso3166code>
  		<englishName>PALAU </englishName>
  	</country>
  	<country>
  		<iso3166code>PS</iso3166code>
  		<englishName>PALESTINIAN TERRITORY, OCCUPIED </englishName>
  	</country>
  	<country>
  		<iso3166code>PA</iso3166code>
  		<englishName>PANAMA </englishName>
  	</country>
  	<country>
  		<iso3166code>PG</iso3166code>
  		<englishName>PAPUA NEW GUINEA </englishName>
  	</country>
  	<country>
  		<iso3166code>PY</iso3166code>
  		<englishName>PARAGUAY </englishName>
  	</country>
  	<country>
  		<iso3166code>PE</iso3166code>
  		<englishName>PERU </englishName>
  	</country>
  	<country>
  		<iso3166code>PH</iso3166code>
  		<englishName>PHILIPPINES </englishName>
  	</country>
  	<country>
  		<iso3166code>PN</iso3166code>
  		<englishName>PITCAIRN </englishName>
  	</country>
  	<country>
  		<iso3166code>PL</iso3166code>
  		<englishName>POLAND </englishName>
  	</country>
  	<country>
  		<iso3166code>PT</iso3166code>
  		<englishName>PORTUGAL </englishName>
  	</country>
  	<country>
  		<iso3166code>PR</iso3166code>
  		<englishName>PUERTO RICO </englishName>
  	</country>
  	<country>
  		<iso3166code>QA</iso3166code>
  		<englishName>QATAR </englishName>
  	</country>
  	<country>
  		<iso3166code>RE</iso3166code>
  		<englishName>REUNION </englishName>
  	</country>
  	<country>
  		<iso3166code>RO</iso3166code>
  		<englishName>ROMANIA </englishName>
  	</country>
  	<country>
  		<iso3166code>RU</iso3166code>
  		<englishName>RUSSIAN FEDERATION </englishName>
  	</country>
  	<country>
  		<iso3166code>RW</iso3166code>
  		<englishName>RWANDA </englishName>
  	</country>
  	<country>
  		<iso3166code>SH</iso3166code>
  		<englishName>SAINT HELENA </englishName>
  	</country>
  	<country>
  		<iso3166code>KN</iso3166code>
  		<englishName>SAINT KITTS AND NEVIS </englishName>
  	</country>
  	<country>
  		<iso3166code>LC</iso3166code>
  		<englishName>SAINT LUCIA </englishName>
  	</country>
  	<country>
  		<iso3166code>PM</iso3166code>
  		<englishName>SAINT PIERRE AND MIQUELON </englishName>
  	</country>
  	<country>
  		<iso3166code>VC</iso3166code>
  		<englishName>SAINT VINCENT AND THE GRENADINES </englishName>
  	</country>
  	<country>
  		<iso3166code>WS</iso3166code>
  		<englishName>SAMOA </englishName>
  	</country>
  	<country>
  		<iso3166code>SM</iso3166code>
  		<englishName>SAN MARINO </englishName>
  	</country>
  	<country>
  		<iso3166code>ST</iso3166code>
  		<englishName>SAO TOME AND PRINCIPE </englishName>
  	</country>
  	<country>
  		<iso3166code>SA</iso3166code>
  		<englishName>SAUDI ARABIA </englishName>
  	</country>
  	<country>
  		<iso3166code>SN</iso3166code>
  		<englishName>SENEGAL </englishName>
  	</country>
  	<country>
  		<iso3166code>SC</iso3166code>
  		<englishName>SEYCHELLES </englishName>
  	</country>
  	<country>
  		<iso3166code>SL</iso3166code>
  		<englishName>SIERRA LEONE </englishName>
  	</country>
  	<country>
  		<iso3166code>SG</iso3166code>
  		<englishName>SINGAPORE </englishName>
  	</country>
  	<country>
  		<iso3166code>SK</iso3166code>
  		<englishName>SLOVAKIA </englishName>
  	</country>
  	<country>
  		<iso3166code>SI</iso3166code>
  		<englishName>SLOVENIA </englishName>
  	</country>
  	<country>
  		<iso3166code>SB</iso3166code>
  		<englishName>SOLOMON ISLANDS </englishName>
  	</country>
  	<country>
  		<iso3166code>SO</iso3166code>
  		<englishName>SOMALIA </englishName>
  	</country>
  	<country>
  		<iso3166code>ZA</iso3166code>
  		<englishName>SOUTH AFRICA </englishName>
  	</country>
  	<country>
  		<iso3166code>GS</iso3166code>
  		<englishName>SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS </englishName>
  	</country>
  	<country>
  		<iso3166code>ES</iso3166code>
  		<englishName>SPAIN </englishName>
  	</country>
  	<country>
  		<iso3166code>LK</iso3166code>
  		<englishName>SRI LANKA </englishName>
  	</country>
  	<country>
  		<iso3166code>SD</iso3166code>
  		<englishName>SUDAN </englishName>
  	</country>
  	<country>
  		<iso3166code>SR</iso3166code>
  		<englishName>SURINAME </englishName>
  	</country>
  	<country>
  		<iso3166code>SJ</iso3166code>
  		<englishName>SVALBARD AND JAN MAYEN </englishName>
  	</country>
  	<country>
  		<iso3166code>SZ</iso3166code>
  		<englishName>SWAZILAND </englishName>
  	</country>
  	<country>
  		<iso3166code>SE</iso3166code>
  		<englishName>SWEDEN </englishName>
  	</country>
  	<country>
  		<iso3166code>CH</iso3166code>
  		<englishName>SWITZERLAND </englishName>
  	</country>
  	<country>
  		<iso3166code>SY</iso3166code>
  		<englishName>SYRIAN ARAB REPUBLIC </englishName>
  	</country>
  	<country>
  		<iso3166code>TW</iso3166code>
  		<englishName>TAIWAN, PROVINCE OF CHINA </englishName>
  	</country>
  	<country>
  		<iso3166code>TJ</iso3166code>
  		<englishName>TAJIKISTAN </englishName>
  	</country>
  	<country>
  		<iso3166code>TZ</iso3166code>
  		<englishName>TANZANIA, UNITED REPUBLIC OF </englishName>
  	</country>
  	<country>
  		<iso3166code>TH</iso3166code>
  		<englishName>THAILAND </englishName>
  	</country>
  	<country>
  		<iso3166code>TG</iso3166code>
  		<englishName>TOGO </englishName>
  	</country>
  	<country>
  		<iso3166code>TK</iso3166code>
  		<englishName>TOKELAU </englishName>
  	</country>
  	<country>
  		<iso3166code>TO</iso3166code>
  		<englishName>TONGA </englishName>
  	</country>
  	<country>
  		<iso3166code>TT</iso3166code>
  		<englishName>TRINIDAD AND TOBAGO </englishName>
  	</country>
  	<country>
  		<iso3166code>TN</iso3166code>
  		<englishName>TUNISIA </englishName>
  	</country>
  	<country>
  		<iso3166code>TR</iso3166code>
  		<englishName>TURKEY </englishName>
  	</country>
  	<country>
  		<iso3166code>TM</iso3166code>
  		<englishName>TURKMENISTAN </englishName>
  	</country>
  	<country>
  		<iso3166code>TC</iso3166code>
  		<englishName>TURKS AND CAICOS ISLANDS </englishName>
  	</country>
  	<country>
  		<iso3166code>TV</iso3166code>
  		<englishName>TUVALU </englishName>
  	</country>
  	<country>
  		<iso3166code>UG</iso3166code>
  		<englishName>UGANDA </englishName>
  	</country>
  	<country>
  		<iso3166code>UA</iso3166code>
  		<englishName>UKRAINE </englishName>
  	</country>
  	<country>
  		<iso3166code>AE</iso3166code>
  		<englishName>UNITED ARAB EMIRATES </englishName>
  	</country>
  	<country>
  		<iso3166code>GB</iso3166code>
  		<englishName>UNITED KINGDOM </englishName>
  	</country>
  	<country>
  		<iso3166code>US</iso3166code>
  		<englishName>UNITED STATES </englishName>
  	</country>
  	<country>
  		<iso3166code>UM</iso3166code>
  		<englishName>UNITED STATES MINOR OUTLYING ISLANDS </englishName>
  	</country>
  	<country>
  		<iso3166code>UY</iso3166code>
  		<englishName>URUGUAY </englishName>
  	</country>
  	<country>
  		<iso3166code>UZ</iso3166code>
  		<englishName>UZBEKISTAN </englishName>
  	</country>
  	<country>
  		<iso3166code>VU</iso3166code>
  		<englishName>VANUATU </englishName>
  	</country>
  	<country>
  		<iso3166code>VE</iso3166code>
  		<englishName>VENEZUELA </englishName>
  	</country>
  	<country>
  		<iso3166code>VN</iso3166code>
  		<englishName>VIET NAM </englishName>
  	</country>
  	<country>
  		<iso3166code>VG</iso3166code>
  		<englishName>VIRGIN ISLANDS, BRITISH </englishName>
  	</country>
  	<country>
  		<iso3166code>VI</iso3166code>
  		<englishName>VIRGIN ISLANDS, U.S. </englishName>
  	</country>
  	<country>
  		<iso3166code>WF</iso3166code>
  		<englishName>WALLIS AND FUTUNA </englishName>
  	</country>
  	<country>
  		<iso3166code>EH</iso3166code>
  		<englishName>WESTERN SAHARA </englishName>
  	</country>
  	<country>
  		<iso3166code>YE</iso3166code>
  		<englishName>YEMEN </englishName>
  	</country>
  	<country>
  		<iso3166code>YU</iso3166code>
  		<englishName>YUGOSLAVIA </englishName>
  	</country>
  	<country>
  		<iso3166code>ZM</iso3166code>
  		<englishName>ZAMBIA </englishName>
  	</country>
  	<country>
  		<iso3166code>ZW</iso3166code>
  		<englishName>ZIMBABWE </englishName>
  	</country>
  </countries>
  
  
  
  1.1                  jakarta-commons-sandbox/periodicity/src/xml/languagecodes.xml
  
  Index: languagecodes.xml
  ===================================================================
  <?xml version="1.0"?>
  <!DOCTYPE languages [
   <!ELEMENT languages  (language*)>
   <!ELEMENT language   (langName, iso639code, langFamily)>
   <!ELEMENT langName   (#PCDATA)>
   <!ELEMENT iso639code (#PCDATA)>
   <!ELEMENT langFamily (#PCDATA)>
  ]>
  <!--
   /**
     * From the website:
     * http://www.oasis-open.org/cover/iso639a.html
     * 
     * Per the website:
     * "Additional Note 2001-08-29
     * The provisional/draft (informative) "Annex B" in 
     * ISO 639-1:2001 (FDIS) offers these clarifications:
     * From: 
     * http://www.rtt.org/ISO/TC37/SC2/WG1/639/639-1-FDIS-x-2001-02-09.htm
     * Changes from ISO 639:1988 to ISO 639-1:2001
     * This annex lists all languages that have been added 
     * since the publication of ISO 639:1988. Modifications 
     * to the names of the languages are not included.
     */
  -->
  <languages>
  <language><langName> ABKHAZIAN </langName><iso639code> AB </iso639code><langFamily> IBERO-CAUCASIAN </langFamily></language>
  <language><langName> AFAN (OROMO) </langName><iso639code> OM </iso639code><langFamily> HAMITIC </langFamily></language>
  <language><langName> AFAR </langName><iso639code> AA </iso639code><langFamily> HAMITIC </langFamily></language>
  <language><langName> AFRIKAANS </langName><iso639code> AF </iso639code><langFamily> GERMANIC </langFamily></language>
  <language><langName> ALBANIAN </langName><iso639code> SQ </iso639code><langFamily> INDO-EUROPEAN (OTHER) </langFamily></language>
  <language><langName> AMHARIC </langName><iso639code> AM </iso639code><langFamily> SEMITIC </langFamily></language>
  <language><langName> ARABIC </langName><iso639code> AR </iso639code><langFamily> SEMITIC </langFamily></language>
  <language><langName> ARMENIAN </langName><iso639code> HY </iso639code><langFamily> INDO-EUROPEAN (OTHER) </langFamily></language>
  <language><langName> ASSAMESE </langName><iso639code> AS </iso639code><langFamily> INDIAN </langFamily></language>
  <language><langName> AYMARA </langName><iso639code> AY </iso639code><langFamily> AMERINDIAN </langFamily></language>
  <language><langName> AZERBAIJANI </langName><iso639code> AZ </iso639code><langFamily> TURKIC/ALTAIC </langFamily></language>
  <language><langName> BASHKIR </langName><iso639code> BA </iso639code><langFamily> TURKIC/ALTAIC </langFamily></language>
  <language><langName> BASQUE </langName><iso639code> EU </iso639code><langFamily> BASQUE </langFamily></language>
  <language><langName> BENGALI;BANGLA </langName><iso639code> BN </iso639code><langFamily> INDIAN </langFamily></language>
  <language><langName> BHUTANI </langName><iso639code> DZ </iso639code><langFamily> ASIAN </langFamily></language>
  <language><langName> BIHARI </langName><iso639code> BH </iso639code><langFamily> INDIAN </langFamily></language>
  <language><langName> BISLAMA </langName><iso639code> BI </iso639code><langFamily> [not given] </langFamily></language>
  <language><langName> BRETON </langName><iso639code> BR </iso639code><langFamily> CELTIC </langFamily></language>
  <language><langName> BULGARIAN </langName><iso639code> BG </iso639code><langFamily> SLAVIC </langFamily></language>
  <language><langName> BURMESE </langName><iso639code> MY </iso639code><langFamily> ASIAN </langFamily></language>
  <language><langName> BYELORUSSIAN </langName><iso639code> BE </iso639code><langFamily> SLAVIC </langFamily></language>
  <language><langName> CAMBODIAN </langName><iso639code> KM </iso639code><langFamily> ASIAN </langFamily></language>
  <language><langName> CATALAN </langName><iso639code> CA </iso639code><langFamily> ROMANCE </langFamily></language>
  <language><langName> CHINESE </langName><iso639code> ZH </iso639code><langFamily> ASIAN </langFamily></language>
  <language><langName> CORSICAN </langName><iso639code> CO </iso639code><langFamily> ROMANCE </langFamily></language>
  <language><langName> CROATIAN </langName><iso639code> HR </iso639code><langFamily> SLAVIC </langFamily></language>
  <language><langName> CZECH </langName><iso639code> CS </iso639code><langFamily> SLAVIC </langFamily></language>
  <language><langName> DANISH </langName><iso639code> DA </iso639code><langFamily> GERMANIC </langFamily></language>
  <language><langName> DUTCH </langName><iso639code> NL </iso639code><langFamily> GERMANIC </langFamily></language>
  <language><langName> ENGLISH </langName><iso639code> EN </iso639code><langFamily> GERMANIC </langFamily></language>
  <language><langName> ESPERANTO </langName><iso639code> EO </iso639code><langFamily> INTERNATIONAL AUX. </langFamily></language>
  <language><langName> ESTONIAN </langName><iso639code> ET </iso639code><langFamily> FINNO-UGRIC </langFamily></language>
  <language><langName> FAROESE </langName><iso639code> FO </iso639code><langFamily> GERMANIC </langFamily></language>
  <language><langName> FIJI </langName><iso639code> FJ </iso639code><langFamily> OCEANIC/INDONESIAN </langFamily></language>
  <language><langName> FINNISH </langName><iso639code> FI </iso639code><langFamily> FINNO-UGRIC </langFamily></language>
  <language><langName> FRENCH </langName><iso639code> FR </iso639code><langFamily> ROMANCE </langFamily></language>
  <language><langName> FRISIAN </langName><iso639code> FY </iso639code><langFamily> GERMANIC </langFamily></language>
  <language><langName> GALICIAN </langName><iso639code> GL </iso639code><langFamily> ROMANCE </langFamily></language>
  <language><langName> GEORGIAN </langName><iso639code> KA </iso639code><langFamily> IBERO-CAUCASIAN </langFamily></language>
  <language><langName> GERMAN </langName><iso639code> DE </iso639code><langFamily> GERMANIC </langFamily></language>
  <language><langName> GREEK </langName><iso639code> EL </iso639code><langFamily> LATIN/GREEK </langFamily></language>
  <language><langName> GREENLANDIC </langName><iso639code> KL </iso639code><langFamily> ESKIMO </langFamily></language>
  <language><langName> GUARANI </langName><iso639code> GN </iso639code><langFamily> AMERINDIAN </langFamily></language>
  <language><langName> GUJARATI </langName><iso639code> GU </iso639code><langFamily> INDIAN </langFamily></language>
  <language><langName> HAUSA </langName><iso639code> HA </iso639code><langFamily> NEGRO-AFRICAN </langFamily></language>
  <language><langName> HEBREW </langName><iso639code> HE </iso639code><langFamily> SEMITIC [*Changed 1989 from original ISO 639:1988, IW] </langFamily></language>
  <language><langName> HINDI </langName><iso639code> HI </iso639code><langFamily> INDIAN </langFamily></language>
  <language><langName> HUNGARIAN </langName><iso639code> HU </iso639code><langFamily> FINNO-UGRIC </langFamily></language>
  <language><langName> ICELANDIC </langName><iso639code> IS </iso639code><langFamily> GERMANIC </langFamily></language>
  <language><langName> INDONESIAN </langName><iso639code> ID </iso639code><langFamily> OCEANIC/INDONESIAN [*Changed 1989 from original ISO 639:1988, IN] </langFamily></language>
  <language><langName> INTERLINGUA </langName><iso639code> IA </iso639code><langFamily> INTERNATIONAL AUX. </langFamily></language>
  <language><langName> INTERLINGUE </langName><iso639code> IE </iso639code><langFamily> INTERNATIONAL AUX. </langFamily></language>
  <language><langName> INUKTITUT </langName><iso639code> IU </iso639code><langFamily> [        ] </langFamily></language>
  <language><langName> INUPIAK </langName><iso639code> IK </iso639code><langFamily> ESKIMO </langFamily></language>
  <language><langName> IRISH </langName><iso639code> GA </iso639code><langFamily> CELTIC </langFamily></language>
  <language><langName> ITALIAN </langName><iso639code> IT </iso639code><langFamily> ROMANCE </langFamily></language>
  <language><langName> JAPANESE </langName><iso639code> JA </iso639code><langFamily> ASIAN </langFamily></language>
  <language><langName> JAVANESE </langName><iso639code> JV </iso639code><langFamily> OCEANIC/INDONESIAN </langFamily></language>
  <language><langName> KANNADA </langName><iso639code> KN </iso639code><langFamily> DRAVIDIAN </langFamily></language>
  <language><langName> KASHMIRI </langName><iso639code> KS </iso639code><langFamily> INDIAN </langFamily></language>
  <language><langName> KAZAKH </langName><iso639code> KK </iso639code><langFamily> TURKIC/ALTAIC </langFamily></language>
  <language><langName> KINYARWANDA </langName><iso639code> RW </iso639code><langFamily> NEGRO-AFRICAN </langFamily></language>
  <language><langName> KIRGHIZ </langName><iso639code> KY </iso639code><langFamily> TURKIC/ALTAIC </langFamily></language>
  <language><langName> KURUNDI </langName><iso639code> RN </iso639code><langFamily> NEGRO-AFRICAN </langFamily></language>
  <language><langName> KOREAN </langName><iso639code> KO </iso639code><langFamily> ASIAN </langFamily></language>
  <language><langName> KURDISH </langName><iso639code> KU </iso639code><langFamily> IRANIAN </langFamily></language>
  <language><langName> LAOTHIAN </langName><iso639code> LO </iso639code><langFamily> ASIAN </langFamily></language>
  <language><langName> LATIN </langName><iso639code> LA </iso639code><langFamily> LATIN/GREEK </langFamily></language>
  <language><langName> LATVIAN;LETTISH </langName><iso639code> LV </iso639code><langFamily> BALTIC </langFamily></language>
  <language><langName> LINGALA </langName><iso639code> LN </iso639code><langFamily> NEGRO-AFRICAN </langFamily></language>
  <language><langName> LITHUANIAN </langName><iso639code> LT </iso639code><langFamily> BALTIC </langFamily></language>
  <language><langName> MACEDONIAN </langName><iso639code> MK </iso639code><langFamily> SLAVIC </langFamily></language>
  <language><langName> MALAGASY </langName><iso639code> MG </iso639code><langFamily> OCEANIC/INDONESIAN </langFamily></language>
  <language><langName> MALAY </langName><iso639code> MS </iso639code><langFamily> OCEANIC/INDONESIAN </langFamily></language>
  <language><langName> MALAYALAM </langName><iso639code> ML </iso639code><langFamily> DRAVIDIAN </langFamily></language>
  <language><langName> MALTESE </langName><iso639code> MT </iso639code><langFamily> SEMITIC </langFamily></language>
  <language><langName> MAORI </langName><iso639code> MI </iso639code><langFamily> OCEANIC/INDONESIAN </langFamily></language>
  <language><langName> MARATHI </langName><iso639code> MR </iso639code><langFamily> INDIAN </langFamily></language>
  <language><langName> MOLDAVIAN </langName><iso639code> MO </iso639code><langFamily> ROMANCE </langFamily></language>
  <language><langName> MONGOLIAN </langName><iso639code> MN </iso639code><langFamily> [not given] </langFamily></language>
  <language><langName> NAURU </langName><iso639code> NA </iso639code><langFamily> [not given] </langFamily></language>
  <language><langName> NEPALI </langName><iso639code> NE </iso639code><langFamily> INDIAN </langFamily></language>
  <language><langName> NORWEGIAN </langName><iso639code> NO </iso639code><langFamily> GERMANIC </langFamily></language>
  <language><langName> OCCITAN </langName><iso639code> OC </iso639code><langFamily> ROMANCE </langFamily></language>
  <language><langName> ORIYA </langName><iso639code> OR </iso639code><langFamily> INDIAN </langFamily></language>
  <language><langName> PASHTO;PUSHTO </langName><iso639code> PS </iso639code><langFamily> IRANIAN </langFamily></language>
  <language><langName> PERSIAN (farsi) </langName><iso639code> FA </iso639code><langFamily> IRANIAN </langFamily></language>
  <language><langName> POLISH </langName><iso639code> PL </iso639code><langFamily> SLAVIC </langFamily></language>
  <language><langName> PORTUGUESE </langName><iso639code> PT </iso639code><langFamily> ROMANCE </langFamily></language>
  <language><langName> PUNJABI </langName><iso639code> PA </iso639code><langFamily> INDIAN </langFamily></language>
  <language><langName> QUECHUA </langName><iso639code> QU </iso639code><langFamily> AMERINDIAN </langFamily></language>
  <language><langName> RHAETO-ROMANCE </langName><iso639code> RM </iso639code><langFamily> ROMANCE </langFamily></language>
  <language><langName> ROMANIAN </langName><iso639code> RO </iso639code><langFamily> ROMANCE </langFamily></language>
  <language><langName> RUSSIAN </langName><iso639code> RU </iso639code><langFamily> SLAVIC </langFamily></language>
  <language><langName> SAMOAN </langName><iso639code> SM </iso639code><langFamily> OCEANIC/INDONESIAN </langFamily></language>
  <language><langName> SANGHO </langName><iso639code> SG </iso639code><langFamily> NEGRO-AFRICAN </langFamily></language>
  <language><langName> SANSKRIT </langName><iso639code> SA </iso639code><langFamily> INDIAN </langFamily></language>
  <language><langName> SCOTS GAELIC </langName><iso639code> GD </iso639code><langFamily> CELTIC </langFamily></language>
  <language><langName> SERBIAN </langName><iso639code> SR </iso639code><langFamily> SLAVIC </langFamily></language>
  <language><langName> SERBO-CROATIAN </langName><iso639code> SH </iso639code><langFamily> SLAVIC </langFamily></language>
  <language><langName> SESOTHO </langName><iso639code> ST </iso639code><langFamily> NEGRO-AFRICAN </langFamily></language>
  <language><langName> SETSWANA </langName><iso639code> TN </iso639code><langFamily> NEGRO-AFRICAN </langFamily></language>
  <language><langName> SHONA </langName><iso639code> SN </iso639code><langFamily> NEGRO-AFRICAN </langFamily></language>
  <language><langName> SINDHI </langName><iso639code> SD </iso639code><langFamily> INDIAN </langFamily></language>
  <language><langName> SINGHALESE </langName><iso639code> SI </iso639code><langFamily> INDIAN </langFamily></language>
  <language><langName> SISWATI </langName><iso639code> SS </iso639code><langFamily> NEGRO-AFRICAN </langFamily></language>
  <language><langName> SLOVAK </langName><iso639code> SK </iso639code><langFamily> SLAVIC </langFamily></language>
  <language><langName> SLOVENIAN </langName><iso639code> SL </iso639code><langFamily> SLAVIC </langFamily></language>
  <language><langName> SOMALI </langName><iso639code> SO </iso639code><langFamily> HAMITIC </langFamily></language>
  <language><langName> SPANISH </langName><iso639code> ES </iso639code><langFamily> ROMANCE </langFamily></language>
  <language><langName> SUNDANESE </langName><iso639code> SU </iso639code><langFamily> OCEANIC/INDONESIAN </langFamily></language>
  <language><langName> SWAHILI </langName><iso639code> SW </iso639code><langFamily> NEGRO-AFRICAN </langFamily></language>
  <language><langName> SWEDISH </langName><iso639code> SV </iso639code><langFamily> GERMANIC </langFamily></language>
  <language><langName> TAGALOG </langName><iso639code> TL </iso639code><langFamily> OCEANIC/INDONESIAN </langFamily></language>
  <language><langName> TAJIK </langName><iso639code> TG </iso639code><langFamily> IRANIAN </langFamily></language>
  <language><langName> TAMIL </langName><iso639code> TA </iso639code><langFamily> DRAVIDIAN </langFamily></language>
  <language><langName> TATAR </langName><iso639code> TT </iso639code><langFamily> TURKIC/ALTAIC </langFamily></language>
  <language><langName> TELUGU </langName><iso639code> TE </iso639code><langFamily> DRAVIDIAN </langFamily></language>
  <language><langName> THAI </langName><iso639code> TH </iso639code><langFamily> ASIAN </langFamily></language>
  <language><langName> TIBETAN </langName><iso639code> BO </iso639code><langFamily> ASIAN </langFamily></language>
  <language><langName> TIGRINYA </langName><iso639code> TI </iso639code><langFamily> SEMITIC </langFamily></language>
  <language><langName> TONGA </langName><iso639code> TO </iso639code><langFamily> OCEANIC/INDONESIAN </langFamily></language>
  <language><langName> TSONGA </langName><iso639code> TS </iso639code><langFamily> NEGRO-AFRICAN </langFamily></language>
  <language><langName> TURKISH </langName><iso639code> TR </iso639code><langFamily> TURKIC/ALTAIC </langFamily></language>
  <language><langName> TURKMEN </langName><iso639code> TK </iso639code><langFamily> TURKIC/ALTAIC </langFamily></language>
  <language><langName> TWI </langName><iso639code> TW </iso639code><langFamily> NEGRO-AFRICAN </langFamily></language>
  <language><langName> UIGUR </langName><iso639code> UG </iso639code><langFamily> [       ] </langFamily></language>
  <language><langName> UKRAINIAN </langName><iso639code> UK </iso639code><langFamily> SLAVIC </langFamily></language>
  <language><langName> URDU </langName><iso639code> UR </iso639code><langFamily> INDIAN </langFamily></language>
  <language><langName> UZBEK </langName><iso639code> UZ </iso639code><langFamily> TURKIC/ALTAIC </langFamily></language>
  <language><langName> VIETNAMESE </langName><iso639code> VI </iso639code><langFamily> ASIAN </langFamily></language>
  <language><langName> VOLAPUK </langName><iso639code> VO </iso639code><langFamily> INTERNATIONAL AUX. </langFamily></language>
  <language><langName> WELSH </langName><iso639code> CY </iso639code><langFamily> CELTIC </langFamily></language>
  <language><langName> WOLOF </langName><iso639code> WO </iso639code><langFamily> NEGRO-AFRICAN </langFamily></language>
  <language><langName> XHOSA </langName><iso639code> XH </iso639code><langFamily> NEGRO-AFRICAN </langFamily></language>
  <language><langName> YIDDISH </langName><iso639code> YI </iso639code><langFamily> GERMANIC [*Changed 1989 from original ISO 639:1988, JI] </langFamily></language>
  <language><langName> YORUBA </langName><iso639code> YO </iso639code><langFamily> NEGRO-AFRICAN </langFamily></language>
  <language><langName> ZHUANG </langName><iso639code> ZA </iso639code><langFamily> [       ] </langFamily></language>
  <language><langName> ZULU </langName><iso639code> ZU </iso639code><langFamily> NEGRO-AFRICAN </langFamily></language>
  </languages>
  
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>