public static void RegisterItem(string schema, string key)
        {
            Dictionary <string, object> dict;

            if (!ModifiedData.TryGetValue(key, out dict))
            {
                dict = new Dictionary <string, object>();
                dict.TryAddOrUpdateValue(GDMConstants.SchemaKey, schema);
                ModifiedData.TryAddOrUpdateValue(key, dict);

                HashSet <string> keys;
                DataKeysBySchema.TryGetValue(schema, out keys);

                if (keys != null)
                {
                    keys.Add(key);
                }
                else
                {
                    keys = new HashSet <string>();
                    keys.Add(key);
                    DataKeysBySchema.Add(schema, keys);
                }
            }
        }
        static void SaveValue(string key, string field, object val)
        {
            Dictionary <string, object> dict;

            if (!ModifiedData.TryGetValue(key, out dict))
            {
                dict = new Dictionary <string, object>();
            }

            dict.TryAddOrUpdateValue(field, val);
            ModifiedData.TryAddOrUpdateValue(key, dict);
        }