internal XmlElement GetXML(XmlDocument doc,string name, BaseClassIfc host, HashSet<int> processed)
{
string type = KeyWord;
if (string.IsNullOrEmpty(name))
name = type;
if (processed.Contains(mIndex))
{
XmlElement xelement = doc.CreateElement(name);//, mDatabase.mXmlNamespace);
XmlAttribute nil = doc.CreateAttribute("xsi", "nil", mDatabase.mXsiNamespace);
nil.Value = "true";
xelement.SetAttributeNode(nil);
xelement.SetAttribute("href", "i" + mIndex);
return xelement;
}
XmlElement element = doc.CreateElement(name);//, mDatabase.mXmlNamespace);
SetXML(element, host, processed);
element.SetAttribute("id", "i" + mIndex);
if (string.Compare(name, type) != 0)
{
XmlAttribute att = doc.CreateAttribute("xsi","type",mDatabase.mXsiNamespace);
//att.Prefix = "xsi";
//att.LocalName = type;
att.Value = type;
element.SetAttributeNode(att);
}
processed.Add(mIndex);
return element;
}