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 XML | Description |
|---|---|
| <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 ;
}
}