private XElement GetDescriptionTableCell(SDTreeNode treeNode)
        {
            ElementDefinition definition = treeNode.Element;

            List <object> lines = new List <object>();

            if (!treeNode.IsRemoved())
            {
                String shortDefExtension = null;
                if (treeNode.ExtensionDefinition != null)
                {
                    if (treeNode.ExtensionDefinition.GetRootPathElement() != null)
                    {
                        if (treeNode.ExtensionDefinition.GetRootPathElement().@short != null)
                        {
                            shortDefExtension = treeNode.ExtensionDefinition.GetRootPathElement()[email protected];
                        }
                    }
                }

                // short definition
                string shortDefinition = treeNode.GetShortDescription();

                if (string.IsNullOrWhiteSpace(shortDefinition) || shortDefinition == "Additional Content defined by implementations")
                {
                    shortDefinition = shortDefExtension;
                }

                if (!string.IsNullOrWhiteSpace(shortDefinition))
                {
                    lines.Add(Html.P(shortDefinition));
                }

                // extension details
                string extensionCanonicalUrl = definition.GetExtensionCanonicalUrl();

                if (!string.IsNullOrEmpty(extensionCanonicalUrl))
                {
                    Link link = _resourceFileSet.GetStructureDefinitionLink(extensionCanonicalUrl);
                    lines.Add(Html.P(GetLabelAndValue("Extension", Html.A(link))));
                }

                // fixed value
                if (definition.HasFixedValue())
                {
                    lines.Add(Html.P(GetLabelAndValue("Fixed value", definition.GetFixedValue())));
                }

                // valueset/bindings
                string valueSetUri = treeNode.GetValueSetUri();

                if (!string.IsNullOrWhiteSpace(valueSetUri))
                {
                    Link valuesetLink = _resourceFileSet.GetValueSetLink(valueSetUri);

                    lines.Add(Html.P(GetLabelAndValue("Valueset", new object[]
                    {
                        Html.A(valuesetLink.Url, valuesetLink.Display),
                        " (",
                        Html.A((treeNode.GetValueSetBindingStrength().GetUrl()), treeNode.GetValueSetBindingStrength().GetDescription()),
                        ")"
                    })));
                }

                // invariants
                string[] invariants = definition.GetInvariantText();

                if (invariants.Length > 0)
                {
                    lines.Add(Html.P(invariants.Select(t => Html.I(t)).Intersperse(Html.Br()).ToArray()));
                }
            }

            return(Html.Td(lines.ToArray()));
        }