예제 #1
0
        private static void WriteImageWithTopicLink(this MamlWriter writer, TopicManager topicManager, ArtItem artItem, XmlSchemaType type)
        {
            var topic = topicManager.GetTopic(type);

            if (topic != null)
            {
                writer.WriteArtItemWithTopicLink(artItem, topic);
            }
            else
            {
                writer.WriteArtItemWithText(artItem, type.QualifiedName.Name);
            }
        }
        private static void WriteFacet(this MamlWriter writer, int level,
                                       SimpleTypeStructureNode node, string facetType)
        {
            var facetValue = ((XmlSchemaFacet)node.Node).Value;

            writer.StartTableRowEntry();
            writer.StartParagraph();
            //writer.WriteHtmlIndent(level);
            writer.WriteArtItemWithText(ArtItem.Facet, facetType, level);
            writer.EndParagraph();
            writer.EndTableRowEntry();

            writer.WriteRowEntry(facetValue);
        }
        private static void WriteName(this MamlWriter writer, ChildEntry entry,
                                      TopicManager topicManager, int index)
        {
            switch (entry.ChildType)
            {
            case ChildType.Element:
            case ChildType.ElementExtension:
                var element     = (XmlSchemaElement)entry.Particle;
                var isExtension = (entry.ChildType == ChildType.ElementExtension);
                writer.WriteElementLink(topicManager, element,
                                        isExtension, index);
                break;

            case ChildType.Any:
                writer.WriteArtItemWithText(ArtItem.AnyElement,
                                            "Any", index);
                break;

            case ChildType.All:
                writer.WriteArtItemWithText(ArtItem.All, "All", index);
                break;

            case ChildType.Choice:
                writer.WriteArtItemWithText(ArtItem.Choice,
                                            "Choice", index);
                break;

            case ChildType.Sequence:
                writer.WriteArtItemWithText(ArtItem.Sequence,
                                            "Sequence", index);
                break;

            default:
                throw ExceptionBuilder.UnhandledCaseLabel(entry.ChildType);
            }
        }
        private static void WriteElementLink(this MamlWriter writer,
                                             TopicManager topicManager, XmlSchemaElement element,
                                             bool isExtension, int index)
        {
            var artItem = element.RefName.IsEmpty && !isExtension
                            ? ArtItem.Element
                            : ArtItem.ElementRef;
            var topic = topicManager.GetTopic(element);

            if (topic != null)
            {
                writer.WriteArtItemWithTopicLink(artItem, topic, index);
            }
            else
            {
                writer.WriteArtItemWithText(artItem,
                                            element.QualifiedName.Name, index);
            }
        }
        private static void WriteAttributeTopicLink(this MamlWriter writer,
                                                    TopicManager topicManager, XmlSchemaAttribute attribute,
                                                    bool isExtension, int indent)
        {
            var artItem = attribute.RefName.IsEmpty && !isExtension
                            ? ArtItem.Attribute
                            : ArtItem.AttributeRef;

            var topic = topicManager.GetTopic(attribute);

            if (topic != null)
            {
                writer.WriteArtItemWithTopicLink(artItem, topic, indent);
            }
            else
            {
                writer.WriteArtItemWithText(artItem,
                                            attribute.QualifiedName.Name, indent);
            }
        }
 protected override void Visit(XmlSchemaSimpleType type)
 {
     if (type.QualifiedName.IsEmpty)
     {
         Traverse(type.Content);
     }
     else
     {
         var topic = _context.TopicManager.GetTopic(type);
         if (topic != null)
         {
             _writer.WriteArtItemWithTopicLink(ArtItem.SimpleType, topic);
         }
         else
         {
             _writer.WriteArtItemWithText(ArtItem.SimpleType, type.QualifiedName.Name);
         }
     }
 }
        public static void WriteAttributeTable(this MamlWriter writer, Context context, AttributeEntries attributeEntries)
        {
            if (attributeEntries.Attributes.Count == 0 && attributeEntries.AnyAttribute == null)
            {
                return;
            }

            writer.StartTable();
            writer.StartTableHeader();
            writer.StartTableRow();

            writer.WriteRowEntry("Name");
            writer.WriteRowEntry("Type");
            writer.WriteRowEntry("Required");
            writer.WriteRowEntry("Description");

            writer.EndTableRow();
            writer.EndTableHeader();

            var sortedAttributes = from a in attributeEntries.Attributes
                                   orderby a.QualifiedName.Name
                                   select a;

            foreach (var attribute in sortedAttributes)
            {
                writer.StartTableRow();

                writer.StartTableRowEntry();
                writer.StartParagraph();
                writer.WriteAttributeTopicLink(context.TopicManager, attribute,
                                               false, 0);
                writer.EndParagraph();
                writer.EndTableRowEntry();

                writer.StartTableRowEntry();
                writer.StartParagraph();
                writer.WriteType(context, attribute.AttributeSchemaType);
                writer.EndParagraph();
                writer.EndTableRowEntry();

                writer.StartTableRowEntry();
                writer.StartParagraph();
                writer.WriteRequiredText(attribute.Use);
                writer.EndParagraph();
                writer.EndTableRowEntry();

                writer.StartTableRowEntry();
                writer.StartParagraph();
                writer.WriteSummaryForObject(context, attribute);
                writer.EndParagraph();
                writer.EndTableRowEntry();

                writer.EndTableRow();
            }

            if (attributeEntries.AnyAttribute != null)
            {
                writer.StartTableRow();

                writer.StartTableRowEntry();
                writer.StartParagraph();
                writer.WriteArtItemWithText(ArtItem.AnyAttribute, "Any");
                writer.EndParagraph();
                writer.EndTableRowEntry();

                writer.StartTableRowEntry();
                writer.WriteParagraph(String.Empty);
                writer.EndTableRowEntry();

                writer.StartTableRowEntry();
                writer.WriteParagraph(String.Empty);
                writer.EndTableRowEntry();

                writer.StartTableRowEntry();
                writer.StartParagraph();
                writer.WriteSummaryForObject(context, attributeEntries.AnyAttribute);
                writer.EndParagraph();
                writer.EndTableRowEntry();

                writer.EndTableRow();
            }

            var sortedExtensionAttributes = from a in attributeEntries.ExtensionAttributes
                                            orderby a.QualifiedName.Name
                                            select a;

            foreach (var attribute in sortedExtensionAttributes)
            {
                writer.StartTableRow();

                writer.StartTableRowEntry();
                writer.StartParagraph();
                //writer.WriteHtmlIndent(1);
                writer.WriteAttributeTopicLink(context.TopicManager, attribute,
                                               true, 1);
                writer.EndParagraph();
                writer.EndTableRowEntry();

                writer.StartTableRowEntry();
                writer.StartParagraph();
                writer.WriteType(context, attribute.AttributeSchemaType);
                writer.EndParagraph();
                writer.EndTableRowEntry();

                writer.StartTableRowEntry();
                writer.StartParagraph();
                writer.WriteRequiredText(attribute.Use);
                writer.EndParagraph();
                writer.EndTableRowEntry();

                writer.StartTableRowEntry();
                writer.StartParagraph();
                writer.WriteSummaryForObject(context, attribute);
                writer.EndParagraph();
                writer.EndTableRowEntry();

                writer.EndTableRow();
            }

            writer.EndTable();
        }