doxygen:xml - chunhualiao/public-docs GitHub Wiki
When Doxygen is configured with GENERATE_XML = YES, it generates a set of XML files representing the parsed codebase. The decision to create a new XML file is based primarily on top-level documented entities and file granularity.
Here's how Doxygen decides when to generate a new XML file:
Each input source file (e.g., .h, .cpp, etc.) that contains documented entities (functions, classes, namespaces, etc.) will result in a corresponding file_*.xml in the xml/ directory.
For example:
file__src_2utils_2Logger_8h.xml
corresponds to src/utils/Logger.h.
Each compound entity — such as a class, struct, union, namespace, or interface — gets its own class_*.xml, struct_*.xml, or namespace_*.xml, etc.
Examples:
classMyNamespace_1_1MyClass.xml
namespaceMyNamespace.xml
These files include:
- Compound-level documentation
- Member definitions (functions, variables, enums, typedefs, etc.)
Doxygen also generates several index files that serve as entry points or summaries:
| File Name | Description |
|---|---|
| index.xml | Main index of all documented items |
| files.xml | List of all source files |
| classes.xml | List of all documented classes |
| namespaces.xml | List of all documented namespaces |
| functions.xml | List of global functions |
| typedefs.xml | List of typedefs |
If you define groups or use @page, @mainpage, etc., Doxygen generates:
group_<groupname>.xmlpage_<pagename>.xml
| Entity Type | Triggers New XML File? | Filename Pattern |
|---|---|---|
| Source File | ✅ Yes | file__...xml |
| Class/Struct | ✅ Yes | class...xml |
| Namespace | ✅ Yes | namespace...xml |
| Global Function | ✅ Yes (indirectly) | Included in functions.xml
|
| Group / Page | ✅ Yes |
group_...xml, page_...xml
|
| Index/Summary | ✅ Yes |
index.xml, classes.xml, etc. |
Would you like help analyzing which XML file contains a specific documented symbol?