private static string GetTopicLinkIdUri(TopicType type, XmlSchemaObject obj)
        {
            if (type == TopicType.Namespace ||
                type == TopicType.Schema)
            {
                return null;
            }

            var annotated = (XmlSchemaAnnotated)obj;
            if (string.IsNullOrEmpty(annotated.Id))
                return null;

            var targetNamespace = obj.GetSchema().TargetNamespace;
            var schemaName = obj.GetSchemaName();
            return string.Format("{0}#{1}#{2}", targetNamespace, schemaName, annotated.Id);
        }
        public static void WriteLinksForObject(this MamlWriter writer, XmlSchemaObject obj, Context context)
        {
            var root = obj.GetRoot();
            if (root != null && root != obj)
            {
                var rootItemTopic = context.TopicManager.GetTopic(root);
                if (rootItemTopic != null)
                    writer.WriteTopicLinkWithReferenceMarker(rootItemTopic);
            }

            var targetNamespace = obj.GetSchema().TargetNamespace;
            var targetNamespaceTopic = context.TopicManager.GetNamespaceTopic(targetNamespace);
            if (targetNamespaceTopic != null)
                writer.WriteTopicLinkWithReferenceMarker(targetNamespaceTopic);

            var info = context.DocumentationManager.GetObjectDocumentationInfo(obj);
            if (info != null && info.RelatedTopicsNode != null)
                writer.WriteRawContent(info.RelatedTopicsNode);
        }
        public static void WriteNamespaceAndSchemaInfo(this MamlWriter writer, Context context, XmlSchemaObject obj)
        {
            var targetNamespace = obj.GetSchema().TargetNamespace;

            writer.WriteNamespaceInfo(context, targetNamespace);

            writer.StartParagraph();
            writer.StartBold();
            writer.WriteString("Schema:");
            writer.EndBold();
            writer.WriteNonBlockingSpace();
            writer.WriteSchemaLink(context, obj);
            writer.EndParagraph();
        }
 public static void WriteSchemaLink(this MamlWriter writer, Context context, XmlSchemaObject obj)
 {
     var topic = context.TopicManager.GetTopic(obj.GetSchema());
     if (topic == null)
         writer.WriteString("Empty");
     else
         writer.WriteTopicLink(topic);
 }
        private void FillXsltArgumentList(XsltArgumentList argumentList, string prefix, XmlSchemaObject obj)
        {
            var topic = (obj == null) ? null : Context.TopicManager.GetTopic(obj);
            var itemType = (obj == null) ? string.Empty : obj.GetType().Name.Substring(9).ToLower();
            var itemNamespace = (obj == null) ? string.Empty : obj.GetSchema().TargetNamespace ?? string.Empty;
            var itemUri = (topic == null) ? string.Empty : topic.LinkUri;

            argumentList.AddParam(prefix + "ItemType", string.Empty, itemType);
            argumentList.AddParam(prefix + "ItemNamespace", string.Empty, itemNamespace);
            argumentList.AddParam(prefix + "ItemUri", string.Empty, itemUri);
        }