void LoadAllomorph(XmlElement alloNode, LexEntry entry, Stratum stratum) { string alloId = alloNode.GetAttribute("id"); string shapeStr = alloNode.SelectSingleNode("PhoneticShape").InnerText; PhoneticShape shape = stratum.CharacterDefinitionTable.ToPhoneticShape(shapeStr, ModeType.SYNTHESIS); if (shape == null) { LoadException le = new LoadException(LoadException.LoadErrorType.INVALID_ENTRY_SHAPE, this, string.Format(HCStrings.kstidInvalidLexEntryShape, shapeStr, entry.ID, stratum.CharacterDefinitionTable.ID)); le.Data["shape"] = shapeStr; le.Data["charDefTable"] = stratum.CharacterDefinitionTable.ID; le.Data["entry"] = entry.ID; throw le; } LexEntry.RootAllomorph allomorph = new LexEntry.RootAllomorph(alloId, shapeStr, m_curMorpher, shape); allomorph.RequiredEnvironments = LoadEnvs(alloNode.SelectSingleNode("RequiredEnvironments")); allomorph.ExcludedEnvironments = LoadEnvs(alloNode.SelectSingleNode("ExcludedEnvironments")); allomorph.Properties = LoadProperties(alloNode.SelectSingleNode("Properties")); entry.AddAllomorph(allomorph); m_curMorpher.AddAllomorph(allomorph); }