Commandes XML

Doxygen prend en charge la plupart des commandes XML généralement utilisées dans les commentaires de code C#. Les balises XML sont définies dans l'annexe D de la norme ECMA-334, qui définit le langage C#. Malheureusement, la spécification n'est pas très précise et un certain nombre d'exemples donnés sont de mauvaise qualité.

Voici la liste des balises prises en charge par Doxygen :

Commandes XMLDescription
<c>Identifie le texte en ligne qui doit être rendu sous forme de morceau de code. Similaire à l'utilisation de <tt>text</tt>.
<code>Définissez une ou plusieurs lignes de code source ou de sortie du programme. Notez que cette commande se comporte comme \code... \endcode pour le code C#, mais elle se comporte comme le HTML équivalent <CODE>...</CODE>pour d'autres langages.
<description>Partie d'une commande <list>décrivant un élément.
<example>Marque un bloc de texte comme exemple, ignoré par Doxygen.
<exception cref="member">Identifie l'exception qu'une méthode peut lancer.
<include>Peut être utilisé pour importer un morceau de XML à partir d'un fichier externe. Ignoré par Doxygen pour le moment.
<inheritdoc">Peut être utilisé pour insérer la documentation d'un membre d'une classe de base dans la documentation d'un membre d'une classe dérivée qui la réimplémente.
<item>Élément de liste. Ne peut être utilisé que dans un contexte <list>.
<list type = "type">Démarre une liste, les types pris en charge sont les bullet, les number et les table. Une liste se compose d'un certain nombre d' <item>. Une liste de type tableau est un tableau à deux colonnes qui peut avoir un en-tête.
<listheader>Démarre l'en-tête d'une liste de type "table".
<para>Identifie un paragraphe de texte.
<param name="paramName">Marque un morceau de texte comme documentation du paramètre "paramName". Similaire à l'utilisation de \param.
<permission>Identifie l'accessibilité de la sécurité d'un membre. Ignoré par Doxygen.
<remarks>Identifie la description détaillée.
<returns>Marque un morceau de texte comme valeur de retour d'une fonction ou d'une méthode. Similaire à l'utilisation de\return.
<see cref="member">Fait référence à un membre. Similaire à\ref.
<seealso cref="member">démarre une section "Voir aussi" se référant à "Member". Similaire à l'utilisation du membre \sa.
<summary>Cette balise est utilisée en dehors d'une balise <DETAILS>, elle identifie la brève description. Similaire à l'utilisation de \brief. Dans le cas où cette balise est utilisée à l'intérieur d'une balise <DETAILS>, cette balise identifie l'en-tête de la balise <DETAILS> .
<term>Partie d'une commande <list>.
<typeparam name="paramName">Marque un morceau de texte comme documentation du paramètre de type "paramName". Similaire à l'utilisation de \param.
<typeparamref name="paramName">Fait référence à un paramètre portant le nom « paramName ». Semblable à l'utilisation de <\a>.
<value>Identifie une propriété, ignoré par Doxygen.
<![CDATA[...]]>Le texte à l'intérieur de cette balise (sur le ...) est géré comme un commentaire normal de Doxygen à l'exception des caractères spéciaux XML <,> et et qui sont utilisés comme s'ils étaient échappés.


Voici un exemple de code typique utilisant certaines des commandes ci-dessus :

/// <summary>
/// Un moteur de recherche.
/// </summary>
class Engine
{
    /// <summary>
    /// La méthode Search prend une série de paramètres pour spécifier le critère de recherche
    /// et renvoie un jeu de données contenant l'ensemble des résultats.
    /// </summary>
    /// <param name="connectionString">la chaîne de connexion à la
    /// base de données contenant le contenu à rechercher</param>
    /// <param name="maxRows">le nombre maximum de lignes à
    /// retourner dans le jeu de résultats</param>
    /// <param name="searchString">le texte que nous recherchons</param>
    /// <returns>Une instance DataSet contenant les lignes correspondantes. Il contient un nombre maximal
    /// de lignes spécifié par le paramètre maxRows</returns>
    public DataSet Search(string connectionString, int maxRows, int searchString)
    {
        DataSet ds = new DataSet() ;
        return ds ;
    }
}