Example #1
0
			/// <summary>
			/// Report trace information as XML
			/// </summary>
			/// <param name="writer"></param>
			public void ToXml(XmlWriter writer)
			{
				writer.WriteStartElement("WordGrammarAttempt");
				writer.WriteAttributeString("success", m_fSuccess ? "true" : "false");
				writer.WriteStartElement("Id");
				writer.WriteValue(m_id);
				writer.WriteEndElement();

				string type = "pfx"; // try to guess morph type based on word type
				foreach (PcPatrMorph morph in m_morphs)
				{
					writer.WriteStartElement("morph");
					string sWordType = morph.wordType;
					writer.WriteAttributeString("wordType", sWordType);
					if (type == "pfx" && sWordType == "root")
						type = "root";
					else if (type == "root" && sWordType != "root")
						type = "sfx";
					writer.WriteAttributeString("type", type);
					writer.WriteAttributeString("alloid", morph.formId);
					writer.WriteAttributeString("morphname", morph.msaId);

					writer.WriteMorphInfoElements(m_cache, morph.formId, morph.msaId, morph.wordType, morph.featureDescriptors);
					writer.WriteMsaElement(m_cache, morph.formId, morph.msaId, type, morph.wordType);
					writer.WriteInflClassesElement(m_cache, morph.formId);
					writer.WriteEndElement(); // morph
				}
				writer.WriteEndElement();
			}
Example #2
0
		private void BuildXmlOutput(XmlWriter writer, IEnumerable<PcPatrMorph> morphs)
		{
			writer.WriteStartElement("WfiAnalysis");
			writer.WriteStartElement("Morphs");

			foreach (PcPatrMorph morph in morphs)
			{
				writer.WriteStartElement("Morph");

				writer.WriteStartElement("MoForm");
				writer.WriteAttributeString("DbRef", morph.formId);
				writer.WriteAttributeString("Label", morph.form);
				writer.WriteAttributeString("wordType", morph.wordType);
				writer.WriteEndElement();

				writer.WriteStartElement("MSI");
				writer.WriteAttributeString("DbRef", morph.msaId);
				writer.WriteMsaElement(m_cache, morph.formId, morph.msaId, null, morph.wordType);
				writer.WriteEndElement();

				writer.WriteMorphInfoElements(m_cache, morph.formId, morph.msaId, morph.wordType, null);

				writer.WriteEndElement();
			}

			writer.WriteEndElement();
			writer.WriteEndElement();
		}