public virtual void ReadFrom(XElement xE)
 {
     Key   = null;
     Value = null;
     foreach (var xItem in xE.Elements())
     {
         var localName = xItem.Name.LocalName;
         if (localName == "key")
         {
             Key = AttributeTypeExtensions.Parse(xItem.Value);
         }
         else if (localName == "value")
         {
             Value = InstanceCreator.CreateAttribute(xItem);
             Value.ReadFrom(xItem);
         }
     }
 }