private void AddSelection(Query query, string typePrefix)
        {
            foreach (var attrInfo in AttributesToQuery.Where(attrInfo => attrInfo.Prefix == typePrefix))
            {
                try {
                    var def = Types[attrInfo.Prefix].GetAttributeDefinition(attrInfo.Attr);
                    query.Selection.Add(def);
                } catch (MetaException ex) {
                    Logger.Warn("Wrong attribute: " + attrInfo, ex);
                }
            }

            if (requiredFieldsValidator.GetFields(typePrefix) == null)
            {
                return;
            }

            foreach (var field in requiredFieldsValidator.GetFields(typePrefix))
            {
                try {
                    var def = Types[typePrefix].GetAttributeDefinition(field.Name);
                    query.Selection.Add(def);
                } catch (MetaException ex) {
                    Logger.Warn("Wrong attribute: " + field.Name, ex);
                }
            }
        }