void LoadCharDefTable(XmlElement charDefTableNode) { string id = charDefTableNode.GetAttribute("id"); string name = charDefTableNode.SelectSingleNode("Name").InnerText; CharacterDefinitionTable charDefTable = null; #if IPA_CHAR_DEF_TABLE if (id == "ipa") charDefTable = new IPACharacterDefinitionTable(id, name, m_curMorpher); else charDefTable = new CharacterDefinitionTable(id, name, m_curMorpher); #else charDefTable = new CharacterDefinitionTable(id, name, m_curMorpher); #endif charDefTable.Encoding = charDefTableNode.SelectSingleNode("Encoding").InnerText; XmlNodeList segDefList = charDefTableNode.SelectNodes("SegmentDefinitions/SegmentDefinition[@isActive='yes']"); foreach (XmlNode segDefNode in segDefList) { XmlElement segDefElem = segDefNode as XmlElement; XmlElement repElem = segDefElem.SelectSingleNode("Representation") as XmlElement; string strRep = repElem.InnerText; charDefTable.AddSegmentDefinition(strRep, LoadFeatValues(segDefElem)); m_repIds[repElem.GetAttribute("id")] = strRep; } XmlNodeList bdryDefList = charDefTableNode.SelectNodes("BoundaryDefinitions/BoundarySymbol"); foreach (XmlNode bdryDefNode in bdryDefList) { XmlElement bdryDefElem = bdryDefNode as XmlElement; string strRep = bdryDefElem.InnerText; charDefTable.AddBoundaryDefinition(strRep); m_repIds[bdryDefElem.GetAttribute("id")] = strRep; } m_curMorpher.AddCharacterDefinitionTable(charDefTable); }