Example #1
0
        private void Transform(string contentId, string metadataXml, string annotationsXml, string versionId, string docTitle, Content contentDataSet)
        {
            var annotations = new XmlDocument();

            var filename = Path.Combine(_withinChmDir, contentId + ApplicationStrings.FILE_EXTENSION_HTM);

            string xml;
            if (File.Exists(filename))
            {
                using (var sr = new StreamReader(filename))
                {
                    xml = sr.ReadToEnd();
                    sr.Close();
                }
            }
            else  //Probably a node file that simply lists its children -- We will deal with this at a later date
            {
                xml = "<div class=\"topic\" xmlns=\"http://www.w3.org/1999/xhtml\">" + crlf +
                      "  <div class=\"majorTitle\">" + docTitle + "</div>" + crlf +
                      "  <div class=\"title\">" + docTitle + "</div>" + crlf +
                      "  <div id=\"mainSection\">" + crlf +
                      "    <div id=\"mainBody\">" + crlf +
                      "      <p></p>" + crlf +                //RWC: Too difficult to add child link list like MSDN Online. Just leave blank.
                      "    </div>" + crlf +
                      "  </div>" + crlf +
                      "</div>" + crlf;
            }

            var codePage = new CultureInfo(_locale).TextInfo.ANSICodePage;

            // We use these fallbacks because &nbsp; is unknown under DBCS like Japanese
            // and translated to ? by default.
            var encoding = Encoding.GetEncoding(codePage, new EncoderReplacementFallback(" "), new DecoderReplacementFallback(" "));

            var metadata = new XmlDocument();
            metadata.LoadXml(metadataXml);
            annotations.LoadXml(annotationsXml);

            Debug.Assert(contentDataSet != null, "contentDataSet is null !");

            var link = new Link(contentDataSet, _links);
            var arguments = new XsltArgumentList();

            arguments.AddParam("metadata", "", metadata.CreateNavigator());
            arguments.AddParam("annotations", "", annotations.CreateNavigator());
            arguments.AddParam("version", "", versionId);
            arguments.AddParam("locale", "", _locale);
            arguments.AddParam("charset", "", encoding.WebName);

            arguments.AddExtensionObject("urn:Link", link);

            TextReader textReader = new StringReader(xml);
            using (var xmlReader = XmlReader.Create(textReader))
            using (var streamWriter = new StreamWriter(filename, false, encoding))
            {
                try
                {
                    _xform.Transform(xmlReader, arguments, streamWriter);

                }
                catch (Exception ex)
                {
                    Debug.WriteLine(ex.Message);
                    Debugger.Break();
                }
            }
        }
Example #2
0
        public void Transform(string contentId, string metadataXml, string annotationsXml,
            string versionId, string docTitle, Content contentDataSet)
        {
            XsltArgumentList arguments = new XsltArgumentList();
            Link link = new Link(contentDataSet, links);
            XmlDocument metadata = new XmlDocument();
            XmlDocument annotations = new XmlDocument();

            string filename = Path.Combine(withinHxsDir, contentId + ApplicationStrings.FILE_EXTENSION_HTM);

            string xml;
            if (File.Exists(filename))
            {
                StreamReader sr = new StreamReader(filename);
                xml = sr.ReadToEnd();
                sr.Close();
            }
            else  //Default to Simple headers only
            {
                xml = "<div class=\"topic\" xmlns=\"http://www.w3.org/1999/xhtml\">" + Environment.NewLine +
                      "  <div class=\"majorTitle\">" + docTitle + "</div>" + Environment.NewLine +
                      "  <div class=\"title\">" + docTitle + "</div>" + Environment.NewLine +
                      "  <div id=\"mainSection\">" + Environment.NewLine +
                      "    <div id=\"mainBody\">" + Environment.NewLine +
                      "      <p></p>" + Environment.NewLine +                //RWC: Too difficult to add child link list like MSDN Online. Just leave blank.
                      "    </div>" + Environment.NewLine +
                      "  </div>" + Environment.NewLine +
                      "</div>" + Environment.NewLine;
            }

            metadata.LoadXml(metadataXml);
            annotations.LoadXml(annotationsXml);

            // Do transform

            arguments.AddParam("metadata", "", metadata.CreateNavigator());
            arguments.AddParam("annotations", "", annotations.CreateNavigator());
            arguments.AddParam("version", "", versionId);
            arguments.AddParam("locale", "", locale);

            arguments.AddExtensionObject("urn:Link", link);

            TextReader tr = new StringReader(xml);
            XmlReader xr = XmlReader.Create(tr);

            using (StreamWriter sw = new StreamWriter(filename, false, Encoding.UTF8))
            {
                try
                {
                    xform.Transform(xr, arguments, sw);

                }
                catch (Exception ex)
                {
                    Debug.WriteLine(ex.Message);
                    Debugger.Break();
                }
            }
        }
