internal override void ParseXml(XmlElement xml)
{
base.ParseXml(xml);
if (xml.HasAttribute("Identification"))
Identification = xml.Attributes["Identification"].Value;
if (xml.HasAttribute("Name"))
Name = xml.Attributes["Name"].Value;
if (xml.HasAttribute("Description"))
Description = xml.Attributes["Description"].Value;
foreach (XmlNode child in xml.ChildNodes)
{
string name = child.Name;
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;
}
}
}