diff --git a/tutorials/xml/DOMParsePerson.C b/tutorials/xml/DOMParsePerson.C
index 1bd2ac24d30630b52cef9ec2650c7f76cf780ae7..8beb1589a0cf7da7fde15e9b2dc35412a1855aab 100644
--- a/tutorials/xml/DOMParsePerson.C
+++ b/tutorials/xml/DOMParsePerson.C
@@ -1,17 +1,23 @@
-//////////////////////////////////////////////////////////////////////////////
-//
-// ROOT implementation of a XML DOM Parser
-//
-// This is an example of how Dom Parser works. It will parse the xml file
-// (person.xml) to the Person object.
-// A DTD validation will be run on this example.
-//
-// To run this program
-// .x DOMParsePerson.C+
-//
-// Requires: person.xml and person.dtd
-//
-//////////////////////////////////////////////////////////////////////////////
+/// \file
+/// \ingroup tutorial_xml
+/// ROOT implementation of a XML DOM Parser
+///
+/// This is an example of how Dom Parser works. It will parse the xml file
+/// (person.xml) to the Person object.
+/// A DTD validation will be run on this example.
+///
+/// To run this program
+/// ~~~ {.cpp}
+/// .x DOMParsePerson.C+
+/// ~~~
+///
+/// Requires: person.xml and person.dtd
+///
+/// \macro_output
+/// \macro_code
+///
+/// \author Sergey Linev
+
 
 #include <Riostream.h>
 #include <TDOMParser.h>
diff --git a/tutorials/xml/DOMRecursive.C b/tutorials/xml/DOMRecursive.C
index ee925dcb61e1d97a1352e2d24985a31870df2962..6f6cfbc3744e84c244bf35d501c9918a162e5d8f 100644
--- a/tutorials/xml/DOMRecursive.C
+++ b/tutorials/xml/DOMRecursive.C
@@ -1,16 +1,21 @@
-//////////////////////////////////////////////////////////////////////////////
-//
-// ROOT implementation of a XML DOM Parser
-//
-// This is an example of how Dom Parser walks the DOM tree recursively.
-// This example will parse any xml file.
-//
-// To run this program
-// .x DOMRecursive.C+
-//
-// Requires: person.xml
-//
-//////////////////////////////////////////////////////////////////////////////
+/// \file
+/// \ingroup tutorial_xml
+/// ROOT implementation of a XML DOM Parser
+///
+/// This is an example of how Dom Parser walks the DOM tree recursively.
+/// This example will parse any xml file.
+///
+/// To run this program
+/// ~~~ {.cpp}
+/// .x DOMRecursive.C+
+/// ~~~
+///
+/// Requires: `person.xml`
+///
+/// \macro_output
+/// \macro_code
+///
+/// \author Sergey Linev
 
 #include <Riostream.h>
 #include <TDOMParser.h>
diff --git a/tutorials/xml/SAXHandler.C b/tutorials/xml/SAXHandler.C
index f8ce45390810519bdca0dffdddfd11fae2bd952e..5deee693a58e2dc590f1e7124f6f4de7d1f1c492 100644
--- a/tutorials/xml/SAXHandler.C
+++ b/tutorials/xml/SAXHandler.C
@@ -1,17 +1,23 @@
-//////////////////////////////////////////////////////////////////////////////
-//
-// ROOT implementation of a simple SAX Handler.
-//
-// This handler uses TSAXParser, a SAX Parser using the SAX interface
-// of libxml2. This script will output all elements of the original xml
-// file, if sucessfully parsed.
-//
-// To run this program do:
-// .x SAXHandler.C
-//
-// Requires: saxexample.xml
-//
-//////////////////////////////////////////////////////////////////////////////
+/// \file
+/// \ingroup tutorial_xml
+/// ROOT implementation of a simple SAX Handler.
+///
+/// This handler uses TSAXParser, a SAX Parser using the SAX interface
+/// of libxml2. This script will output all elements of the original xml
+/// file, if successfully parsed.
+///
+/// To run this program do:
+/// ~~~ {.cpp}
+/// .x SAXHandler.C
+/// ~~~
+///
+/// Requires: `saxexample.xml`
+///
+///
+/// \macro_output
+/// \macro_code
+///
+/// \author Sergey Linev
 
 #include <Riostream.h>
 #include <TList.h>
diff --git a/tutorials/xml/index.md b/tutorials/xml/index.md
new file mode 100644
index 0000000000000000000000000000000000000000..a6693c4ce57dbbae352a4ed1daa92795569c40f1
--- /dev/null
+++ b/tutorials/xml/index.md
@@ -0,0 +1,3 @@
+\defgroup tutorial_xml XML tutorials
+\ingroup Tutorials
+\brief XML examples.
diff --git a/tutorials/xml/xmlnewfile.C b/tutorials/xml/xmlnewfile.C
index d21a237b7c56524d4769369fb7dd12f668e9900e..2ae71a82542e3b8897d8e104445925c328eb5be2 100644
--- a/tutorials/xml/xmlnewfile.C
+++ b/tutorials/xml/xmlnewfile.C
@@ -1,5 +1,10 @@
-// Example to create a new xml file with the TXMLEngine class
-//Author: Sergey Linev
+/// \file
+/// \ingroup tutorial_xml
+/// Example to create a new xml file with the TXMLEngine class
+///
+/// \macro_code
+///
+/// \author Sergey Linev
 
 #include "TXMLEngine.h"
 
@@ -32,7 +37,7 @@ void xmlnewfile(const char* filename = "example.xml")
    xml->NewChild(child4, ns4, "subchild2", "subchild2 content");
    xml->NewChild(child4, ns4, "subchild3", "subchild3 content");
 
-   // now create doccumnt and assign main node of document
+   // now create document and assign main node of document
    XMLDocPointer_t xmldoc = xml->NewDoc();
    xml->DocSetRootElement(xmldoc, mainnode);
 
diff --git a/tutorials/xml/xmlreadfile.C b/tutorials/xml/xmlreadfile.C
index 53d167e51798082a32d24ca58875063115abc0dd..ae19b07a8cb2675936e9a4fbc7fde32a314116aa 100644
--- a/tutorials/xml/xmlreadfile.C
+++ b/tutorials/xml/xmlreadfile.C
@@ -1,7 +1,13 @@
-// Example to read and parse any xml file, supported by TXMLEngine class
-// The input file, produced by xmlnewfile.C macro is used
-// If you need full xml syntax support, use TXMLParser instead
-//Author: Sergey Linev
+/// \file
+/// \ingroup tutorial_xml
+/// Example to read and parse any xml file, supported by TXMLEngine class
+/// The input file, produced by xmlnewfile.C macro is used
+/// If you need full xml syntax support, use TXMLParser instead
+///
+/// \macro_output
+/// \macro_code
+///
+/// \author Sergey Linev
 
 #include "TXMLEngine.h"