Esempio n. 1
0
		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);
		}