Example #3
0
        public void Transform(string contentId, string assetId, string metadataXml, string annotationsXml,
            string versionId, string docTitle, string tocParent, string tocOrder, Content contentDataSet)
        {
            XsltArgumentList arguments = new XsltArgumentList();
            Link link = new Link(contentDataSet, _links);
            XmlDocument metadata = new XmlDocument();
            XmlDocument annotations = new XmlDocument();

            string filename = Path.Combine(_rawDir, contentId + ApplicationStrings.FILE_EXTENSION_HTM);

            string xml2;
            if (File.Exists(filename))
            {
                StreamReader sr2 = new StreamReader(filename);
                xml2 = sr2.ReadToEnd();
                sr2.Close();
            }
            else  //Probably a node file that simply lists its children -- We will deal with this at a later date
            {
                xml2 = "<div class=\"topic\" xmlns=\"http://www.w3.org/1999/xhtml\">" +
                       "  <div class=\"majorTitle\">" + docTitle + "</div>" +
                       "  <div class=\"title\">" + docTitle + "</div>" +
                       "  <div id=\"mainSection\">" +
                       "    <div id=\"mainBody\">" +
                       "      <p></p>" +                //RWC: Too difficult to add child link list like MSDN Online. Just leave blank.
                       "    </div>" +
                       "  </div>" +
                       "</div>";
            }

            int codePage = new CultureInfo(_locale).TextInfo.ANSICodePage;

            string topicVersion = versionId;
            int idx = versionId.LastIndexOf('.');
            if (idx >= 0)
                topicVersion = versionId.Substring(idx + 1);     //we want the 100 from vs.100

            // We use these fallbacks because &nbsp; is unknown under DBCS like Japanese
            // and translated to ? by default.
            Encoding encoding = Encoding.GetEncoding(codePage,
                new EncoderReplacementFallback(" "),
                new DecoderReplacementFallback(" "));

            metadata.LoadXml(metadataXml);
            annotations.LoadXml(annotationsXml);

            arguments.AddParam("metadata", "", metadata.CreateNavigator());
            arguments.AddParam("annotations", "", annotations.CreateNavigator());
            arguments.AddParam("assetId", "", assetId);
            arguments.AddParam("version", "", versionId);
            arguments.AddParam("tocOrder", "", tocOrder);
            arguments.AddParam("tocParent", "", tocParent);
            arguments.AddParam("locale", "", _locale);
            arguments.AddParam("charset", "", encoding.WebName);
            arguments.AddParam("package", "", _packageName);
            arguments.AddParam("topicVersion", "", topicVersion);

            arguments.AddExtensionObject("urn:Link", link);

            TextReader tr2 = new StringReader(xml2);
            XmlReader xr2 = XmlReader.Create(tr2);

            using (StreamWriter sw2 = new StreamWriter(filename, false, System.Text.Encoding.UTF8))
            {
                try
                {
                    _xform.Transform(xr2, arguments, sw2);

                }
                catch (Exception ex)
                {
                    Debug.WriteLine(ex.Message);
                    Debugger.Break();
                }
            }
        }