<?xml version='1.0' encoding='utf-8' ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>

  <xsd:element name="doxyfile" type="DoxygenFileType"/>

  <xsd:complexType name="DoxygenFileType">
    <xsd:sequence>
      <xsd:element name="option" type="OptionType" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="version" type="xsd:string" use="required"/>
    <xsd:attribute ref="xml:lang" use="required"/>
  </xsd:complexType>

  <xsd:complexType name="OptionType">
    <xsd:sequence>
      <xsd:element name="value" type="valueType" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="id" type="idType" use="required"/>
    <xsd:attribute name="default" type="defaultType" use="required"/>
    <xsd:attribute name="type" type="typeType" use="required"/>
  </xsd:complexType>

  <xsd:simpleType name="valueType">
    <xsd:restriction base="xsd:string">
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="idType">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="DOXYFILE_ENCODING"/>
      <xsd:enumeration value="PROJECT_NAME"/>
      <xsd:enumeration value="PROJECT_NUMBER"/>
      <xsd:enumeration value="PROJECT_BRIEF"/>
      <xsd:enumeration value="PROJECT_LOGO"/>
      <xsd:enumeration value="PROJECT_ICON"/>
      <xsd:enumeration value="OUTPUT_DIRECTORY"/>
      <xsd:enumeration value="CREATE_SUBDIRS"/>
      <xsd:enumeration value="CREATE_SUBDIRS_LEVEL"/>
      <xsd:enumeration value="ALLOW_UNICODE_NAMES"/>
      <xsd:enumeration value="OUTPUT_LANGUAGE"/>
      <xsd:enumeration value="BRIEF_MEMBER_DESC"/>
      <xsd:enumeration value="REPEAT_BRIEF"/>
      <xsd:enumeration value="ABBREVIATE_BRIEF"/>
      <xsd:enumeration value="ALWAYS_DETAILED_SEC"/>
      <xsd:enumeration value="INLINE_INHERITED_MEMB"/>
      <xsd:enumeration value="FULL_PATH_NAMES"/>
      <xsd:enumeration value="STRIP_FROM_PATH"/>
      <xsd:enumeration value="STRIP_FROM_INC_PATH"/>
      <xsd:enumeration value="SHORT_NAMES"/>
      <xsd:enumeration value="JAVADOC_AUTOBRIEF"/>
      <xsd:enumeration value="JAVADOC_BANNER"/>
      <xsd:enumeration value="QT_AUTOBRIEF"/>
      <xsd:enumeration value="MULTILINE_CPP_IS_BRIEF"/>
      <xsd:enumeration value="PYTHON_DOCSTRING"/>
      <xsd:enumeration value="INHERIT_DOCS"/>
      <xsd:enumeration value="SEPARATE_MEMBER_PAGES"/>
      <xsd:enumeration value="TAB_SIZE"/>
      <xsd:enumeration value="ALIASES"/>
      <xsd:enumeration value="OPTIMIZE_OUTPUT_FOR_C"/>
      <xsd:enumeration value="OPTIMIZE_OUTPUT_JAVA"/>
      <xsd:enumeration value="OPTIMIZE_FOR_FORTRAN"/>
      <xsd:enumeration value="OPTIMIZE_OUTPUT_VHDL"/>
      <xsd:enumeration value="OPTIMIZE_OUTPUT_SLICE"/>
      <xsd:enumeration value="EXTENSION_MAPPING"/>
      <xsd:enumeration value="MARKDOWN_SUPPORT"/>
      <xsd:enumeration value="MARKDOWN_STRICT"/>
      <xsd:enumeration value="TOC_INCLUDE_HEADINGS"/>
      <xsd:enumeration value="MARKDOWN_ID_STYLE"/>
      <xsd:enumeration value="AUTOLINK_SUPPORT"/>
      <xsd:enumeration value="AUTOLINK_IGNORE_WORDS"/>
      <xsd:enumeration value="BUILTIN_STL_SUPPORT"/>
      <xsd:enumeration value="CPP_CLI_SUPPORT"/>
      <xsd:enumeration value="SIP_SUPPORT"/>
      <xsd:enumeration value="IDL_PROPERTY_SUPPORT"/>
      <xsd:enumeration value="DISTRIBUTE_GROUP_DOC"/>
      <xsd:enumeration value="GROUP_NESTED_COMPOUNDS"/>
      <xsd:enumeration value="SUBGROUPING"/>
      <xsd:enumeration value="INLINE_GROUPED_CLASSES"/>
      <xsd:enumeration value="INLINE_SIMPLE_STRUCTS"/>
      <xsd:enumeration value="TYPEDEF_HIDES_STRUCT"/>
      <xsd:enumeration value="LOOKUP_CACHE_SIZE"/>
      <xsd:enumeration value="NUM_PROC_THREADS"/>
      <xsd:enumeration value="TIMESTAMP"/>
      <xsd:enumeration value="EXTRACT_ALL"/>
      <xsd:enumeration value="EXTRACT_PRIVATE"/>
      <xsd:enumeration value="EXTRACT_PRIV_VIRTUAL"/>
      <xsd:enumeration value="EXTRACT_PACKAGE"/>
      <xsd:enumeration value="EXTRACT_STATIC"/>
      <xsd:enumeration value="EXTRACT_LOCAL_CLASSES"/>
      <xsd:enumeration value="EXTRACT_LOCAL_METHODS"/>
      <xsd:enumeration value="EXTRACT_ANON_NSPACES"/>
      <xsd:enumeration value="RESOLVE_UNNAMED_PARAMS"/>
      <xsd:enumeration value="HIDE_UNDOC_MEMBERS"/>
      <xsd:enumeration value="HIDE_UNDOC_CLASSES"/>
      <xsd:enumeration value="HIDE_UNDOC_NAMESPACES"/>
      <xsd:enumeration value="HIDE_FRIEND_COMPOUNDS"/>
      <xsd:enumeration value="HIDE_IN_BODY_DOCS"/>
      <xsd:enumeration value="INTERNAL_DOCS"/>
      <xsd:enumeration value="CASE_SENSE_NAMES"/>
      <xsd:enumeration value="HIDE_SCOPE_NAMES"/>
      <xsd:enumeration value="HIDE_COMPOUND_REFERENCE"/>
      <xsd:enumeration value="SHOW_HEADERFILE"/>
      <xsd:enumeration value="SHOW_INCLUDE_FILES"/>
      <xsd:enumeration value="SHOW_GROUPED_MEMB_INC"/>
      <xsd:enumeration value="FORCE_LOCAL_INCLUDES"/>
      <xsd:enumeration value="INLINE_INFO"/>
      <xsd:enumeration value="SORT_MEMBER_DOCS"/>
      <xsd:enumeration value="SORT_BRIEF_DOCS"/>
      <xsd:enumeration value="SORT_MEMBERS_CTORS_1ST"/>
      <xsd:enumeration value="SORT_GROUP_NAMES"/>
      <xsd:enumeration value="SORT_BY_SCOPE_NAME"/>
      <xsd:enumeration value="STRICT_PROTO_MATCHING"/>
      <xsd:enumeration value="GENERATE_TODOLIST"/>
      <xsd:enumeration value="GENERATE_TESTLIST"/>
      <xsd:enumeration value="GENERATE_BUGLIST"/>
      <xsd:enumeration value="GENERATE_DEPRECATEDLIST"/>
      <xsd:enumeration value="ENABLED_SECTIONS"/>
      <xsd:enumeration value="MAX_INITIALIZER_LINES"/>
      <xsd:enumeration value="SHOW_USED_FILES"/>
      <xsd:enumeration value="SHOW_FILES"/>
      <xsd:enumeration value="SHOW_NAMESPACES"/>
      <xsd:enumeration value="FILE_VERSION_FILTER"/>
      <xsd:enumeration value="LAYOUT_FILE"/>
      <xsd:enumeration value="CITE_BIB_FILES"/>
      <xsd:enumeration value="EXTERNAL_TOOL_PATH"/>
      <xsd:enumeration value="QUIET"/>
      <xsd:enumeration value="WARNINGS"/>
      <xsd:enumeration value="WARN_IF_UNDOCUMENTED"/>
      <xsd:enumeration value="WARN_IF_DOC_ERROR"/>
      <xsd:enumeration value="WARN_IF_INCOMPLETE_DOC"/>
      <xsd:enumeration value="WARN_NO_PARAMDOC"/>
      <xsd:enumeration value="WARN_IF_UNDOC_ENUM_VAL"/>
      <xsd:enumeration value="WARN_LAYOUT_FILE"/>
      <xsd:enumeration value="WARN_AS_ERROR"/>
      <xsd:enumeration value="WARN_FORMAT"/>
      <xsd:enumeration value="WARN_LINE_FORMAT"/>
      <xsd:enumeration value="WARN_LOGFILE"/>
      <xsd:enumeration value="INPUT"/>
      <xsd:enumeration value="INPUT_ENCODING"/>
      <xsd:enumeration value="INPUT_FILE_ENCODING"/>
      <xsd:enumeration value="FILE_PATTERNS"/>
      <xsd:enumeration value="RECURSIVE"/>
      <xsd:enumeration value="EXCLUDE"/>
      <xsd:enumeration value="EXCLUDE_SYMLINKS"/>
      <xsd:enumeration value="EXCLUDE_PATTERNS"/>
      <xsd:enumeration value="EXCLUDE_SYMBOLS"/>
      <xsd:enumeration value="EXAMPLE_PATH"/>
      <xsd:enumeration value="EXAMPLE_PATTERNS"/>
      <xsd:enumeration value="EXAMPLE_RECURSIVE"/>
      <xsd:enumeration value="IMAGE_PATH"/>
      <xsd:enumeration value="INPUT_FILTER"/>
      <xsd:enumeration value="FILTER_PATTERNS"/>
      <xsd:enumeration value="FILTER_SOURCE_FILES"/>
      <xsd:enumeration value="FILTER_SOURCE_PATTERNS"/>
      <xsd:enumeration value="USE_MDFILE_AS_MAINPAGE"/>
      <xsd:enumeration value="IMPLICIT_DIR_DOCS"/>
      <xsd:enumeration value="FORTRAN_COMMENT_AFTER"/>
      <xsd:enumeration value="SOURCE_BROWSER"/>
      <xsd:enumeration value="INLINE_SOURCES"/>
      <xsd:enumeration value="STRIP_CODE_COMMENTS"/>
      <xsd:enumeration value="REFERENCED_BY_RELATION"/>
      <xsd:enumeration value="REFERENCES_RELATION"/>
      <xsd:enumeration value="REFERENCES_LINK_SOURCE"/>
      <xsd:enumeration value="SOURCE_TOOLTIPS"/>
      <xsd:enumeration value="USE_HTAGS"/>
      <xsd:enumeration value="VERBATIM_HEADERS"/>
      <xsd:enumeration value="CLANG_ASSISTED_PARSING"/>
      <xsd:enumeration value="CLANG_ADD_INC_PATHS"/>
      <xsd:enumeration value="CLANG_OPTIONS"/>
      <xsd:enumeration value="CLANG_DATABASE_PATH"/>
      <xsd:enumeration value="ALPHABETICAL_INDEX"/>
      <xsd:enumeration value="IGNORE_PREFIX"/>
      <xsd:enumeration value="GENERATE_HTML"/>
      <xsd:enumeration value="HTML_OUTPUT"/>
      <xsd:enumeration value="HTML_FILE_EXTENSION"/>
      <xsd:enumeration value="HTML_HEADER"/>
      <xsd:enumeration value="HTML_FOOTER"/>
      <xsd:enumeration value="HTML_STYLESHEET"/>
      <xsd:enumeration value="HTML_EXTRA_STYLESHEET"/>
      <xsd:enumeration value="HTML_EXTRA_FILES"/>
      <xsd:enumeration value="HTML_COLORSTYLE"/>
      <xsd:enumeration value="HTML_COLORSTYLE_HUE"/>
      <xsd:enumeration value="HTML_COLORSTYLE_SAT"/>
      <xsd:enumeration value="HTML_COLORSTYLE_GAMMA"/>
      <xsd:enumeration value="HTML_DYNAMIC_MENUS"/>
      <xsd:enumeration value="HTML_DYNAMIC_SECTIONS"/>
      <xsd:enumeration value="HTML_CODE_FOLDING"/>
      <xsd:enumeration value="HTML_COPY_CLIPBOARD"/>
      <xsd:enumeration value="HTML_PROJECT_COOKIE"/>
      <xsd:enumeration value="HTML_INDEX_NUM_ENTRIES"/>
      <xsd:enumeration value="GENERATE_DOCSET"/>
      <xsd:enumeration value="DOCSET_FEEDNAME"/>
      <xsd:enumeration value="DOCSET_FEEDURL"/>
      <xsd:enumeration value="DOCSET_BUNDLE_ID"/>
      <xsd:enumeration value="DOCSET_PUBLISHER_ID"/>
      <xsd:enumeration value="DOCSET_PUBLISHER_NAME"/>
      <xsd:enumeration value="GENERATE_HTMLHELP"/>
      <xsd:enumeration value="CHM_FILE"/>
      <xsd:enumeration value="HHC_LOCATION"/>
      <xsd:enumeration value="GENERATE_CHI"/>
      <xsd:enumeration value="CHM_INDEX_ENCODING"/>
      <xsd:enumeration value="BINARY_TOC"/>
      <xsd:enumeration value="TOC_EXPAND"/>
      <xsd:enumeration value="SITEMAP_URL"/>
      <xsd:enumeration value="GENERATE_QHP"/>
      <xsd:enumeration value="QCH_FILE"/>
      <xsd:enumeration value="QHP_NAMESPACE"/>
      <xsd:enumeration value="QHP_VIRTUAL_FOLDER"/>
      <xsd:enumeration value="QHP_CUST_FILTER_NAME"/>
      <xsd:enumeration value="QHP_CUST_FILTER_ATTRS"/>
      <xsd:enumeration value="QHP_SECT_FILTER_ATTRS"/>
      <xsd:enumeration value="QHG_LOCATION"/>
      <xsd:enumeration value="GENERATE_ECLIPSEHELP"/>
      <xsd:enumeration value="ECLIPSE_DOC_ID"/>
      <xsd:enumeration value="DISABLE_INDEX"/>
      <xsd:enumeration value="GENERATE_TREEVIEW"/>
      <xsd:enumeration value="PAGE_OUTLINE_PANEL"/>
      <xsd:enumeration value="FULL_SIDEBAR"/>
      <xsd:enumeration value="ENUM_VALUES_PER_LINE"/>
      <xsd:enumeration value="SHOW_ENUM_VALUES"/>
      <xsd:enumeration value="TREEVIEW_WIDTH"/>
      <xsd:enumeration value="EXT_LINKS_IN_WINDOW"/>
      <xsd:enumeration value="OBFUSCATE_EMAILS"/>
      <xsd:enumeration value="HTML_FORMULA_FORMAT"/>
      <xsd:enumeration value="FORMULA_FONTSIZE"/>
      <xsd:enumeration value="FORMULA_MACROFILE"/>
      <xsd:enumeration value="USE_MATHJAX"/>
      <xsd:enumeration value="MATHJAX_VERSION"/>
      <xsd:enumeration value="MATHJAX_FORMAT"/>
      <xsd:enumeration value="MATHJAX_RELPATH"/>
      <xsd:enumeration value="MATHJAX_EXTENSIONS"/>
      <xsd:enumeration value="MATHJAX_CODEFILE"/>
      <xsd:enumeration value="SEARCHENGINE"/>
      <xsd:enumeration value="SERVER_BASED_SEARCH"/>
      <xsd:enumeration value="EXTERNAL_SEARCH"/>
      <xsd:enumeration value="SEARCHENGINE_URL"/>
      <xsd:enumeration value="SEARCHDATA_FILE"/>
      <xsd:enumeration value="EXTERNAL_SEARCH_ID"/>
      <xsd:enumeration value="EXTRA_SEARCH_MAPPINGS"/>
      <xsd:enumeration value="GENERATE_LATEX"/>
      <xsd:enumeration value="LATEX_OUTPUT"/>
      <xsd:enumeration value="LATEX_CMD_NAME"/>
      <xsd:enumeration value="MAKEINDEX_CMD_NAME"/>
      <xsd:enumeration value="LATEX_MAKEINDEX_CMD"/>
      <xsd:enumeration value="COMPACT_LATEX"/>
      <xsd:enumeration value="PAPER_TYPE"/>
      <xsd:enumeration value="EXTRA_PACKAGES"/>
      <xsd:enumeration value="LATEX_HEADER"/>
      <xsd:enumeration value="LATEX_FOOTER"/>
      <xsd:enumeration value="LATEX_EXTRA_STYLESHEET"/>
      <xsd:enumeration value="LATEX_EXTRA_FILES"/>
      <xsd:enumeration value="PDF_HYPERLINKS"/>
      <xsd:enumeration value="USE_PDFLATEX"/>
      <xsd:enumeration value="LATEX_BATCHMODE"/>
      <xsd:enumeration value="LATEX_HIDE_INDICES"/>
      <xsd:enumeration value="LATEX_BIB_STYLE"/>
      <xsd:enumeration value="LATEX_EMOJI_DIRECTORY"/>
      <xsd:enumeration value="GENERATE_RTF"/>
      <xsd:enumeration value="RTF_OUTPUT"/>
      <xsd:enumeration value="COMPACT_RTF"/>
      <xsd:enumeration value="RTF_HYPERLINKS"/>
      <xsd:enumeration value="RTF_STYLESHEET_FILE"/>
      <xsd:enumeration value="RTF_EXTENSIONS_FILE"/>
      <xsd:enumeration value="RTF_EXTRA_FILES"/>
      <xsd:enumeration value="GENERATE_MAN"/>
      <xsd:enumeration value="MAN_OUTPUT"/>
      <xsd:enumeration value="MAN_EXTENSION"/>
      <xsd:enumeration value="MAN_SUBDIR"/>
      <xsd:enumeration value="MAN_LINKS"/>
      <xsd:enumeration value="GENERATE_XML"/>
      <xsd:enumeration value="XML_OUTPUT"/>
      <xsd:enumeration value="XML_PROGRAMLISTING"/>
      <xsd:enumeration value="XML_NS_MEMB_FILE_SCOPE"/>
      <xsd:enumeration value="GENERATE_DOCBOOK"/>
      <xsd:enumeration value="DOCBOOK_OUTPUT"/>
      <xsd:enumeration value="GENERATE_AUTOGEN_DEF"/>
      <xsd:enumeration value="GENERATE_SQLITE3"/>
      <xsd:enumeration value="SQLITE3_OUTPUT"/>
      <xsd:enumeration value="SQLITE3_RECREATE_DB"/>
      <xsd:enumeration value="GENERATE_PERLMOD"/>
      <xsd:enumeration value="PERLMOD_LATEX"/>
      <xsd:enumeration value="PERLMOD_PRETTY"/>
      <xsd:enumeration value="PERLMOD_MAKEVAR_PREFIX"/>
      <xsd:enumeration value="ENABLE_PREPROCESSING"/>
      <xsd:enumeration value="MACRO_EXPANSION"/>
      <xsd:enumeration value="EXPAND_ONLY_PREDEF"/>
      <xsd:enumeration value="SEARCH_INCLUDES"/>
      <xsd:enumeration value="INCLUDE_PATH"/>
      <xsd:enumeration value="INCLUDE_FILE_PATTERNS"/>
      <xsd:enumeration value="PREDEFINED"/>
      <xsd:enumeration value="EXPAND_AS_DEFINED"/>
      <xsd:enumeration value="SKIP_FUNCTION_MACROS"/>
      <xsd:enumeration value="TAGFILES"/>
      <xsd:enumeration value="GENERATE_TAGFILE"/>
      <xsd:enumeration value="ALLEXTERNALS"/>
      <xsd:enumeration value="EXTERNAL_GROUPS"/>
      <xsd:enumeration value="EXTERNAL_PAGES"/>
      <xsd:enumeration value="HIDE_UNDOC_RELATIONS"/>
      <xsd:enumeration value="HAVE_DOT"/>
      <xsd:enumeration value="DOT_NUM_THREADS"/>
      <xsd:enumeration value="DOT_COMMON_ATTR"/>
      <xsd:enumeration value="DOT_EDGE_ATTR"/>
      <xsd:enumeration value="DOT_NODE_ATTR"/>
      <xsd:enumeration value="DOT_FONTPATH"/>
      <xsd:enumeration value="CLASS_GRAPH"/>
      <xsd:enumeration value="COLLABORATION_GRAPH"/>
      <xsd:enumeration value="GROUP_GRAPHS"/>
      <xsd:enumeration value="UML_LOOK"/>
      <xsd:enumeration value="UML_LIMIT_NUM_FIELDS"/>
      <xsd:enumeration value="UML_MAX_EDGE_LABELS"/>
      <xsd:enumeration value="DOT_UML_DETAILS"/>
      <xsd:enumeration value="DOT_WRAP_THRESHOLD"/>
      <xsd:enumeration value="TEMPLATE_RELATIONS"/>
      <xsd:enumeration value="INCLUDE_GRAPH"/>
      <xsd:enumeration value="INCLUDED_BY_GRAPH"/>
      <xsd:enumeration value="CALL_GRAPH"/>
      <xsd:enumeration value="CALLER_GRAPH"/>
      <xsd:enumeration value="GRAPHICAL_HIERARCHY"/>
      <xsd:enumeration value="DIRECTORY_GRAPH"/>
      <xsd:enumeration value="DIR_GRAPH_MAX_DEPTH"/>
      <xsd:enumeration value="DOT_IMAGE_FORMAT"/>
      <xsd:enumeration value="INTERACTIVE_SVG"/>
      <xsd:enumeration value="DOT_PATH"/>
      <xsd:enumeration value="DOTFILE_DIRS"/>
      <xsd:enumeration value="DIA_PATH"/>
      <xsd:enumeration value="DIAFILE_DIRS"/>
      <xsd:enumeration value="PLANTUML_JAR_PATH"/>
      <xsd:enumeration value="PLANTUML_CFG_FILE"/>
      <xsd:enumeration value="PLANTUML_INCLUDE_PATH"/>
      <xsd:enumeration value="PLANTUMLFILE_DIRS"/>
      <xsd:enumeration value="DOT_GRAPH_MAX_NODES"/>
      <xsd:enumeration value="MAX_DOT_GRAPH_DEPTH"/>
      <xsd:enumeration value="DOT_MULTI_TARGETS"/>
      <xsd:enumeration value="GENERATE_LEGEND"/>
      <xsd:enumeration value="DOT_CLEANUP"/>
      <xsd:enumeration value="MSCGEN_TOOL"/>
      <xsd:enumeration value="MSCFILE_DIRS"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="defaultType">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="yes"/>
      <xsd:enumeration value="no"/>
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="typeType">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="int"/>
      <xsd:enumeration value="bool"/>
      <xsd:enumeration value="string"/>
      <xsd:enumeration value="stringlist"/>
    </xsd:restriction>
  </xsd:simpleType>

</xsd:schema>
