I was basically trying to hook up a SharePoint Field to a document library in my site, I know there are different approaches like using UI, writing code that one can follow to add desired field directly but here is something new I came across, Adding Field as XML..:)
What is this approach all about? This is like creating a Site Column (Field Element) by using feature (I hope I am right)
We can create a field on the fly and provide some attributes like ID, Type, DisplayName, Name, Required....
This is what I did for attaching a Note Type Field to a document library.
using (SPSite site = new SPSite(http://YourSite))
{
using (SPWeb web = site.RootWeb)
{
SPList docList = web.Lists["Documents"];
if (docList != null)
{
XmlDocument doc = new XmlDocument();
XmlElement xmlElement = doc.CreateElement("Field");
xmlElement.SetAttribute("ID", "0F7A6C90-8715-4aa7-90FE-3491DC8953C7"); //ID can be any GUID
xmlElement.SetAttribute("Type", "Note");
xmlElement.SetAttribute("Name", "UserNote");
xmlElement.SetAttribute("DisplayName", "UserNote");
xmlElement.SetAttribute("Required", "FALSE");
docList.Fields.AddFieldAsXml(xmlElement.OuterXml);
docList.Update();
Console.WriteLine("Added Field As XML");
}
}
}