private bool addDefineRowToTable(XElement t, ValueSet.ValueSetDefineConceptComponent c, int i, bool comment, bool deprecated, Dictionary<ConceptMap, String> maps)
        {
            bool hasExtensions = false;

            XElement tr = new XElement(XmlNs.XHTMLNS + "tr"); t.Add(tr);

            XElement td = new XElement(XmlNs.XHTMLNS + "td"); tr.Add(td);
            var indent = new String('.', i * 2);
            td.Add(new XText(indent + c.Code));
            td.Add(new XElement(XmlNs.XHTMLNS + "a", new XAttribute("name", ProfileKnowledgeProvider.TokenizeName(c.Code)), new XText(" ")));

            td = new XElement(XmlNs.XHTMLNS + "td"); tr.Add(td);
            if (c.Display != null) td.Add(new XText(c.Display));

            td = new XElement(XmlNs.XHTMLNS + "td"); tr.Add(td);
            if (c.Definition != null) smartAddText(td, c.Definition);

            if (deprecated)
            {
                td = new XElement(XmlNs.XHTMLNS + "td"); tr.Add(td);
                var s = c.GetDeprecated();

                if (s != null)
                {
                    smartAddText(td, s);
                    hasExtensions = true;
                }
            }

            if (comment)
            {
                td = new XElement(XmlNs.XHTMLNS + "td"); tr.Add(td);
                var s = c.GetComment();

                if (s != null)
                {
                    smartAddText(td, s);
                    hasExtensions = true;
                }
            }


            //for (ConceptMap m : maps.keySet()) 
            //{
            //    td = tr.addTag("td");
            //    List<ConceptMapElementMapComponent> mappings = findMappingsForCode(c.getCode(), m);
            //    boolean first = true;
            //    for (ConceptMapElementMapComponent mapping : mappings) 
            //    {
            //        if (!first)
            //            td.addTag("br");
            //        first = false;
            //        XhtmlNode span = td.addTag("span");
            //        span.setAttribute("title", mapping.getEquivalence().toString());
            //        span.addText(getCharForEquivalence(mapping));
            //        a = td.addTag("a");
            //        a.setAttribute("href", prefix+maps.get(m)+"#"+mapping.getCode());
            //        a.addText(mapping.getCode());
            //        if (!Utilities.noString(mapping.getComments()))
            //          td.addTag("i").addText("("+mapping.getComments()+")");
            //    }
            //}

            foreach (var e in c.GetSubsumes())
            {
                hasExtensions = true;
                tr = new XElement(XmlNs.XHTMLNS + "tr"); t.Add(tr);
                td = new XElement(XmlNs.XHTMLNS + "td"); tr.Add(td);

                indent = new String('.', i * 2);
                td.Add(new XText(indent));

                var a = new XElement(XmlNs.XHTMLNS + "a");
                a.Add(new XAttribute("href", "#" + ProfileKnowledgeProvider.TokenizeName(e.Value)));
                a.Add(new XText(c.Code));
                td.Add(a);
            }

            foreach (var cc in c.Concept)
            {
                hasExtensions = addDefineRowToTable(t, cc, i + 1, comment, deprecated, maps) || hasExtensions;
            }

            return hasExtensions;
        }