Ejemplo n.º 1
0
        static void WriteXmlDocParameter(IXmlDocOutput output, XElement xml)
        {
            foreach (var elem in xml.DescendantNodes())
            {
                if (elem is XText)
                {
                    output.Write(XmlDocRenderer.whitespace.Replace(((XText)elem).Value, " "), TextTokenType.XmlDocSummary);
                }
                else if (elem is XElement)
                {
                    var xelem = (XElement)elem;
                    switch (xelem.Name.ToString().ToUpperInvariant())
                    {
                    case "SEE":
                        var cref = xelem.Attribute("cref");
                        if (cref != null)
                        {
                            output.Write(XmlDocRenderer.GetCref((string)cref), TextTokenType.XmlDocToolTipSeeCref);
                        }
                        var langword = xelem.Attribute("langword");
                        if (langword != null)
                        {
                            output.Write(((string)langword).Trim(), TextTokenType.XmlDocToolTipSeeLangword);
                        }
                        break;

                    case "PARAMREF":
                        var nameAttr = xml.Attribute("name");
                        if (nameAttr != null)
                        {
                            output.Write(((string)nameAttr).Trim(), TextTokenType.XmlDocToolTipParamRefName);
                        }
                        break;

                    case "BR":
                    case "PARA":
                        output.WriteNewLine();
                        break;

                    default:
                        break;
                    }
                }
                else
                {
                    output.Write(elem.ToString(), TextTokenType.XmlDocSummary);
                }
            }
        }