object GetValue(string str, ValidationContext ctxt)
        {
            string[] tokens = StringTokenizer.Tokenize(str);
            object[] value  = new object[tokens.Length];

            if (tokens.Length == 0)
            {
                return(null);                           // don't allow 0-lenght item
            }
            for (int i = tokens.Length - 1; i >= 0; i--)
            {
                if ((value[i] = itemType.CreateValue(tokens[i], ctxt)) == null)
                {
                    return(null);
                }
            }

            return(value);
        }