//private static void WriteNamespaceLink(this MamlWriter writer, Context context, string namespaceUri) //{ // var topic = context.TopicManager.GetNamespaceTopic(namespaceUri); // if (topic == null) // writer.WriteString(namespaceUri ?? "Empty"); // else // writer.WriteLink(topic.Id, topic.LinkTitle); // //writer.WriteHtmlTopicLink(topic); //} private static void WriteSchemaLink(this MamlWriter writer, Context context, XmlSchemaObject obj) { var topic = context.TopicManager.GetTopic(obj.GetSchema()); if (topic == null) { writer.WriteString(obj.GetSchemaName()); } else { writer.WriteLink(topic.Id, topic.LinkTitle); } //writer.WriteHtmlTopicLink(topic); }
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)); }
private string GetTopicLinkUri(TopicType type, string objNamespace, XmlSchemaObject obj) { if (type == TopicType.Namespace) { return(objNamespace ?? String.Empty); } var isGlobal = obj.Parent is XmlSchema; var parent = _topicUriStack.Peek(); switch (type) { case TopicType.Schema: return(parent + "#" + obj.GetSchemaName()); case TopicType.Element: return(isGlobal ? parent + "#E/" + ((XmlSchemaElement)obj).QualifiedName.Name : parent + "/" + ((XmlSchemaElement)obj).QualifiedName.Name); case TopicType.Attribute: return(isGlobal ? parent + "#A/" + ((XmlSchemaAttribute)obj).QualifiedName.Name : parent + "/@" + ((XmlSchemaAttribute)obj).QualifiedName.Name); case TopicType.AttributeGroup: return(parent + "#AG/" + ((XmlSchemaAttributeGroup)obj).QualifiedName.Name); case TopicType.Group: return(parent + "#G/" + ((XmlSchemaGroup)obj).QualifiedName.Name); case TopicType.SimpleType: case TopicType.ComplexType: return(parent + "#T/" + ((XmlSchemaType)obj).QualifiedName.Name); default: throw ExceptionBuilder.UnhandledCaseLabel(type); } }