/// ------------------------------------------------------------------------------------ /// <summary> /// Get an XML representation of the given ITsTextProps. /// </summary> /// <param name="ttp">The TTP.</param> /// <param name="wsf">The WSF.</param> /// <returns></returns> /// ------------------------------------------------------------------------------------ public static string GetXmlRep(ITsTextProps ttp, ILgWritingSystemFactory wsf) { using (var writer = new StringWriter()) { var stream = new TextWriterStream(writer); ttp.WriteAsXml(stream, wsf, 0); return writer.ToString(); } }
private void ExportTranslatedItem(TextWriter w, TextWriterStream stream, ICmPossibility item, int listFlid) { if (m_flidsForGuids.ContainsKey(listFlid)) w.WriteLine(String.Format("<{0} guid=\"{1}\">", item.ClassName, item.Guid)); else w.WriteLine(String.Format("<{0}>", item.ClassName)); ExportMultiUnicode(w, item.Name); ExportMultiUnicode(w, item.Abbreviation); ExportMultiString(w, stream, item.Description); switch (item.ClassID) { case CmLocationTags.kClassId: ExportLocationFields(w, item as ICmLocation); break; case CmPersonTags.kClassId: ExportPersonFields(w, item as ICmPerson); break; case CmSemanticDomainTags.kClassId: ExportSemanticDomainFields(w, stream, item as ICmSemanticDomain); break; case LexEntryTypeTags.kClassId: ExportLexEntryTypeFields(w, item as ILexEntryType); break; case LexRefTypeTags.kClassId: ExportLexRefTypeFields(w, item as ILexRefType); break; case PartOfSpeechTags.kClassId: ExportPartOfSpeechFields(w, item as IPartOfSpeech); break; } if (item.SubPossibilitiesOS.Count > 0) { w.WriteLine("<SubPossibilities>"); foreach (var subItem in item.SubPossibilitiesOS) ExportTranslatedItem(w, stream, subItem, listFlid); w.WriteLine("</SubPossibilities>"); } w.WriteLine(String.Format("</{0}>", item.ClassName)); }
private void ExportTranslatedList(TextWriter w, TextWriterStream stream, ICmPossibilityList list) { string owner = list.Owner.ClassName; string field = m_cache.MetaDataCacheAccessor.GetFieldName(list.OwningFlid); string itemClass = m_cache.MetaDataCacheAccessor.GetClassName(list.ItemClsid); w.WriteLine(String.Format("<List owner=\"{0}\" field=\"{1}\" itemClass=\"{2}\">", owner, field, itemClass)); ExportMultiUnicode(w, list.Name); ExportMultiUnicode(w, list.Abbreviation); ExportMultiString(w, stream, list.Description); w.WriteLine("<Possibilities>"); foreach (var item in list.PossibilitiesOS) ExportTranslatedItem(w, stream, item, list.OwningFlid); w.WriteLine("</Possibilities>"); w.WriteLine("</List>"); }
private void ExportSemanticDomainFields(TextWriter w, TextWriterStream stream, ICmSemanticDomain item) { if (item != null && item.QuestionsOS.Count > 0) { w.WriteLine("<Questions>"); foreach (var domainQ in item.QuestionsOS) { w.WriteLine("<CmDomainQ>"); ExportMultiUnicode(w, domainQ.Question); ExportMultiUnicode(w, domainQ.ExampleWords); ExportMultiString(w, stream, domainQ.ExampleSentences); w.WriteLine("</CmDomainQ>"); } w.WriteLine("</Questions>"); } }
private void ExportMultiString(TextWriter w, TextWriterStream stream, IMultiString ms) { ITsString tssEnglish = ms.get_String(m_wsEn); if (tssEnglish.Length == 0) return; string sField = m_cache.MetaDataCacheAccessor.GetFieldName(ms.Flid); w.WriteLine(String.Format("<{0}>", sField)); tssEnglish.WriteAsXml(stream, m_cache.WritingSystemFactory, 0, m_wsEn, false); foreach (int ws in m_mapWsCode.Keys) { ITsString tssValue = ms.get_String(ws); tssValue.WriteAsXml(stream, m_cache.WritingSystemFactory, 0, ws, false); } w.WriteLine(String.Format("</{0}>", sField)); }
/// -------------------------------------------------------------------------------- /// <summary> /// Export the list(s) to the given TextWriter. /// </summary> /// -------------------------------------------------------------------------------- public void ExportTranslatedLists(TextWriter w) { // Writing out TsStrings requires a Stream, not a Writer... var stream = new TextWriterStream(w); w.WriteLine("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); w.WriteLine(String.Format("<Lists date=\"{0}\">", DateTime.Now.ToString())); foreach (var list in m_lists) ExportTranslatedList(w, stream, list); w.WriteLine("</Lists>"); }
/// ------------------------------------------------------------------------------------ /// <summary> /// Initialize the object with some useful information, and write the initial /// element start tag to the output. /// </summary> /// ------------------------------------------------------------------------------------ public void Initialize(FdoCache cache, Mediator mediator, TextWriter w, string sDataType, string sFormat, string sOutPath, string sBodyClass) { m_writer = w; m_strm = new TextWriterStream(w); m_cache = cache; m_mediator = mediator; m_stylesheet = Widgets.FontHeightAdjuster.StyleSheetFromMediator(m_mediator); m_mdc = cache.MetaDataCacheAccessor; m_sFormat = sFormat.ToLowerInvariant(); if (m_sFormat == "xhtml") { m_xhtml = new XhtmlHelper(w, cache); m_xhtml.WriteXhtmlHeading(sOutPath, null, sBodyClass); } else { w.WriteLine("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); w.WriteLine("<{0}>", sDataType); } m_cssType = (sBodyClass == "notebookBody") ? XhtmlHelper.CssType.Notebook : XhtmlHelper.CssType.Dictionary; }
/// <summary> /// Write the closing element end tag to the output. /// </summary> /// <param name="sDataType"></param> public void Finish(string sDataType) { if (m_sFormat == "xhtml") { if (m_schCurrent.Length > 0) m_writer.WriteLine("</div>"); // for letData m_xhtml.WriteXhtmlEnding(); } else { m_writer.WriteLine("</{0}>", sDataType); } m_writer.Close(); m_strm = null; m_writer = null; }