internal override void ParseXml(XmlElement xml)
{
base.ParseXml(xml);
if (xml.HasAttribute("Identification"))
Identification = xml.Attributes["Identification"].Value;
if (xml.HasAttribute("FamilyName"))
FamilyName = xml.Attributes["FamilyName"].Value;
if (xml.HasAttribute("GivenName"))
GivenName = xml.Attributes["GivenName"].Value;
foreach (XmlNode child in xml.ChildNodes)
{
string name = child.Name;
if (string.Compare(name, "MiddleNames") == 0)
{
List<string> names = new List<string>(child.ChildNodes.Count);
foreach (XmlNode cn in child.ChildNodes)
names.Add(cn.InnerText);
MiddleNames = names;
}
else if (string.Compare(name, "Roles") == 0)
{
List<IfcActorRole> roles = new List<IfcActorRole>(child.ChildNodes.Count);
foreach (XmlNode cn in child.ChildNodes)
{
IfcActorRole role = mDatabase.ParseXml<IfcActorRole>(cn as XmlElement);
if (role != null)
roles.Add(role);
}
Roles = roles;
}
else if (string.Compare(name, "Addresses") == 0)
{
List<IfcAddress> addresses = new List<IfcAddress>(child.ChildNodes.Count);
foreach (XmlNode cn in child.ChildNodes)
{
IfcAddress address = mDatabase.ParseXml<IfcAddress>(cn as XmlElement);
if (address != null)
addresses.Add(address);
}
Addresses = addresses;
}
}
}