private void LoadVsaItems(XmlElement parent){
XmlNodeList vsaItems = parent["VsaItems"].ChildNodes;
string itemType;
IVsaItem item;
string reference = VsaItemType.Reference.ToString();
string appGlobal = VsaItemType.AppGlobal.ToString();
string code = VsaItemType.Code.ToString();
foreach (XmlElement vsaItem in vsaItems){
string name = vsaItem.GetAttribute("Name");
itemType = vsaItem.GetAttribute("ItemType");
if (String.Compare(itemType, reference, StringComparison.OrdinalIgnoreCase) == 0){
item = this.vsaItems.CreateItem(name, VsaItemType.Reference, VsaItemFlag.None);
((IVsaReferenceItem)item).AssemblyName = vsaItem.GetAttribute("AssemblyName");
}else if (String.Compare(itemType, appGlobal, StringComparison.OrdinalIgnoreCase) == 0){
item = this.vsaItems.CreateItem(name, VsaItemType.AppGlobal, VsaItemFlag.None);
((IVsaGlobalItem)item).ExposeMembers = Boolean.Parse(vsaItem.GetAttribute("ExposeMembers"));
((IVsaGlobalItem)item).TypeString = vsaItem.GetAttribute("TypeString");
}else if (String.Compare(itemType, code, StringComparison.OrdinalIgnoreCase) == 0){
item = this.vsaItems.CreateItem(name, VsaItemType.Code, VsaItemFlag.None);
XmlCDataSection sourceText = (XmlCDataSection)vsaItem.FirstChild;
string unescapedText = sourceText.Value.Replace(" >", ">");
((IVsaCodeItem)item).SourceText = unescapedText;
}else
throw new VsaException(VsaError.LoadElementFailed);
XmlNodeList vsaItemOptions = vsaItem["Options"].ChildNodes;
foreach (XmlElement option in vsaItemOptions){
item.SetOption(option.Name, option.GetAttribute("Value"));
}
((VsaItem)item).IsDirty = false;
}
}