protected static void WriteSmeAttribute <T>(string name, T value, ICollection <XmlAttribute> attributes)
     where T : struct
 {
     WriteSmeAttribute(name, !Equals(value, default(T)) ? EnumEx.Format(value) : null, attributes);
 }
 protected static void WriteSmeAttribute <T>(string name, T?value, ICollection <XmlAttribute> attributes)
     where T : struct
 {
     WriteSmeAttribute(name, value != null ? EnumEx.Format(value.Value) : null, attributes);
 }