bool ProcessElementAttribute (PropertyInfo propertyInfo, XmlElementAttribute attribute)
 {
     if (attribute != null) {
         var name = string.IsNullOrEmpty (attribute.Name) ? propertyInfo.Name : attribute.Name;
         var id = PropertyName.CreateForElement (name, attribute.Prefix);
         var property = new ValuePropertyVisitor (attribute.OmitIfNull, propertyInfo);
         ProcessNestedAttributes (id, property);
         properties[id] = property;
         return true;
     } else {
         return false;
     }
 }