Комментарии к XML-документации (Руководство по программированию на C#)XML Documentation Comments (C# Programming Guide). Xml комментарии


XML документация в C# / Хабр

Приветствую, хабра-дотнетчики! Сегодня речь пойдет об одной интересной и полезной возможности языка С#, которая поможет нам в документировании кода. Она называется «XML документация» или «Документирующие комментарии XML». Это такие специальные теги XML, которые содержаться в комментариях и описывают свойства или методы в конкретном файле. Так вот, есть по крайней мере три веских причины, почему всегда следует заполнять XML комментарии.

Во-первых, такой подход позволяет стандартизировать комментарии в вашем проекте и, впринцепе, во всех проектах на C#, а стандарты в нашем деле это почти всегда хорошо. Во-вторых, IntelliSense будет автоматически отображать информацию о документированых методах и параметрах, также как и для методов, встроенных во фреймворк. Это очень сильно облегчит работу и сэкономит время и вам и другим разработчикам, работающим с вами. И в-третьих, на этапе компиляции можно сгенерировать XML файл, который будет содержать все комментарии в удобном формате, а с этим файлом уже можно сделать все что угодно.

А теперь мы рассмотрим теги, рекомендованные для использования. Для того, чтобы начать их вводить, нужно сначала поставить "///".

Тег Используется для
<c> одна строка исходного кода
<code> много строк исходного кода
<example> пример использования, можно использовать совместно с тегом <code>
<exception> позволяет указать, какие исключения наш метод может выдавать
<include> позволяет поставить ссылку на файл, в котором содержаться комментарии, используя XPath
<list> обычный список
<para> а это обычный параграф
<param> описания параметра метода, каждый параметр описывается отдельно
<paramref>
позволяет указать, что слово внутри тега является параметром
<permission> позволяет описать права доступа к методу
<remarks> дополнительная информация, помимо тега <summary>
<returns> описание того, что метод возвращает
<see> позволяет указывать ссылки
<seealso> текст в секции «Смотри также»
<summary> общее описание
<value> позволяет описывать свойства

Пример:

/// <summary>/// Этот метод передаёт привет ХабраХабру столько раз, сколько скажите./// </summary>/// <param name="repeat">Сколько раз передать привет</param>/// <returns>Сама строка с приветами</returns>public string HelloHabr(int repeat) {      string result = "";      for (int i = 0; i < repeat; i++)      {          result += "Hello, HabraHabr!\n";      }      return result; }

А вот так наш метод будет показан в IntelliSense:

Подробно про все можно почитать как всегда на MSDN.

Ну вот, для начала наверно все. Начинайте пока правильно документировать свой код, а я подготовлю еще пару статей на эту тему, если эта окажется актуальной.

habr.com

Комментарии к XML-документации (Руководство по программированию на C#)

  • 06/10/2015
  • Время чтения: 2 мин

В этой статье

В Visual C# можно создавать документацию для кода путем включения XML-элементов в специальные поля комментариев (начинающиеся с трех символов косой черты) в исходном коде непосредственно перед блоком кода, к которому относятся комментарии. Например:

/// <summary> /// This class performs an important function. /// </summary> public class MyClass{}

При выполнении компиляции с параметром /doc компилятор осуществляет поиск всех тегов XML в исходном коде и создает XML-файл документации. Для получения окончательной документации на основе созданного компилятором файла можно создать пользовательский инструмент или использовать инструмент Sandcastle.

Для ссылки на XML-элементы (например, если функция обрабатывает определенные XML-элементы, которые требуется включить в комментарии XML-документации) можно использовать стандартный механизм заключения в скобки (&lt; и &gt;). Для ссылки на универсальные идентификаторы в элементах ссылок кода (cref) можно использовать escape-символы (например, cref="List&lt;T>") или фигурные скобки (cref="List{T}"). В особом случае компилятор анализирует фигурные скобки, как угловые, чтобы при ссылке на универсальные идентификаторы сделать комментарий документации менее громоздким.

Примечание

Комментарии XML-документации не являются метаданными. Они не включаются в скомпилированную сборку, и поэтому не доступны посредством отражения.

Содержание

Связанные разделы

Дополнительные сведения см. в следующем разделе:

Спецификация языка C#

Дополнительные сведения см. в Спецификация языка C#. Спецификация языка является предписывающим источником информации о синтаксисе и использовании языка C#.

См. также

Основные понятия

Руководство по программированию на C#

msdn.microsoft.com

Язык XML практика и теория

Данный раздел посвящен работе с XML. В нём будет собран, как теоретический, так и практический материал. Будут рассмотрены основные операции с XML файлами, а так же взаимодействие с LINQ и многое другое.

Создание XML файла

XML (Extensible Markup Language) &#8212; расширяемый язык разметки, применяется для создания баз данных, web страниц, используется для обмена информацией между программами, применяется в таких технологиях, как Ajax, SOAP, а так же является основой языка XAML, с которым Вы можете встретиться при работе с WPF.

Для создания xml файла нам всего лишь необходимо внести

Структура XML файла

Любой XML файл, начинается с объявления декларации.

Декларация

Декларация xml файла включает в себя:

Версию (version) &#8212; номер версии языка XML, 1.0 и 1.1

Если Вы используете xml version 1.0, то строку декларации можно не указывать, если Вы используете версию 1.1, то необходимо обязательно указать данную строку.

Кодировку (encoding) &#8212; указывает кодировку файла

Данной записью Вы не устанавливаете кодировку физическому файлу! А только лишь даёте понять программе, которая будет обрабатывать данный файл, в какой кодировке, содержаться данные внутри файла. При этом Вы должны гарантировать, что кодировка документа и кодировка, указанная в строке декларации совпадают.

Чтобы установить кодировку документу, Вы можете воспользоваться, к примеру, программой Notepad++

Элементы xml файла

Язык XML состоит из элементов.

Элемент &#8212; это строка, которая содержит открывающий и закрывающий теги, а так же данные, помещенные между ними.

codeby.net

xml - Как я могу получить комментарии XML в сгенерированном XSD?

Трудно сказать по вашему вопросу, что вам здесь трудно. Что вы пробовали? О чем вы думали, но еще не пробовали по тем или иным причинам? В чем причина?

Существует множество инструментов для создания грамматики документа (в виде схемы DTD, Relax NG или схемы XSD) из коллекции XML-документов; поиск "индукции грамматики" или "грамматический вывод" и "XML" приведет к появлению некоторых инструментов (при переполнении стека, поиск XML Trang или xml xsd.exe приведет к появлению нескольких ударов), и я считаю, что это не нередко для среды, ориентированной на XML, для включения функций для создания схем из выборок (часто с использованием тех же инструментов с открытым исходным кодом под капотом). Однако характер таких инструментов состоит в том, чтобы попытаться вывести общую грамматику из нескольких образцов, что означает, что маловероятно, чтобы комментарии в любом из входных файлов были интересными или важными, чтобы заслужить включение в схему. Таким образом, вы вряд ли найдете инструмент вывода грамматики с полки с переключателем, чтобы он копировал комментарии во входном файле в аннотации на выходе.

С другой стороны, заголовок вашего вопроса, похоже, звучит так, как будто вы уже знаете, как генерировать XSD-схему из вашего XML-входа, и вы ищете только советы о том, как сделать комментарии в XML доступными для процесса который генерирует схему. В этом случае ответом является использование языка программирования или интерфейса XML-анализатора, который дает вам доступ к комментариям. XSLT или SAX2 - очевидный выбор. (С другой стороны, маловероятно, что любой, кто знает XML достаточно хорошо, чтобы знать, как создавать полезную схему из коллекции экземпляров XML, может быть в чем-то сомневаться в том, как читать комментарии в XML-вводе. Поэтому я думаю, это не так проблема.)

Ваши альтернативы включают:

  • Используйте интерфейс SAX2 (или любой другой API-интерфейс парсера, который предоставляет комментарии), чтобы прочитать экземпляр XML и сгенерировать схему на выбранном вами языке программирования.
  • Напишите генератор схемы в XSLT и используйте <xsl:template match="comment()">... </xsl:template> чтобы обрабатывать комментарии во входном xs:documentation и генерировать элементы xs:documentation в документе схемы XSD, созданных как вывод.
  • Используйте готовый генератор схем (скажем, Trang) для создания документа схемы для ваших данных, а затем запишите таблицу стилей XSLT или SAX, чтобы перечитать документ схемы XSD и ваш XML-вход, извлечь комментарии в XML-ввод, идентифицировать объявления, связанные с комментариями, и снова записать документ схемы с элементами xs:annotation и xs:documentation вставленными в соответствующие точки, содержащими комментарии от XML-ввода.

qaru.site

Комментарии к XML-документации (Руководство по программированию на C#)

  • 07/20/2015
  • Время чтения: 2 мин
  • Соавторы

В этой статье

В Visual C# можно создавать документацию для кода путем включения XML-элементов в специальные поля комментариев (начинающиеся с трех символов косой черты) в исходном коде непосредственно перед блоком кода, к которому относятся комментарии. Например:In Visual C# you can create documentation for your code by including XML elements in special comment fields (indicated by triple slashes) in the source code directly before the code block to which the comments refer, for example:

/// <summary> /// This class performs an important function. /// </summary> public class MyClass {}

При выполнении компиляции с параметром /doc компилятор осуществляет поиск всех тегов XML в исходном коде и создает XML-файл документации.When you compile with the /doc option, the compiler will search for all XML tags in the source code and create an XML documentation file. Для получения окончательной документации на основе созданного компилятором файла можно создать пользовательский инструмент или использовать инструмент Sandcastle.To create the final documentation based on the compiler-generated file, you can create a custom tool or use a tool such as Sandcastle.

Для ссылки на XML-элементы (например, если функция обрабатывает определенные XML-элементы, которые требуется включить в комментарии XML-документации) можно использовать стандартный механизм заключения в скобки (< и >).To refer to XML elements (for example, your function processes specific XML elements that you want to describe in an XML documentation comment), you can use the standard quoting mechanism (< and >). Для ссылки на универсальные идентификаторы в элементах ссылок кода (cref) можно использовать escape-символы (например, cref="List&lt;T&gt;") или фигурные скобки (cref="List{T}").To refer to generic identifiers in code reference (cref) elements, you can use either the escape characters (for example, cref="List&lt;T&gt;") or braces (cref="List{T}"). В особом случае компилятор анализирует фигурные скобки, как угловые, чтобы при ссылке на универсальные идентификаторы сделать комментарий документации менее громоздким.As a special case, the compiler parses the braces as angle brackets to make the documentation comment less cumbersome to author when referring to generic identifiers.

Примечание

Комментарии XML-документации не являются метаданными. Они не включаются в скомпилированную сборку, и поэтому не доступны посредством отражения.The XML documentation comments are not metadata; they are not included in the compiled assembly and therefore they are not accessible through reflection.

В этом разделеIn This Section

Дополнительные сведения:For more information, see:

Спецификация языка C#C# Language Specification

Дополнительные сведения см. в спецификации языка C#.For more information, see the C# Language Specification. Спецификация языка является предписывающим источником информации о синтаксисе и использовании языка C#.The language specification is the definitive source for C# syntax and usage.

См. такжеSee Also

docs.microsoft.com

XML-литерал комментариев (Visual Basic) | Microsoft Docs

  • 07/20/2015
  • Время чтения: 2 мин
  • Соавторы

В этой статье

Объект литерал, представляющий XComment объекта.A literal representing an XComment object.

СинтаксисSyntax

<!-- content -->

ЧастиParts

ТерминTerm ОпределениеDefinition
<!-- Обязательно.Required. Обозначает начало комментария XML.Denotes the start of the XML comment.
content Обязательно.Required. Текст, отображаемый в комментарии XML.Text to appear in the XML comment. Не может содержать последовательность двух дефисов (--) или заканчиваться дефисом рядом закрывающий тег.Cannot contain a series of two hyphens (--) or end with a hyphen adjacent to the closing tag.
--> Обязательно.Required. Обозначает конец комментария XML.Denotes the end of the XML comment.

Возвращаемое значениеReturn Value

Объект XComment.An XComment object.

ПримечанияRemarks

XML-литералы комментариев не содержат содержимого документа. они содержат сведения о документе.XML comment literals do not contain document content; they contain information about the document. Раздел комментария XML заканчивается последовательностью «-->».The XML comment section ends with the sequence "-->". Это подразумевает следующее:This implies the following points:

  • Нельзя использовать внедренное выражение в XML-литерал комментария, поскольку разделители внедренного выражения являются допустимым содержимым комментария XML.You cannot use an embedded expression in an XML comment literal because the embedded expression delimiters are valid XML comment content.

  • Разделы комментария XML не может быть вложенными, поскольку content не может содержать значение «-->».XML comment sections cannot be nested, because content cannot contain the value "-->".

XML-литерал комментария можно присвоить переменной, или его можно включить в литерале XML-элемента.You can assign an XML comment literal to a variable, or you can include it in an XML element literal.

Примечание

XML-литерал может занимать несколько строк без использования символа продолжения строки.An XML literal can span multiple lines without using line continuation characters. Эта функция позволяет скопировать содержимое из XML-документа и вставьте его непосредственно в программу Visual Basic.This feature enables you to copy content from an XML document and paste it directly into a Visual Basic program.

Компилятор Visual Basic преобразует XML-литерал комментария в вызов XComment конструктор.The Visual Basic compiler converts the XML comment literal to a call to the XComment constructor.

ПримерExample

В следующем примере создается XML-комментарий, содержащее текст «Это комментарий».The following example creates an XML comment that contains the text "This is a comment".

Dim com As XComment = <!-- This is a comment -->

См. такжеSee Also

XCommentXML-литерал элементаXML Element LiteralXML-литералыXML LiteralsСоздание XML в Visual BasicCreating XML in Visual Basic

docs.microsoft.com

Основные конструкции XML - элементы XML, теги, атрибуты, процессинговые инструкции, секции CDATA, комментарии

Мы снова продолжаем изучение XML и в данной статье познакомимся с такими конструкциями XML, как процессинговые инструкции, комментарии, атрибуты и другие элементы XML. Эти элементы являются базовыми и позволяют гибко, в четком соответствии со стандартом размечать документы абсолютно любой сложности.

Некоторые моменты, такие как теги XML, мы уже частично рассматривали в предыдущей статье «Разметка XML-документов». Теперь мы еще раз затронем эту тему и разберем ее более подробно. Это сделано специально, чтобы вам было проще представить всю картину конструкций XML.

Элементы XML. Пустые и непустые элементы XML

Как уже говорилось в предыдущей статье, теги в XML не просто размечают текст, как это бывает в HTML, а выделяют отдельные элементы (объекты). В свою очередь элементы иерархически организуют информацию в документе, что в свою очередь и сделало их основными структурными единицами языка XML.

В XML элементы могут быть двух типов – пустые и непустые. Пустые элементы не содержат в себе никаких данных, таких как текст или другие конструкции. В отличие от пустых элементов, непустые могут содержать в себе любые данные, такие как текст или другие элементы и конструкции языка XML. Чтобы понять суть вышесказанного, давайте рассмотрим примеры пустых и непустых элементов XML.

Пустой элемент XML

<myElement name="myName" />

Непустой элемент XML

<myElement атрибуты элемента и т.д. >     Содержимое элемента... </myElement>

Как мы видим с примера выше, главным отличием пустых элементов от непустых является то, что они состоят только из одного тега. Кроме того стоит также заметить, что в XML все имена регистрозависимые. Это означает, что имена myElement, MyElement, MYELEMENT и т.д. различаются между собой, поэтому данный момент стоит сразу запомнить, чтобы избежать ошибок в будущем.Итак, с элементами мы разобрались. Теперь давайте перейдем к следующему моменту, такому как логическая организация XML-документов.

Логическая организация XML-документов. Древовидная структура XML данных

Как вы помните, основной конструкцией языка XML являются элементы, которые могут содержать в себе другие вложенные конструкции и тем самым формировать иерархическую структуру в виде дерева. В этом случае родительский элемент будет корнем, а все остальные дочерние элементы будут ветками и листьями дерева XML.

Чтобы было проще понять суть вышесказанного, давайте рассмотрим следующее изображение с примером.

Как мы видим, организация XML-документа в виде дерева является довольно простой структурой для обработки. При этом выразительная сложность самого дерева достаточно велика. Именно древовидное представление является наиболее оптимальным способом описания объектов в XML.

Атрибуты XML. Правила записи атрибутов в XML

В XML элементы могут содержать также и атрибуты с присвоенными им значениями, которые помещаются в одинарные или двойные кавычки. Атрибут для элемента задается следующим образом:

<myElement attribute="value" ></myElement>

В данном случае использовался атрибут с именем «attribute» и значением «value». Тут стоит сразу заметить, что атрибут XML обязательно должен содержать какое-то значение и не может быть пустым. В противном случае код будет некорректным с точки зрения XML.

Также стоит обратить внимание на использование кавычек. Значение атрибутов может заключаться как в одинарные, так и в двойные кавычки. Кроме того возможно также использование одних кавычек внутри других. Для демонстрации рассмотрим следующие примеры.

<myElement attribute="value" ></myElement> <myElement attribute='value' ></myElement> <myElement attribute='"value"' ></myElement>

Прежде чем приступить к рассмотрению других конструкций XML стоит также заметить, что при создании атрибутов в качестве значений не могут использоваться такие специальные символы, как амперсанд «&» или угловые скобки «<>». Данные символы зарезервированы в качестве управляющих («&» — сущность, а «<» и «>» открывают и закрывают тег элемента) и не могут быть использованы в «чистом виде». Для их использования нужно прибегать к замене спецсимволов.

Инструкции по обработке XML (процессинговые инструкции). XML-декларация

В языке XML есть возможность включения в документе инструкций, которые несут определенную информацию для приложений, которые будут обрабатывать тот или иной документ. Инструкции по обработке в XML создаются следующим образом.

<?Приложение содержимое?>

Как видно с примера выше, в XML инструкции по обработке заключаются в угловые кавычки со знаком вопроса. Это немного напоминает обычный php-блок, который мы рассматривали в первых уроках по PHP. В первой части процессинговой инструкции определяется приложение или система, которой предназначена вторая часть этой инструкции или ее содержимое. При этом инструкции по обработке действительны только для тех приложений, которым они адресованы. Примером процессинговой инструкции может быть следующая инструкция.

Стоит заметить, что в XML есть особая конструкция, которая очень сильно похожа на инструкцию по обработке, но сама она такой не является. Речь идет об XML-декларации, которая передает обрабатывающему программному обеспечению некоторую информацию о свойствах XML-документа, таких как кодировка, версия языка в соответствии с которым написан данный документ и т.д.

<?xml version="1.0" encoding="utf-8"?>

Как видно с примера выше, XML-декларация содержит так называемые псевдоатрибуты, которые очень похожи на обычные атрибуты, о которых мы говорили чуть выше. Дело в том, что по определению XML-декларация и инструкции по обработке не могут содержать атрибутов, поэтому данные объявления назвали псевдоатрибутами. Это стоит запомнить на будущее во избежание разнообразных ошибок.

Поскольку мы разобрались с псевдоатрибутами, то давайте рассмотрим, что же они означают.

  • Encoding – отвечает за кодировку XML документа. Обычно используется кодировка UTF8.
  • Version – версия языка XML, на котором написан данный документ. Обычно это XML версии 1.0.

Ну а теперь перейдем к заключающей части статьи и рассмотрим такие конструкции XML как комментарии и секции CDATA.

Комментарии в XML. Секции CDATA

Комментарии в XML используются для того, чтобы оставить какую-то подсказку разработчику или просто исключить какой-то код из обработки. Процесс создания комментария в XML такой же, как и в обычном HTML.

<!--Текст комментария -->

Здесь сразу стоит обратить ваше внимание на 2 правила:

  1. В тексте комментария не может быть двух символов «-» подряд.
  2. Комментарий не может заканчиваться символом «-».

Это были два главных правила, которых стоит придерживаться при создании комментариев в XML-документе. Ну а теперь давайте рассмотрим последнюю конструкцию XML под названием секция CDATA.

Секции CDATA используются для того, чтобы дать понять обработчику XML документа, что данный участок кода не стоит воспринимать как разметку. Обычно это применяется, например, если нужно отобразить какие-то данные в исходном виде. Сама же конструкция создается следующим образом.

<![CDATA[содержимое]]>

При этом в качестве содержимого могут быть любые символы, включая амперсанд «&» и угловые скобки «<» и «>». Исключением здесь является лишь последовательность символов «]]>», которая не может быть использована в секции CDATA.

Ну и в завершение статьи давайте рассмотрим пример использования секций CDATA.

<![CDATA[<myElement>Содержимое элемента XML</myElement>]]>

В обычных условиях содержимое секции CDATA было бы воспринято как часть разметки. В данном же случае оно будет расцениваться как обычные символьные данные.

На этом я завершаю данную статью. Следующую статью рубрики планирую посвятить такой важной теме, как пространствам имен, поэтому если вы не хотите ее пропустить, рекомендую подписаться на новостную рассылку любым удобным для вас способом в соответствующем пункте меню либо воспользовавшись формой подписки ниже.

На этом все. Удачи вам и успехов в изучении XML.

Обнаружили ошибку? Выделите ее и нажмите Ctrl+Enter

archive.dmitriydenisov.com