diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..51b13c7ff8bb7f42872b2b294fc4e4ac10ded990
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,151 @@
+# Copyright 2011-2020 Free Software Foundation, Inc.
+#
+# This file was generated by gr_modtool, a tool from the GNU Radio framework
+# This file is a part of gr-cdc
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+
+########################################################################
+# Project setup
+########################################################################
+cmake_minimum_required(VERSION 3.8)
+project(gr-cdc CXX C)
+enable_testing()
+
+# Install to PyBOMBS target prefix if defined
+if(DEFINED ENV{PYBOMBS_PREFIX})
+    set(CMAKE_INSTALL_PREFIX $ENV{PYBOMBS_PREFIX})
+    message(STATUS "PyBOMBS installed GNU Radio. Setting CMAKE_INSTALL_PREFIX to $ENV{PYBOMBS_PREFIX}")
+endif()
+
+# Select the release build type by default to get optimization flags
+if(NOT CMAKE_BUILD_TYPE)
+   set(CMAKE_BUILD_TYPE "Release")
+   message(STATUS "Build type not specified: defaulting to release.")
+endif(NOT CMAKE_BUILD_TYPE)
+set(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} CACHE STRING "")
+
+# Make sure our local CMake Modules path comes first
+list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_SOURCE_DIR}/cmake/Modules)
+# Find gnuradio to get access to the cmake modules
+find_package(Gnuradio "3.10" REQUIRED)
+
+# Set the version information here
+set(VERSION_MAJOR 1)
+set(VERSION_API   0)
+set(VERSION_ABI   0)
+set(VERSION_PATCH 0)
+
+cmake_policy(SET CMP0011 NEW)
+
+# Enable generation of compile_commands.json for code completion engines
+set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
+
+########################################################################
+# Minimum Version Requirements
+########################################################################
+
+include(GrMinReq)
+
+########################################################################
+# Compiler settings
+########################################################################
+
+include(GrCompilerSettings)
+
+########################################################################
+# Install directories
+########################################################################
+include(GrVersion)
+
+include(GrPlatform) #define LIB_SUFFIX
+
+if(NOT CMAKE_MODULES_DIR)
+  set(CMAKE_MODULES_DIR lib${LIB_SUFFIX}/cmake)
+endif(NOT CMAKE_MODULES_DIR)
+
+set(GR_INCLUDE_DIR      include/gnuradio/cdc)
+set(GR_CMAKE_DIR        ${CMAKE_MODULES_DIR}/gnuradio-cdc)
+set(GR_PKG_DATA_DIR     ${GR_DATA_DIR}/${CMAKE_PROJECT_NAME})
+set(GR_PKG_DOC_DIR      ${GR_DOC_DIR}/${CMAKE_PROJECT_NAME})
+set(GR_PKG_CONF_DIR     ${GR_CONF_DIR}/${CMAKE_PROJECT_NAME}/conf.d)
+set(GR_PKG_LIBEXEC_DIR  ${GR_LIBEXEC_DIR}/${CMAKE_PROJECT_NAME})
+
+########################################################################
+# On Apple only, set install name and use rpath correctly, if not already set
+########################################################################
+if(APPLE)
+    if(NOT CMAKE_INSTALL_NAME_DIR)
+        set(CMAKE_INSTALL_NAME_DIR
+            ${CMAKE_INSTALL_PREFIX}/${GR_LIBRARY_DIR} CACHE
+            PATH "Library Install Name Destination Directory" FORCE)
+    endif(NOT CMAKE_INSTALL_NAME_DIR)
+    if(NOT CMAKE_INSTALL_RPATH)
+        set(CMAKE_INSTALL_RPATH
+            ${CMAKE_INSTALL_PREFIX}/${GR_LIBRARY_DIR} CACHE
+            PATH "Library Install RPath" FORCE)
+    endif(NOT CMAKE_INSTALL_RPATH)
+    if(NOT CMAKE_BUILD_WITH_INSTALL_RPATH)
+        set(CMAKE_BUILD_WITH_INSTALL_RPATH ON CACHE
+            BOOL "Do Build Using Library Install RPath" FORCE)
+    endif(NOT CMAKE_BUILD_WITH_INSTALL_RPATH)
+endif(APPLE)
+
+########################################################################
+# Find gnuradio build dependencies
+########################################################################
+find_package(Doxygen)
+
+########################################################################
+# Setup doxygen option
+########################################################################
+if(DOXYGEN_FOUND)
+    option(ENABLE_DOXYGEN "Build docs using Doxygen" ON)
+else(DOXYGEN_FOUND)
+    option(ENABLE_DOXYGEN "Build docs using Doxygen" OFF)
+endif(DOXYGEN_FOUND)
+
+########################################################################
+# Create uninstall target
+########################################################################
+configure_file(
+    ${CMAKE_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in
+    ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake
+@ONLY)
+
+add_custom_target(uninstall
+    ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake
+    )
+
+########################################################################
+# Add subdirectories
+########################################################################
+add_subdirectory(include/gnuradio/cdc)
+add_subdirectory(lib)
+add_subdirectory(apps)
+add_subdirectory(docs)
+# NOTE: manually update below to use GRC to generate C++ flowgraphs w/o python
+if(ENABLE_PYTHON)
+  message(STATUS "PYTHON and GRC components are enabled")
+  add_subdirectory(python/cdc)
+  add_subdirectory(grc)
+else(ENABLE_PYTHON)
+  message(STATUS "PYTHON and GRC components are disabled")
+endif(ENABLE_PYTHON)
+
+########################################################################
+# Install cmake search helper for this library
+########################################################################
+
+install(FILES cmake/Modules/gnuradio-cdcConfig.cmake
+    DESTINATION ${GR_CMAKE_DIR}
+)
+
+include(CMakePackageConfigHelpers)
+configure_package_config_file(
+    ${PROJECT_SOURCE_DIR}/cmake/Modules/targetConfig.cmake.in
+    ${CMAKE_CURRENT_BINARY_DIR}/cmake/Modules/${target}Config.cmake
+    INSTALL_DESTINATION ${GR_CMAKE_DIR}
+)
+
diff --git a/MANIFEST.md b/MANIFEST.md
new file mode 100644
index 0000000000000000000000000000000000000000..e669ff81719617526cde2320434eb212c8310f6d
--- /dev/null
+++ b/MANIFEST.md
@@ -0,0 +1,17 @@
+title: The CDC OOT Module
+brief: Short description of gr-cdc
+tags: # Tags are arbitrary, but look at CGRAN what other authors are using
+  - sdr
+author:
+  - Author Name <authors@email.address>
+copyright_owner:
+  - Copyright Owner 1
+license:
+gr_supported_version: # Put a comma separated list of supported GR versions here
+#repo: # Put the URL of the repository here, or leave blank for default
+#website: <module_website> # If you have a separate project website, put it here
+#icon: <icon_url> # Put a URL to a square image here that will be used as an icon on CGRAN
+---
+A longer, multi-line description of gr-cdc.
+You may use some *basic* Markdown here.
+If left empty, it will try to find a README file instead.
diff --git a/apps/CMakeLists.txt b/apps/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..25b689294bfed718b375f1bfc8ff5f24523a20f7
--- /dev/null
+++ b/apps/CMakeLists.txt
@@ -0,0 +1,14 @@
+# Copyright 2011 Free Software Foundation, Inc.
+#
+# This file was generated by gr_modtool, a tool from the GNU Radio framework
+# This file is a part of gr-cdc
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+
+include(GrPython)
+
+GR_PYTHON_INSTALL(
+    PROGRAMS
+    DESTINATION bin
+)
diff --git a/cmake/Modules/CMakeParseArgumentsCopy.cmake b/cmake/Modules/CMakeParseArgumentsCopy.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..66016cb2ff186c8a7d03b4f055d474d6ce993760
--- /dev/null
+++ b/cmake/Modules/CMakeParseArgumentsCopy.cmake
@@ -0,0 +1,138 @@
+# CMAKE_PARSE_ARGUMENTS(<prefix> <options> <one_value_keywords> <multi_value_keywords> args...)
+#
+# CMAKE_PARSE_ARGUMENTS() is intended to be used in macros or functions for
+# parsing the arguments given to that macro or function.
+# It processes the arguments and defines a set of variables which hold the
+# values of the respective options.
+#
+# The <options> argument contains all options for the respective macro,
+# i.e. keywords which can be used when calling the macro without any value
+# following, like e.g. the OPTIONAL keyword of the install() command.
+#
+# The <one_value_keywords> argument contains all keywords for this macro
+# which are followed by one value, like e.g. DESTINATION keyword of the
+# install() command.
+#
+# The <multi_value_keywords> argument contains all keywords for this macro
+# which can be followed by more than one value, like e.g. the TARGETS or
+# FILES keywords of the install() command.
+#
+# When done, CMAKE_PARSE_ARGUMENTS() will have defined for each of the
+# keywords listed in <options>, <one_value_keywords> and
+# <multi_value_keywords> a variable composed of the given <prefix>
+# followed by "_" and the name of the respective keyword.
+# These variables will then hold the respective value from the argument list.
+# For the <options> keywords this will be TRUE or FALSE.
+#
+# All remaining arguments are collected in a variable
+# <prefix>_UNPARSED_ARGUMENTS, this can be checked afterwards to see whether
+# your macro was called with unrecognized parameters.
+#
+# As an example here a my_install() macro, which takes similar arguments as the
+# real install() command:
+#
+#   function(MY_INSTALL)
+#     set(options OPTIONAL FAST)
+#     set(oneValueArgs DESTINATION RENAME)
+#     set(multiValueArgs TARGETS CONFIGURATIONS)
+#     cmake_parse_arguments(MY_INSTALL "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} )
+#     ...
+#
+# Assume my_install() has been called like this:
+#   my_install(TARGETS foo bar DESTINATION bin OPTIONAL blub)
+#
+# After the cmake_parse_arguments() call the macro will have set the following
+# variables:
+#   MY_INSTALL_OPTIONAL = TRUE
+#   MY_INSTALL_FAST = FALSE (this option was not used when calling my_install()
+#   MY_INSTALL_DESTINATION = "bin"
+#   MY_INSTALL_RENAME = "" (was not used)
+#   MY_INSTALL_TARGETS = "foo;bar"
+#   MY_INSTALL_CONFIGURATIONS = "" (was not used)
+#   MY_INSTALL_UNPARSED_ARGUMENTS = "blub" (no value expected after "OPTIONAL"
+#
+# You can the continue and process these variables.
+#
+# Keywords terminate lists of values, e.g. if directly after a one_value_keyword
+# another recognized keyword follows, this is interpreted as the beginning of
+# the new option.
+# E.g. my_install(TARGETS foo DESTINATION OPTIONAL) would result in
+# MY_INSTALL_DESTINATION set to "OPTIONAL", but MY_INSTALL_DESTINATION would
+# be empty and MY_INSTALL_OPTIONAL would be set to TRUE therefore.
+
+#=============================================================================
+# Copyright 2010 Alexander Neundorf <neundorf@kde.org>
+#
+# Distributed under the OSI-approved BSD License (the "License");
+# see accompanying file Copyright.txt for details.
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the License for more information.
+#=============================================================================
+# (To distribute this file outside of CMake, substitute the full
+#  License text for the above reference.)
+
+
+if(__CMAKE_PARSE_ARGUMENTS_INCLUDED)
+  return()
+endif()
+set(__CMAKE_PARSE_ARGUMENTS_INCLUDED TRUE)
+
+
+function(CMAKE_PARSE_ARGUMENTS prefix _optionNames _singleArgNames _multiArgNames)
+  # first set all result variables to empty/FALSE
+  foreach(arg_name ${_singleArgNames} ${_multiArgNames})
+    set(${prefix}_${arg_name})
+  endforeach(arg_name)
+
+  foreach(option ${_optionNames})
+    set(${prefix}_${option} FALSE)
+  endforeach(option)
+
+  set(${prefix}_UNPARSED_ARGUMENTS)
+
+  set(insideValues FALSE)
+  set(currentArgName)
+
+  # now iterate over all arguments and fill the result variables
+  foreach(currentArg ${ARGN})
+    list(FIND _optionNames "${currentArg}" optionIndex)  # ... then this marks the end of the arguments belonging to this keyword
+    list(FIND _singleArgNames "${currentArg}" singleArgIndex)  # ... then this marks the end of the arguments belonging to this keyword
+    list(FIND _multiArgNames "${currentArg}" multiArgIndex)  # ... then this marks the end of the arguments belonging to this keyword
+
+    if(${optionIndex} EQUAL -1  AND  ${singleArgIndex} EQUAL -1  AND  ${multiArgIndex} EQUAL -1)
+      if(insideValues)
+        if("${insideValues}" STREQUAL "SINGLE")
+          set(${prefix}_${currentArgName} ${currentArg})
+          set(insideValues FALSE)
+        elseif("${insideValues}" STREQUAL "MULTI")
+          list(APPEND ${prefix}_${currentArgName} ${currentArg})
+        endif()
+      else(insideValues)
+        list(APPEND ${prefix}_UNPARSED_ARGUMENTS ${currentArg})
+      endif(insideValues)
+    else()
+      if(NOT ${optionIndex} EQUAL -1)
+        set(${prefix}_${currentArg} TRUE)
+        set(insideValues FALSE)
+      elseif(NOT ${singleArgIndex} EQUAL -1)
+        set(currentArgName ${currentArg})
+        set(${prefix}_${currentArgName})
+        set(insideValues "SINGLE")
+      elseif(NOT ${multiArgIndex} EQUAL -1)
+        set(currentArgName ${currentArg})
+        set(${prefix}_${currentArgName})
+        set(insideValues "MULTI")
+      endif()
+    endif()
+
+  endforeach(currentArg)
+
+  # propagate the result variables to the caller:
+  foreach(arg_name ${_singleArgNames} ${_multiArgNames} ${_optionNames})
+    set(${prefix}_${arg_name}  ${${prefix}_${arg_name}} PARENT_SCOPE)
+  endforeach(arg_name)
+  set(${prefix}_UNPARSED_ARGUMENTS ${${prefix}_UNPARSED_ARGUMENTS} PARENT_SCOPE)
+
+endfunction(CMAKE_PARSE_ARGUMENTS _options _singleArgs _multiArgs)
diff --git a/cmake/Modules/gnuradio-cdcConfig.cmake b/cmake/Modules/gnuradio-cdcConfig.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..c9fcd7398243f581f989f09c0db5fa8157b0526c
--- /dev/null
+++ b/cmake/Modules/gnuradio-cdcConfig.cmake
@@ -0,0 +1,32 @@
+find_package(PkgConfig)
+
+PKG_CHECK_MODULES(PC_GR_CDC gnuradio-cdc)
+
+FIND_PATH(
+    GR_CDC_INCLUDE_DIRS
+    NAMES gnuradio/cdc/api.h
+    HINTS $ENV{CDC_DIR}/include
+        ${PC_CDC_INCLUDEDIR}
+    PATHS ${CMAKE_INSTALL_PREFIX}/include
+          /usr/local/include
+          /usr/include
+)
+
+FIND_LIBRARY(
+    GR_CDC_LIBRARIES
+    NAMES gnuradio-cdc
+    HINTS $ENV{CDC_DIR}/lib
+        ${PC_CDC_LIBDIR}
+    PATHS ${CMAKE_INSTALL_PREFIX}/lib
+          ${CMAKE_INSTALL_PREFIX}/lib64
+          /usr/local/lib
+          /usr/local/lib64
+          /usr/lib
+          /usr/lib64
+          )
+
+include("${CMAKE_CURRENT_LIST_DIR}/gnuradio-cdcTarget.cmake")
+
+INCLUDE(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(GR_CDC DEFAULT_MSG GR_CDC_LIBRARIES GR_CDC_INCLUDE_DIRS)
+MARK_AS_ADVANCED(GR_CDC_LIBRARIES GR_CDC_INCLUDE_DIRS)
diff --git a/cmake/Modules/targetConfig.cmake.in b/cmake/Modules/targetConfig.cmake.in
new file mode 100644
index 0000000000000000000000000000000000000000..4a1fb312d7c1b052d4e021c5792e4208138256f2
--- /dev/null
+++ b/cmake/Modules/targetConfig.cmake.in
@@ -0,0 +1,14 @@
+# Copyright 2018 Free Software Foundation, Inc.
+#
+# This file is part of GNU Radio
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+
+include(CMakeFindDependencyMacro)
+
+set(target_deps "@TARGET_DEPENDENCIES@")
+foreach(dep IN LISTS target_deps)
+    find_dependency(${dep})
+endforeach()
+include("${CMAKE_CURRENT_LIST_DIR}/@TARGET@Targets.cmake")
diff --git a/cmake/cmake_uninstall.cmake.in b/cmake/cmake_uninstall.cmake.in
new file mode 100644
index 0000000000000000000000000000000000000000..9ae1ae4bd6049b7e94b46ecb1894a52cafdf257a
--- /dev/null
+++ b/cmake/cmake_uninstall.cmake.in
@@ -0,0 +1,32 @@
+# http://www.vtk.org/Wiki/CMake_FAQ#Can_I_do_.22make_uninstall.22_with_CMake.3F
+
+IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
+  MESSAGE(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"")
+ENDIF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
+
+FILE(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files)
+STRING(REGEX REPLACE "\n" ";" files "${files}")
+FOREACH(file ${files})
+  MESSAGE(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"")
+  IF(EXISTS "$ENV{DESTDIR}${file}")
+    EXEC_PROGRAM(
+      "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
+      OUTPUT_VARIABLE rm_out
+      RETURN_VALUE rm_retval
+      )
+    IF(NOT "${rm_retval}" STREQUAL 0)
+      MESSAGE(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"")
+    ENDIF(NOT "${rm_retval}" STREQUAL 0)
+  ELSEIF(IS_SYMLINK "$ENV{DESTDIR}${file}")
+    EXEC_PROGRAM(
+      "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
+      OUTPUT_VARIABLE rm_out
+      RETURN_VALUE rm_retval
+      )
+    IF(NOT "${rm_retval}" STREQUAL 0)
+      MESSAGE(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"")
+    ENDIF(NOT "${rm_retval}" STREQUAL 0)
+  ELSE(EXISTS "$ENV{DESTDIR}${file}")
+    MESSAGE(STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.")
+  ENDIF(EXISTS "$ENV{DESTDIR}${file}")
+ENDFOREACH(file)
diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..1116e7bdff337cbc6c1b5588f404fa6019309cb1
--- /dev/null
+++ b/docs/CMakeLists.txt
@@ -0,0 +1,24 @@
+# Copyright 2011 Free Software Foundation, Inc.
+#
+# This file was generated by gr_modtool, a tool from the GNU Radio framework
+# This file is a part of gr-cdc
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+
+########################################################################
+# Setup dependencies
+########################################################################
+find_package(Doxygen)
+
+########################################################################
+# Begin conditional configuration
+########################################################################
+if(ENABLE_DOXYGEN)
+
+########################################################################
+# Add subdirectories
+########################################################################
+add_subdirectory(doxygen)
+
+endif(ENABLE_DOXYGEN)
diff --git a/docs/README.cdc b/docs/README.cdc
new file mode 100644
index 0000000000000000000000000000000000000000..bd1c70d81d7e8387d99a79acfb54000e8e01f739
--- /dev/null
+++ b/docs/README.cdc
@@ -0,0 +1,11 @@
+This is the cdc-write-a-block package meant as a guide to building
+out-of-tree packages. To use the cdc blocks, the Python namespaces
+is in 'cdc', which is imported as:
+
+    import cdc
+
+See the Doxygen documentation for details about the blocks available
+in this package. A quick listing of the details can be found in Python
+after importing by using:
+
+    help(cdc)
diff --git a/docs/doxygen/CMakeLists.txt b/docs/doxygen/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..aa2e25dc2550648e202d25fc7b7200330647a818
--- /dev/null
+++ b/docs/doxygen/CMakeLists.txt
@@ -0,0 +1,42 @@
+# Copyright 2011 Free Software Foundation, Inc.
+#
+# This file was generated by gr_modtool, a tool from the GNU Radio framework
+# This file is a part of gr-cdc
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+
+########################################################################
+# Create the doxygen configuration file
+########################################################################
+file(TO_NATIVE_PATH ${CMAKE_SOURCE_DIR} top_srcdir)
+file(TO_NATIVE_PATH ${CMAKE_BINARY_DIR} top_builddir)
+file(TO_NATIVE_PATH ${CMAKE_SOURCE_DIR} abs_top_srcdir)
+file(TO_NATIVE_PATH ${CMAKE_BINARY_DIR} abs_top_builddir)
+
+set(HAVE_DOT ${DOXYGEN_DOT_FOUND})
+set(enable_html_docs YES)
+set(enable_latex_docs NO)
+set(enable_mathjax NO)
+set(enable_xml_docs YES)
+
+configure_file(
+    ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in
+    ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
+@ONLY)
+
+set(BUILT_DIRS ${CMAKE_CURRENT_BINARY_DIR}/xml ${CMAKE_CURRENT_BINARY_DIR}/html)
+
+########################################################################
+# Make and install doxygen docs
+########################################################################
+add_custom_command(
+    OUTPUT ${BUILT_DIRS}
+    COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
+    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+    COMMENT "Generating documentation with doxygen"
+)
+
+add_custom_target(doxygen_target ALL DEPENDS ${BUILT_DIRS})
+
+install(DIRECTORY ${BUILT_DIRS} DESTINATION ${GR_PKG_DOC_DIR})
diff --git a/docs/doxygen/Doxyfile.in b/docs/doxygen/Doxyfile.in
new file mode 100644
index 0000000000000000000000000000000000000000..5a74b047a862d0a20d7bf997bcd9f22492c95826
--- /dev/null
+++ b/docs/doxygen/Doxyfile.in
@@ -0,0 +1,1881 @@
+# Doxyfile 1.8.4
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project.
+#
+# All text after a double hash (##) is considered a comment and is placed
+# in front of the TAG it is preceding .
+# All text after a hash (#) is considered a comment and will be ignored.
+# The format is:
+#       TAG = value [value, ...]
+# For lists items can also be appended using:
+#       TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ").
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the config file
+# that follow. The default is UTF-8 which is also the encoding used for all
+# text before the first occurrence of this tag. Doxygen uses libiconv (or the
+# iconv built into libc) for the transcoding. See
+# http://www.gnu.org/software/libiconv for the list of possible encodings.
+
+DOXYFILE_ENCODING      = UTF-8
+
+# The PROJECT_NAME tag is a single word (or sequence of words) that should
+# identify the project. Note that if you do not use Doxywizard you need
+# to put quotes around the project name if it contains spaces.
+
+PROJECT_NAME           = "GNU Radio's CDC Package"
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number.
+# This could be handy for archiving the generated documentation or
+# if some version control system is used.
+
+PROJECT_NUMBER         =
+
+# Using the PROJECT_BRIEF tag one can provide an optional one line description
+# for a project that appears at the top of each page and should give viewer
+# a quick idea about the purpose of the project. Keep the description short.
+
+PROJECT_BRIEF          =
+
+# With the PROJECT_LOGO tag one can specify an logo or icon that is
+# included in the documentation. The maximum height of the logo should not
+# exceed 55 pixels and the maximum width should not exceed 200 pixels.
+# Doxygen will copy the logo to the output directory.
+
+PROJECT_LOGO           =
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
+# base path where the generated documentation will be put.
+# If a relative path is entered, it will be relative to the location
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY       =
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
+# 4096 sub-directories (in 2 levels) under the output directory of each output
+# format and will distribute the generated files over these directories.
+# Enabling this option can be useful when feeding doxygen a huge amount of
+# source files, where putting all generated files in the same directory would
+# otherwise cause performance problems for the file system.
+
+CREATE_SUBDIRS         = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# The default language is English, other supported languages are:
+# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
+# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
+# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
+# messages), Korean, Korean-en, Latvian, Lithuanian, Norwegian, Macedonian,
+# Persian, Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic,
+# Slovak, Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
+
+OUTPUT_LANGUAGE        = English
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
+# include brief member descriptions after the members that are listed in
+# the file and class documentation (similar to JavaDoc).
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC      = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
+# the brief description of a member or function before the detailed description.
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF           = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator
+# that is used to form the text in various listings. Each string
+# in this list, if found as the leading text of the brief description, will be
+# stripped from the text and the result after processing the whole list, is
+# used as the annotated text. Otherwise, the brief description is used as-is.
+# If left blank, the following values are used ("$name" is automatically
+# replaced with the name of the entity): "The $name class" "The $name widget"
+# "The $name file" "is" "provides" "specifies" "contains"
+# "represents" "a" "an" "the"
+
+ABBREVIATE_BRIEF       =
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# Doxygen will generate a detailed section even if there is only a brief
+# description.
+
+ALWAYS_DETAILED_SEC    = YES
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+
+INLINE_INHERITED_MEMB  = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
+# path before files name in the file list and in the header files. If set
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES        = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
+# can be used to strip a user-defined part of the path. Stripping is
+# only done if one of the specified strings matches the left-hand part of
+# the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the
+# path to strip. Note that you specify absolute paths here, but also
+# relative paths, which will be relative from the directory where doxygen is
+# started.
+
+STRIP_FROM_PATH        =
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
+# the path mentioned in the documentation of a class, which tells
+# the reader which header file to include in order to use a class.
+# If left blank only the name of the header file containing the class
+# definition is used. Otherwise one should specify the include paths that
+# are normally passed to the compiler using the -I flag.
+
+STRIP_FROM_INC_PATH    =
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
+# (but less readable) file names. This can be useful if your file system
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES            = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
+# will interpret the first line (until the first dot) of a JavaDoc-style
+# comment as the brief description. If set to NO, the JavaDoc
+# comments will behave just like regular Qt-style comments
+# (thus requiring an explicit @brief command for a brief description.)
+
+JAVADOC_AUTOBRIEF      = NO
+
+# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
+# interpret the first line (until the first dot) of a Qt-style
+# comment as the brief description. If set to NO, the comments
+# will behave just like regular Qt-style comments (thus requiring
+# an explicit \brief command for a brief description.)
+
+QT_AUTOBRIEF           = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
+# treat a multi-line C++ special comment block (i.e. a block of //! or ///
+# comments) as a brief description. This used to be the default behaviour.
+# The new default is to treat a multi-line C++ comment block as a detailed
+# description. Set this tag to YES if you prefer the old behaviour instead.
+
+MULTILINE_CPP_IS_BRIEF = YES
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
+# member inherits the documentation from any documented member that it
+# re-implements.
+
+INHERIT_DOCS           = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
+# a new page for each member. If set to NO, the documentation of a member will
+# be part of the file/class/namespace that contains it.
+
+SEPARATE_MEMBER_PAGES  = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab.
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE               = 8
+
+# This tag can be used to specify a number of aliases that acts
+# as commands in the documentation. An alias has the form "name=value".
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to
+# put the command \sideeffect (or @sideeffect) in the documentation, which
+# will result in a user-defined paragraph with heading "Side Effects:".
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES                =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
+# sources only. Doxygen will then generate output that is more tailored for C.
+# For instance, some of the names that are used will be different. The list
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C  = NO
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
+# sources only. Doxygen will then generate output that is more tailored for
+# Java. For instance, namespaces will be presented as packages, qualified
+# scopes will look different, etc.
+
+OPTIMIZE_OUTPUT_JAVA   = NO
+
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources only. Doxygen will then generate output that is more tailored for
+# Fortran.
+
+OPTIMIZE_FOR_FORTRAN   = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for
+# VHDL.
+
+OPTIMIZE_OUTPUT_VHDL   = NO
+
+# Doxygen selects the parser to use depending on the extension of the files it
+# parses. With this tag you can assign which parser to use for a given
+# extension. Doxygen has a built-in mapping, but you can override or extend it
+# using this tag. The format is ext=language, where ext is a file extension,
+# and language is one of the parsers supported by doxygen: IDL, Java,
+# Javascript, CSharp, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL, C,
+# C++. For instance to make doxygen treat .inc files as Fortran files (default
+# is PHP), and .f files as C (default is Fortran), use: inc=Fortran f=C. Note
+# that for custom extensions you also need to set FILE_PATTERNS otherwise the
+# files are not read by doxygen.
+
+EXTENSION_MAPPING      =
+
+# If MARKDOWN_SUPPORT is enabled (the default) then doxygen pre-processes all
+# comments according to the Markdown format, which allows for more readable
+# documentation. See http://daringfireball.net/projects/markdown/ for details.
+# The output of markdown processing is further processed by doxygen, so you
+# can mix doxygen, HTML, and XML commands with Markdown formatting.
+# Disable only in case of backward compatibilities issues.
+
+MARKDOWN_SUPPORT       = YES
+
+# When enabled doxygen tries to link words that correspond to documented
+# classes, or namespaces to their corresponding documentation. Such a link can
+# be prevented in individual cases by by putting a % sign in front of the word
+# or globally by setting AUTOLINK_SUPPORT to NO.
+
+AUTOLINK_SUPPORT       = YES
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should
+# set this tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
+# func(std::string) {}). This also makes the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+
+BUILTIN_STL_SUPPORT    = YES
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+
+CPP_CLI_SUPPORT        = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
+# Doxygen will parse them like normal C++ but will assume all classes use public
+# instead of private inheritance when no explicit protection keyword is present.
+
+SIP_SUPPORT            = NO
+
+# For Microsoft's IDL there are propget and propput attributes to indicate
+# getter and setter methods for a property. Setting this option to YES (the
+# default) will make doxygen replace the get and set methods by a property in
+# the documentation. This will only work if the methods are indeed getting or
+# setting a simple type. If this is not the case, or you want to show the
+# methods anyway, you should set this option to NO.
+
+IDL_PROPERTY_SUPPORT   = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC   = NO
+
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
+# the same type (for instance a group of public functions) to be put as a
+# subgroup of that type (e.g. under the Public Functions section). Set it to
+# NO to prevent subgrouping. Alternatively, this can be done per class using
+# the \nosubgrouping command.
+
+SUBGROUPING            = YES
+
+# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and
+# unions are shown inside the group in which they are included (e.g. using
+# @ingroup) instead of on a separate page (for HTML and Man pages) or
+# section (for LaTeX and RTF).
+
+INLINE_GROUPED_CLASSES = NO
+
+# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and
+# unions with only public data fields or simple typedef fields will be shown
+# inline in the documentation of the scope in which they are defined (i.e. file,
+# namespace, or group documentation), provided this scope is documented. If set
+# to NO (the default), structs, classes, and unions are shown on a separate
+# page (for HTML and Man pages) or section (for LaTeX and RTF).
+
+INLINE_SIMPLE_STRUCTS  = NO
+
+# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
+# is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically
+# be useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+
+TYPEDEF_HIDES_STRUCT   = NO
+
+# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
+# cache is used to resolve symbols given their name and scope. Since this can
+# be an expensive process and often the same symbol appear multiple times in
+# the code, doxygen keeps a cache of pre-resolved symbols. If the cache is too
+# small doxygen will become slower. If the cache is too large, memory is wasted.
+# The cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid
+# range is 0..9, the default is 0, corresponding to a cache size of 2^16 = 65536
+# symbols.
+
+LOOKUP_CACHE_SIZE      = 0
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+# documentation are documented, even if no documentation was available.
+# Private class members and static file members will be hidden unless
+# the EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL            = YES
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
+# will be included in the documentation.
+
+EXTRACT_PRIVATE        = NO
+
+# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal
+# scope will be included in the documentation.
+
+EXTRACT_PACKAGE        = NO
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file
+# will be included in the documentation.
+
+EXTRACT_STATIC         = YES
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
+# defined locally in source files will be included in the documentation.
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES  = YES
+
+# This flag is only useful for Objective-C code. When set to YES local
+# methods, which are defined in the implementation section but not in
+# the interface are included in the documentation.
+# If set to NO (the default) only methods in the interface are included.
+
+EXTRACT_LOCAL_METHODS  = NO
+
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base
+# name of the file that contains the anonymous namespace. By default
+# anonymous namespaces are hidden.
+
+EXTRACT_ANON_NSPACES   = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
+# undocumented members of documented classes, files or namespaces.
+# If set to NO (the default) these members will be included in the
+# various overviews, but no documentation section is generated.
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS     = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy.
+# If set to NO (the default) these classes will be included in the various
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES     = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
+# friend (class|struct|union) declarations.
+# If set to NO (the default) these declarations will be included in the
+# documentation.
+
+HIDE_FRIEND_COMPOUNDS  = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
+# documentation blocks found inside the body of a function.
+# If set to NO (the default) these blocks will be appended to the
+# function's detailed documentation block.
+
+HIDE_IN_BODY_DOCS      = NO
+
+# The INTERNAL_DOCS tag determines if documentation
+# that is typed after a \internal command is included. If the tag is set
+# to NO (the default) then the documentation will be excluded.
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS          = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
+# file names in lower-case letters. If set to YES upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+
+CASE_SENSE_NAMES       = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
+# will show members with their full class and namespace scopes in the
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES       = NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
+# will put a list of the files that are included by a file in the documentation
+# of that file.
+
+SHOW_INCLUDE_FILES     = YES
+
+# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen
+# will list include files with double quotes in the documentation
+# rather than with sharp brackets.
+
+FORCE_LOCAL_INCLUDES   = NO
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
+# is inserted in the documentation for inline members.
+
+INLINE_INFO            = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
+# will sort the (detailed) documentation of file and class members
+# alphabetically by member name. If set to NO the members will appear in
+# declaration order.
+
+SORT_MEMBER_DOCS       = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
+# brief documentation of file, namespace and class members alphabetically
+# by member name. If set to NO (the default) the members will appear in
+# declaration order.
+
+SORT_BRIEF_DOCS        = NO
+
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
+# will sort the (brief and detailed) documentation of class members so that
+# constructors and destructors are listed first. If set to NO (the default)
+# the constructors will appear in the respective orders defined by
+# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
+# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
+# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
+# hierarchy of group names into alphabetical order. If set to NO (the default)
+# the group names will appear in their defined order.
+
+SORT_GROUP_NAMES       = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
+# sorted by fully-qualified names, including namespaces. If set to
+# NO (the default), the class list will be sorted only by class name,
+# not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the
+# alphabetical list.
+
+SORT_BY_SCOPE_NAME     = NO
+
+# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to
+# do proper type resolution of all parameters of a function it will reject a
+# match between the prototype and the implementation of a member function even
+# if there is only one candidate or it is obvious which candidate to choose
+# by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen
+# will still accept a match between prototype and implementation in such cases.
+
+STRICT_PROTO_MATCHING  = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or
+# disable (NO) the todo list. This list is created by putting \todo
+# commands in the documentation.
+
+GENERATE_TODOLIST      = NO
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or
+# disable (NO) the test list. This list is created by putting \test
+# commands in the documentation.
+
+GENERATE_TESTLIST      = NO
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or
+# disable (NO) the bug list. This list is created by putting \bug
+# commands in the documentation.
+
+GENERATE_BUGLIST       = NO
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
+# disable (NO) the deprecated list. This list is created by putting
+# \deprecated commands in the documentation.
+
+GENERATE_DEPRECATEDLIST= NO
+
+# The ENABLED_SECTIONS tag can be used to enable conditional
+# documentation sections, marked by \if section-label ... \endif
+# and \cond section-label ... \endcond blocks.
+
+ENABLED_SECTIONS       =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
+# the initial value of a variable or macro consists of for it to appear in
+# the documentation. If the initializer consists of more lines than specified
+# here it will be hidden. Use a value of 0 to hide initializers completely.
+# The appearance of the initializer of individual variables and macros in the
+# documentation can be controlled using \showinitializer or \hideinitializer
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES  = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
+# at the bottom of the documentation of classes and structs. If set to YES the
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES        = YES
+
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
+# This will remove the Files entry from the Quick Index and from the
+# Folder Tree View (if specified). The default is YES.
+
+SHOW_FILES             = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
+# Namespaces page.
+# This will remove the Namespaces entry from the Quick Index
+# and from the Folder Tree View (if specified). The default is YES.
+
+SHOW_NAMESPACES        = NO
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command <command> <input-file>, where <command> is the value of
+# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
+# provided by doxygen. Whatever the program writes to standard output
+# is used as the file version. See the manual for examples.
+
+FILE_VERSION_FILTER    =
+
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
+# by doxygen. The layout file controls the global structure of the generated
+# output files in an output format independent way. To create the layout file
+# that represents doxygen's defaults, run doxygen with the -l option.
+# You can optionally specify a file name after the option, if omitted
+# DoxygenLayout.xml will be used as the name of the layout file.
+
+LAYOUT_FILE            =
+
+# The CITE_BIB_FILES tag can be used to specify one or more bib files
+# containing the references data. This must be a list of .bib files. The
+# .bib extension is automatically appended if omitted. Using this command
+# requires the bibtex tool to be installed. See also
+# http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style
+# of the bibliography can be controlled using LATEX_BIB_STYLE. To use this
+# feature you need bibtex and perl available in the search path. Do not use
+# file names with spaces, bibtex cannot handle them.
+
+CITE_BIB_FILES         =
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET                  = YES
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated by doxygen. Possible values are YES and NO. If left blank
+# NO is used.
+
+WARNINGS               = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
+# automatically be disabled.
+
+WARN_IF_UNDOCUMENTED   = YES
+
+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some
+# parameters in a documented function, or documenting parameters that
+# don't exist or using markup commands wrongly.
+
+WARN_IF_DOC_ERROR      = YES
+
+# The WARN_NO_PARAMDOC option can be enabled to get warnings for
+# functions that are documented, but have no documentation for their parameters
+# or return value. If set to NO (the default) doxygen will only warn about
+# wrong or incomplete parameter documentation, but not about the absence of
+# documentation.
+
+WARN_NO_PARAMDOC       = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that
+# doxygen can produce. The string should contain the $file, $line, and $text
+# tags, which will be replaced by the file and line number from which the
+# warning originated and the warning text. Optionally the format may contain
+# $version, which will be replaced by the version of the file (if it could
+# be obtained via FILE_VERSION_FILTER)
+
+WARN_FORMAT            = "$file:$line: $text  "
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning
+# and error messages should be written. If left blank the output is written
+# to stderr.
+
+WARN_LOGFILE           =
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain
+# documented source files. You may enter file names like "myfile.cpp" or
+# directories like "/usr/src/myproject". Separate the files or directories
+# with spaces.
+
+INPUT                  = "@top_srcdir@" \
+                         "@top_builddir@"
+
+# This tag can be used to specify the character encoding of the source files
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
+# also the default input encoding. Doxygen uses libiconv (or the iconv built
+# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
+# the list of possible encodings.
+
+INPUT_ENCODING         = UTF-8
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank the following patterns are tested:
+# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh
+# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py
+# *.f90 *.f *.for *.vhd *.vhdl
+
+FILE_PATTERNS          = *.h \
+                         *.dox
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories
+# should be searched for input files as well. Possible values are YES and NO.
+# If left blank NO is used.
+
+RECURSIVE              = YES
+
+# The EXCLUDE tag can be used to specify files and/or directories that should be
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+# Note that relative paths are relative to the directory from which doxygen is
+# run.
+
+EXCLUDE                = @abs_top_builddir@/docs/doxygen/html \
+                         @abs_top_builddir@/docs/doxygen/xml \
+                         @abs_top_builddir@/docs/doxygen/other/doxypy.py \
+                         @abs_top_builddir@/_CPack_Packages \
+                         @abs_top_srcdir@/cmake
+
+# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
+# directories that are symbolic links (a Unix file system feature) are excluded
+# from the input.
+
+EXCLUDE_SYMLINKS       = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories. Note that the wildcards are matched
+# against the file with absolute path, so to exclude all test directories
+# for example use the pattern */test/*
+
+EXCLUDE_PATTERNS       = */.deps/* \
+                         */.libs/* \
+                         */.svn/* \
+                         */CVS/* \
+                         */__init__.py \
+                         */qa_*.cc \
+                         */qa_*.h \
+                         */qa_*.py
+
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
+# AClass::ANamespace, ANamespace::*Test
+
+EXCLUDE_SYMBOLS        = ad9862 \
+                         numpy \
+                         *my_top_block* \
+                         *my_graph* \
+                         *app_top_block* \
+                         *am_rx_graph* \
+                         *_queue_watcher_thread* \
+                         *parse* \
+                         *MyFrame* \
+                         *MyApp* \
+                         *PyObject* \
+                         *wfm_rx_block* \
+                         *_sptr* \
+                         *debug* \
+                         *wfm_rx_sca_block* \
+                         *tv_rx_block* \
+                         *wxapt_rx_block* \
+                         *example_signal*
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or
+# directories that contain example code fragments that are included (see
+# the \include command).
+
+EXAMPLE_PATH           =
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank all files are included.
+
+EXAMPLE_PATTERNS       =
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude
+# commands irrespective of the value of the RECURSIVE tag.
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE      = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or
+# directories that contain image that are included in the documentation (see
+# the \image command).
+
+IMAGE_PATH             =
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command <filter> <input-file>, where <filter>
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
+# input file. Doxygen will then use the output that the filter program writes
+# to standard output.
+# If FILTER_PATTERNS is specified, this tag will be ignored.
+# Note that the filter must not add or remove lines; it is applied before the
+# code is scanned, but not when the output code is generated. If lines are added
+# or removed, the anchors will not be placed correctly.
+
+INPUT_FILTER           =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis.
+# Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match.
+# The filters are a list of the form:
+# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
+# info on how filters are used. If FILTER_PATTERNS is empty or if
+# non of the patterns match the file name, INPUT_FILTER is applied.
+
+FILTER_PATTERNS        = *.py=@top_srcdir@/docs/doxygen/other/doxypy.py
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will be used to filter the input files when producing source
+# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+
+FILTER_SOURCE_FILES    = NO
+
+# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
+# pattern. A pattern will override the setting for FILTER_PATTERN (if any)
+# and it is also possible to disable source filtering for a specific pattern
+# using *.ext= (so without naming a filter). This option only has effect when
+# FILTER_SOURCE_FILES is enabled.
+
+FILTER_SOURCE_PATTERNS =
+
+# If the USE_MD_FILE_AS_MAINPAGE tag refers to the name of a markdown file that
+# is part of the input, its contents will be placed on the main page
+# (index.html). This can be useful if you have a project on for instance GitHub
+# and want reuse the introduction page also for the doxygen output.
+
+USE_MDFILE_AS_MAINPAGE =
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will
+# be generated. Documented entities will be cross-referenced with these sources.
+# Note: To get rid of all source code in the generated output, make sure also
+# VERBATIM_HEADERS is set to NO.
+
+SOURCE_BROWSER         = NO
+
+# Setting the INLINE_SOURCES tag to YES will include the body
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES         = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
+# doxygen to hide any special comment blocks from generated source code
+# fragments. Normal C, C++ and Fortran comments will always remain visible.
+
+STRIP_CODE_COMMENTS    = NO
+
+# If the REFERENCED_BY_RELATION tag is set to YES
+# then for each documented function all documented
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = YES
+
+# If the REFERENCES_RELATION tag is set to YES
+# then for each documented function all documented entities
+# called/used by that function will be listed.
+
+REFERENCES_RELATION    = YES
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
+# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
+# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
+# link to the source code.
+# Otherwise they will link to the documentation.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code
+# will point to the HTML generated by the htags(1) tool instead of doxygen
+# built-in source browser. The htags tool is part of GNU's global source
+# tagging system (see http://www.gnu.org/software/global/global.html). You
+# will need version 4.8.6 or higher.
+
+USE_HTAGS              = NO
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
+# will generate a verbatim copy of the header file for each class for
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS       = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
+# of all compounds will be generated. Enable this if the project
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX     = YES
+
+# In case all classes in a project start with a common prefix, all
+# classes will be put under the same header in the alphabetical index.
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX          =
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
+# generate HTML output.
+
+GENERATE_HTML          = @enable_html_docs@
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT            = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
+# doxygen will generate files with .html extension.
+
+HTML_FILE_EXTENSION    = .html
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard header. Note that when using a custom header you are responsible
+#  for the proper inclusion of any scripts and style sheets that doxygen
+# needs, which is dependent on the configuration options used.
+# It is advised to generate a default header using "doxygen -w html
+# header.html footer.html stylesheet.css YourConfigFile" and then modify
+# that header. Note that the header is subject to change so you typically
+# have to redo this when upgrading to a newer version of doxygen or when
+# changing the value of configuration settings such as GENERATE_TREEVIEW!
+
+HTML_HEADER            =
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard footer.
+
+HTML_FOOTER            =
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
+# style sheet that is used by each HTML page. It can be used to
+# fine-tune the look of the HTML output. If left blank doxygen will
+# generate a default style sheet. Note that it is recommended to use
+# HTML_EXTRA_STYLESHEET instead of this one, as it is more robust and this
+# tag will in the future become obsolete.
+
+HTML_STYLESHEET        =
+
+# The HTML_EXTRA_STYLESHEET tag can be used to specify an additional
+# user-defined cascading style sheet that is included after the standard
+# style sheets created by doxygen. Using this option one can overrule
+# certain style aspects. This is preferred over using HTML_STYLESHEET
+# since it does not replace the standard style sheet and is therefore more
+# robust against future updates. Doxygen will copy the style sheet file to
+# the output directory.
+
+HTML_EXTRA_STYLESHEET  =
+
+# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the HTML output directory. Note
+# that these files will be copied to the base HTML output directory. Use the
+# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
+# files. In the HTML_STYLESHEET file, use the file name only. Also note that
+# the files will be copied as-is; there are no commands or markers available.
+
+HTML_EXTRA_FILES       =
+
+# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
+# Doxygen will adjust the colors in the style sheet and background images
+# according to this color. Hue is specified as an angle on a colorwheel,
+# see http://en.wikipedia.org/wiki/Hue for more information.
+# For instance the value 0 represents red, 60 is yellow, 120 is green,
+# 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
+# The allowed range is 0 to 359.
+
+HTML_COLORSTYLE_HUE    = 220
+
+# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of
+# the colors in the HTML output. For a value of 0 the output will use
+# grayscales only. A value of 255 will produce the most vivid colors.
+
+HTML_COLORSTYLE_SAT    = 100
+
+# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to
+# the luminance component of the colors in the HTML output. Values below
+# 100 gradually make the output lighter, whereas values above 100 make
+# the output darker. The value divided by 100 is the actual gamma applied,
+# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,
+# and 100 does not change the gamma.
+
+HTML_COLORSTYLE_GAMMA  = 80
+
+# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
+# page will contain the date and time when the page was generated. Setting
+# this to NO can help when comparing the output of multiple runs.
+
+HTML_TIMESTAMP         = NO
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded.
+
+HTML_DYNAMIC_SECTIONS  = NO
+
+# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of
+# entries shown in the various tree structured indices initially; the user
+# can expand and collapse entries dynamically later on. Doxygen will expand
+# the tree to such a level that at most the specified number of entries are
+# visible (unless a fully collapsed tree already exceeds this amount).
+# So setting the number of entries 1 will produce a full collapsed tree by
+# default. 0 is a special value representing an infinite number of entries
+# and will result in a full expanded tree by default.
+
+HTML_INDEX_NUM_ENTRIES = 100
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files
+# will be generated that can be used as input for Apple's Xcode 3
+# integrated development environment, introduced with OSX 10.5 (Leopard).
+# To create a documentation set, doxygen will generate a Makefile in the
+# HTML output directory. Running make will produce the docset in that
+# directory and running "make install" will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
+# it at startup.
+# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
+# for more information.
+
+GENERATE_DOCSET        = NO
+
+# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
+# feed. A documentation feed provides an umbrella under which multiple
+# documentation sets from a single provider (such as a company or product suite)
+# can be grouped.
+
+DOCSET_FEEDNAME        = "Doxygen generated docs"
+
+# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
+# should uniquely identify the documentation set bundle. This should be a
+# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
+# will append .docset to the name.
+
+DOCSET_BUNDLE_ID       = org.doxygen.Project
+
+# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely
+# identify the documentation publisher. This should be a reverse domain-name
+# style string, e.g. com.mycompany.MyDocSet.documentation.
+
+DOCSET_PUBLISHER_ID    = org.doxygen.Publisher
+
+# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
+
+DOCSET_PUBLISHER_NAME  = Publisher
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files
+# will be generated that can be used as input for tools like the
+# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP      = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
+# be used to specify the file name of the resulting .chm file. You
+# can add a path in front of the file if the result should not be
+# written to the html output directory.
+
+CHM_FILE               =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
+# be used to specify the location (absolute path including file name) of
+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
+# the HTML help compiler on the generated index.hhp.
+
+HHC_LOCATION           =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
+# controls if a separate .chi index file is generated (YES) or that
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI           = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
+# is used to encode HtmlHelp index (hhk), content (hhc) and project file
+# content.
+
+CHM_INDEX_ENCODING     =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
+# controls whether a binary table of contents is generated (YES) or a
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members
+# to the contents of the HTML help documentation and to the tree view.
+
+TOC_EXPAND             = YES
+
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
+# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated
+# that can be used as input for Qt's qhelpgenerator to generate a
+# Qt Compressed Help (.qch) of the generated HTML documentation.
+
+GENERATE_QHP           = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
+# be used to specify the file name of the resulting .qch file.
+# The path specified is relative to the HTML output folder.
+
+QCH_FILE               =
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating
+# Qt Help Project output. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#namespace
+
+QHP_NAMESPACE          = org.doxygen.Project
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
+# Qt Help Project output. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#virtual-folders
+
+QHP_VIRTUAL_FOLDER     = doc
+
+# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to
+# add. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#custom-filters
+
+QHP_CUST_FILTER_NAME   =
+
+# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the
+# custom filter to add. For more information please see
+# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">
+# Qt Help Project / Custom Filters</a>.
+
+QHP_CUST_FILTER_ATTRS  =
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
+# project's
+# filter section matches.
+# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">
+# Qt Help Project / Filter Attributes</a>.
+
+QHP_SECT_FILTER_ATTRS  =
+
+# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
+# be used to specify the location of Qt's qhelpgenerator.
+# If non-empty doxygen will try to run qhelpgenerator on the generated
+# .qhp file.
+
+QHG_LOCATION           =
+
+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
+#  will be generated, which together with the HTML files, form an Eclipse help
+# plugin. To install this plugin and make it available under the help contents
+# menu in Eclipse, the contents of the directory containing the HTML and XML
+# files needs to be copied into the plugins directory of eclipse. The name of
+# the directory within the plugins directory should be the same as
+# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before
+# the help appears.
+
+GENERATE_ECLIPSEHELP   = NO
+
+# A unique identifier for the eclipse help plugin. When installing the plugin
+# the directory name containing the HTML and XML files should also have
+# this name.
+
+ECLIPSE_DOC_ID         = org.doxygen.Project
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs)
+# at top of each HTML page. The value NO (the default) enables the index and
+# the value YES disables it. Since the tabs have the same information as the
+# navigation tree you can set this option to NO if you already set
+# GENERATE_TREEVIEW to YES.
+
+DISABLE_INDEX          = YES
+
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+# structure should be generated to display hierarchical information.
+# If the tag value is set to YES, a side panel will be generated
+# containing a tree-like index structure (just like the one that
+# is generated for HTML Help). For this to work a browser that supports
+# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
+# Windows users are probably better off using the HTML help feature.
+# Since the tree basically has the same information as the tab index you
+# could consider to set DISABLE_INDEX to NO when enabling this option.
+
+GENERATE_TREEVIEW      = YES
+
+# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values
+# (range [0,1..20]) that doxygen will group on one line in the generated HTML
+# documentation. Note that a value of 0 will completely suppress the enum
+# values from appearing in the overview section.
+
+ENUM_VALUES_PER_LINE   = 4
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
+# used to set the initial width (in pixels) of the frame in which the tree
+# is shown.
+
+TREEVIEW_WIDTH         = 180
+
+# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open
+# links to external symbols imported via tag files in a separate window.
+
+EXT_LINKS_IN_WINDOW    = NO
+
+# Use this tag to change the font size of Latex formulas included
+# as images in the HTML documentation. The default is 10. Note that
+# when you change the font size after a successful doxygen run you need
+# to manually remove any form_*.png images from the HTML output directory
+# to force them to be regenerated.
+
+FORMULA_FONTSIZE       = 10
+
+# Use the FORMULA_TRANPARENT tag to determine whether or not the images
+# generated for formulas are transparent PNGs. Transparent PNGs are
+# not supported properly for IE 6.0, but are supported on all modern browsers.
+# Note that when changing this option you need to delete any form_*.png files
+# in the HTML output before the changes have effect.
+
+FORMULA_TRANSPARENT    = YES
+
+# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax
+# (see http://www.mathjax.org) which uses client side Javascript for the
+# rendering instead of using prerendered bitmaps. Use this if you do not
+# have LaTeX installed or if you want to formulas look prettier in the HTML
+# output. When enabled you may also need to install MathJax separately and
+# configure the path to it using the MATHJAX_RELPATH option.
+
+USE_MATHJAX            = @enable_mathjax@
+
+# When MathJax is enabled you can set the default output format to be used for
+# the MathJax output. Supported types are HTML-CSS, NativeMML (i.e. MathML) and
+# SVG. The default value is HTML-CSS, which is slower, but has the best
+# compatibility.
+
+MATHJAX_FORMAT         = SVG
+
+# When MathJax is enabled you need to specify the location relative to the
+# HTML output directory using the MATHJAX_RELPATH option. The destination
+# directory should contain the MathJax.js script. For instance, if the mathjax
+# directory is located at the same level as the HTML output directory, then
+# MATHJAX_RELPATH should be ../mathjax. The default value points to
+# the MathJax Content Delivery Network so you can quickly see the result without
+# installing MathJax.
+# However, it is strongly recommended to install a local
+# copy of MathJax from http://www.mathjax.org before deployment.
+
+MATHJAX_RELPATH        = @MATHJAX2_PATH@
+
+# The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension
+# names that should be enabled during MathJax rendering.
+
+MATHJAX_EXTENSIONS     = TeX/AMSmath TeX/AMSsymbols
+
+# The MATHJAX_CODEFILE tag can be used to specify a file with javascript
+# pieces of code that will be used on startup of the MathJax code.
+
+MATHJAX_CODEFILE       =
+
+# When the SEARCHENGINE tag is enabled doxygen will generate a search box
+# for the HTML output. The underlying search engine uses javascript
+# and DHTML and should work on any modern browser. Note that when using
+# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets
+# (GENERATE_DOCSET) there is already a search function so this one should
+# typically be disabled. For large projects the javascript based search engine
+# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
+
+SEARCHENGINE           = NO
+
+# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
+# implemented using a web server instead of a web client using Javascript.
+# There are two flavours of web server based search depending on the
+# EXTERNAL_SEARCH setting. When disabled, doxygen will generate a PHP script for
+# searching and an index file used by the script. When EXTERNAL_SEARCH is
+# enabled the indexing and searching needs to be provided by external tools.
+# See the manual for details.
+
+SERVER_BASED_SEARCH    = NO
+
+# When EXTERNAL_SEARCH is enabled doxygen will no longer generate the PHP
+# script for searching. Instead the search results are written to an XML file
+# which needs to be processed by an external indexer. Doxygen will invoke an
+# external search engine pointed to by the SEARCHENGINE_URL option to obtain
+# the search results. Doxygen ships with an example indexer (doxyindexer) and
+# search engine (doxysearch.cgi) which are based on the open source search
+# engine library Xapian. See the manual for configuration details.
+
+EXTERNAL_SEARCH        = NO
+
+# The SEARCHENGINE_URL should point to a search engine hosted by a web server
+# which will returned the search results when EXTERNAL_SEARCH is enabled.
+# Doxygen ships with an example search engine (doxysearch) which is based on
+# the open source search engine library Xapian. See the manual for configuration
+# details.
+
+SEARCHENGINE_URL       =
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
+# search data is written to a file for indexing by an external tool. With the
+# SEARCHDATA_FILE tag the name of this file can be specified.
+
+SEARCHDATA_FILE        = searchdata.xml
+
+# When SERVER_BASED_SEARCH AND EXTERNAL_SEARCH are both enabled the
+# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
+# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
+# projects and redirect the results back to the right project.
+
+EXTERNAL_SEARCH_ID     =
+
+# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
+# projects other than the one defined by this configuration file, but that are
+# all added to the same external search index. Each project needs to have a
+# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id
+# of to a relative location where the documentation can be found.
+# The format is: EXTRA_SEARCH_MAPPINGS = id1=loc1 id2=loc2 ...
+
+EXTRA_SEARCH_MAPPINGS  =
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
+# generate Latex output.
+
+GENERATE_LATEX         = @enable_latex_docs@
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT           = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked. If left blank `latex' will be used as the default command name.
+# Note that when enabling USE_PDFLATEX this option is only used for
+# generating bitmaps for formulas in the HTML output, but not in the
+# Makefile that is written to the output directory.
+
+LATEX_CMD_NAME         = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
+# generate index for LaTeX. If left blank `makeindex' will be used as the
+# default command name.
+
+MAKEINDEX_CMD_NAME     = makeindex
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
+# LaTeX documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_LATEX          = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used
+# by the printer. Possible values are: a4, letter, legal and
+# executive. If left blank a4 will be used.
+
+PAPER_TYPE             = letter
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES         =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
+# the generated latex document. The header should contain everything until
+# the first chapter. If it is left blank doxygen will generate a
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER           =
+
+# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for
+# the generated latex document. The footer should contain everything after
+# the last chapter. If it is left blank doxygen will generate a
+# standard footer. Notice: only use this tag if you know what you are doing!
+
+LATEX_FOOTER           =
+
+# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images
+# or other source files which should be copied to the LaTeX output directory.
+# Note that the files will be copied as-is; there are no commands or markers
+# available.
+
+LATEX_EXTRA_FILES      =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will
+# contain links (just like the HTML output) instead of page references
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS         = YES
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
+# plain latex in the generated Makefile. Set this option to YES to get a
+# higher quality PDF documentation.
+
+USE_PDFLATEX           = NO
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
+# command to the generated LaTeX files. This will instruct LaTeX to keep
+# running if errors occur, instead of asking the user for help.
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE        = NO
+
+# If LATEX_HIDE_INDICES is set to YES then doxygen will not
+# include the index chapters (such as File Index, Compound Index, etc.)
+# in the output.
+
+LATEX_HIDE_INDICES     = NO
+
+# If LATEX_SOURCE_CODE is set to YES then doxygen will include
+# source code with syntax highlighting in the LaTeX output.
+# Note that which sources are shown also depends on other settings
+# such as SOURCE_BROWSER.
+
+LATEX_SOURCE_CODE      = NO
+
+# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
+# bibliography, e.g. plainnat, or ieeetr. The default style is "plain". See
+# http://en.wikipedia.org/wiki/BibTeX for more info.
+
+LATEX_BIB_STYLE        = plain
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
+# The RTF output is optimized for Word 97 and may not look very pretty with
+# other RTF readers or editors.
+
+GENERATE_RTF           = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT             = rtf
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
+# RTF documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_RTF            = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
+# will contain hyperlink fields. The RTF file will
+# contain links (just like the HTML output) instead of page references.
+# This makes the output suitable for online browsing using WORD or other
+# programs which support those fields.
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS         = NO
+
+# Load style sheet definitions from file. Syntax is similar to doxygen's
+# config file, i.e. a series of assignments. You only have to provide
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE    =
+
+# Set optional variables used in the generation of an rtf document.
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE    =
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
+# generate man pages
+
+GENERATE_MAN           = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT             = man
+
+# The MAN_EXTENSION tag determines the extension that is added to
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION          = .3
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
+# then it will generate one additional man file for each entity
+# documented in the real man page(s). These additional files
+# only source the real man page, but without them the man command
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS              = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will
+# generate an XML file that captures the structure of
+# the code including all documentation.
+
+GENERATE_XML           = @enable_xml_docs@
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `xml' will be used as the default path.
+
+XML_OUTPUT             = xml
+
+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
+# dump the program listings (including syntax highlighting
+# and cross-referencing information) to the XML output. Note that
+# enabling this will significantly increase the size of the XML output.
+
+XML_PROGRAMLISTING     = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the DOCBOOK output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_DOCBOOK tag is set to YES Doxygen will generate DOCBOOK files
+# that can be used to generate PDF.
+
+GENERATE_DOCBOOK       = NO
+
+# The DOCBOOK_OUTPUT tag is used to specify where the DOCBOOK pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
+# front of it. If left blank docbook will be used as the default path.
+
+DOCBOOK_OUTPUT         = docbook
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
+# generate an AutoGen Definitions (see autogen.sf.net) file
+# that captures the structure of the code including all
+# documentation. Note that this feature is still experimental
+# and incomplete at the moment.
+
+GENERATE_AUTOGEN_DEF   = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES Doxygen will
+# generate a Perl module file that captures the structure of
+# the code including all documentation. Note that this
+# feature is still experimental and incomplete at the
+# moment.
+
+GENERATE_PERLMOD       = NO
+
+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
+# the necessary Makefile rules, Perl scripts and LaTeX code to be able
+# to generate PDF and DVI output from the Perl module output.
+
+PERLMOD_LATEX          = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
+# nicely formatted so it can be parsed by a human reader.
+# This is useful
+# if you want to understand what is going on.
+# On the other hand, if this
+# tag is set to NO the size of the Perl module output will be much smaller
+# and Perl will parse it just the same.
+
+PERLMOD_PRETTY         = YES
+
+# The names of the make variables in the generated doxyrules.make file
+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
+# This is useful so different doxyrules.make files included by the same
+# Makefile don't overwrite each other's variables.
+
+PERLMOD_MAKEVAR_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
+# evaluate all C-preprocessor directives found in the sources and include
+# files.
+
+ENABLE_PREPROCESSING   = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
+# names in the source code. If set to NO (the default) only conditional
+# compilation will be performed. Macro expansion can be done in a controlled
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION        = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
+# then the macro expansion is limited to the macros specified with the
+# PREDEFINED and EXPAND_AS_DEFINED tags.
+
+EXPAND_ONLY_PREDEF     = NO
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
+# pointed to by INCLUDE_PATH will be searched when a #include is found.
+
+SEARCH_INCLUDES        = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by
+# the preprocessor.
+
+INCLUDE_PATH           =
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will
+# be used.
+
+INCLUDE_FILE_PATTERNS  =
+
+# The PREDEFINED tag can be used to specify one or more macro names that
+# are defined before the preprocessor is started (similar to the -D option of
+# gcc). The argument of the tag is a list of macros of the form: name
+# or name=definition (no spaces). If the definition and the = are
+# omitted =1 is assumed. To prevent a macro definition from being
+# undefined via #undef or recursively expanded use the := operator
+# instead of the = operator.
+
+PREDEFINED             =
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
+# this tag can be used to specify a list of macro names that should be expanded.
+# The macro definition that is found in the sources will be used.
+# Use the PREDEFINED tag if you want to use a different macro definition that
+# overrules the definition found in the source code.
+
+EXPAND_AS_DEFINED      =
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
+# doxygen's preprocessor will remove all references to function-like macros
+# that are alone on a line, have an all uppercase name, and do not end with a
+# semicolon, because these will confuse the parser if not removed.
+
+SKIP_FUNCTION_MACROS   = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES option can be used to specify one or more tagfiles. For each
+# tag file the location of the external documentation should be added. The
+# format of a tag file without this location is as follows:
+#
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+#
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where "loc1" and "loc2" can be relative or absolute paths
+# or URLs. Note that each tag file must have a unique name (where the name does
+# NOT include the path). If a tag file is not located in the directory in which
+# doxygen is run, you must also specify the path to the tagfile here.
+
+TAGFILES               =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE       =
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed
+# in the class index. If set to NO only the inherited external classes
+# will be listed.
+
+ALLEXTERNALS           = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will
+# be listed.
+
+EXTERNAL_GROUPS        = YES
+
+# If the EXTERNAL_PAGES tag is set to YES all external pages will be listed
+# in the related pages index. If set to NO, only the current project's
+# pages will be listed.
+
+EXTERNAL_PAGES         = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
+# or super classes. Setting the tag to NO turns the diagrams off. Note that
+# this option also works with HAVE_DOT disabled, but it is recommended to
+# install and use dot, since it yields more powerful graphs.
+
+CLASS_DIAGRAMS         = YES
+
+# If set to YES, the inheritance and collaboration graphs will hide
+# inheritance and usage relations if the target is undocumented
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS   = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz, a graph visualization
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT               = @HAVE_DOT@
+
+# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is
+# allowed to run in parallel. When set to 0 (the default) doxygen will
+# base this on the number of processors available in the system. You can set it
+# explicitly to a value larger than 0 to get control over the balance
+# between CPU load and processing speed.
+
+DOT_NUM_THREADS        = 0
+
+# By default doxygen will use the Helvetica font for all dot files that
+# doxygen generates. When you want a differently looking font you can specify
+# the font name using DOT_FONTNAME. You need to make sure dot is able to find
+# the font, which can be done by putting it in a standard location or by setting
+# the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the
+# directory containing the font.
+
+DOT_FONTNAME           = Helvetica
+
+# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
+# The default size is 10pt.
+
+DOT_FONTSIZE           = 10
+
+# By default doxygen will tell dot to use the Helvetica font.
+# If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to
+# set the path where dot can find it.
+
+DOT_FONTPATH           =
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect inheritance relations. Setting this tag to YES will force the
+# CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH            = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect implementation dependencies (inheritance, containment, and
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH    = NO
+
+# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for groups, showing the direct groups dependencies
+
+GROUP_GRAPHS           = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+
+UML_LOOK               = NO
+
+# If the UML_LOOK tag is enabled, the fields and methods are shown inside
+# the class node. If there are many fields or methods and many nodes the
+# graph may become too big to be useful. The UML_LIMIT_NUM_FIELDS
+# threshold limits the number of items for each type to make the size more
+# manageable. Set this to 0 for no limit. Note that the threshold may be
+# exceeded by 50% before the limit is enforced.
+
+UML_LIMIT_NUM_FIELDS   = 10
+
+# If set to YES, the inheritance and collaboration graphs will show the
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS     = NO
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
+# tags are set to YES then doxygen will generate a graph for each documented
+# file showing the direct and indirect include dependencies of the file with
+# other documented files.
+
+INCLUDE_GRAPH          = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
+# documented header file showing the documented files that directly or
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH      = YES
+
+# If the CALL_GRAPH and HAVE_DOT options are set to YES then
+# doxygen will generate a call dependency graph for every global function
+# or class method. Note that enabling this option will significantly increase
+# the time of a run. So in most cases it will be better to enable call graphs
+# for selected functions only using the \callgraph command.
+
+CALL_GRAPH             = NO
+
+# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
+# doxygen will generate a caller dependency graph for every global function
+# or class method. Note that enabling this option will significantly increase
+# the time of a run. So in most cases it will be better to enable caller
+# graphs for selected functions only using the \callergraph command.
+
+CALLER_GRAPH           = NO
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
+# will generate a graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY    = YES
+
+# If the DIRECTORY_GRAPH and HAVE_DOT tags are set to YES
+# then doxygen will show the dependencies a directory has on other directories
+# in a graphical way. The dependency relations are determined by the #include
+# relations between the files in the directories.
+
+DIRECTORY_GRAPH        = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot. Possible values are svg, png, jpg, or gif.
+# If left blank png will be used. If you choose svg you need to set
+# HTML_FILE_EXTENSION to xhtml in order to make the SVG files
+# visible in IE 9+ (other browsers do not have this requirement).
+
+DOT_IMAGE_FORMAT       = svg
+
+# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
+# enable generation of interactive SVG images that allow zooming and panning.
+# Note that this requires a modern browser other than Internet Explorer.
+# Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you
+# need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files
+# visible. Older versions of IE do not have SVG support.
+
+INTERACTIVE_SVG        = NO
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+
+DOT_PATH               =
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the
+# \dotfile command).
+
+DOTFILE_DIRS           =
+
+# The MSCFILE_DIRS tag can be used to specify one or more directories that
+# contain msc files that are included in the documentation (see the
+# \mscfile command).
+
+MSCFILE_DIRS           =
+
+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
+# nodes that will be shown in the graph. If the number of nodes in a graph
+# becomes larger than this value, doxygen will truncate the graph, which is
+# visualized by representing a node as a red box. Note that doxygen if the
+# number of direct children of the root node in a graph is already larger than
+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
+# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+
+DOT_GRAPH_MAX_NODES    = 50
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
+# graphs generated by dot. A depth value of 3 means that only nodes reachable
+# from the root by following a path via at most 3 edges will be shown. Nodes
+# that lay further from the root node will be omitted. Note that setting this
+# option to 1 or 2 may greatly reduce the computation time needed for large
+# code bases. Also note that the size of a graph can be further restricted by
+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+
+MAX_DOT_GRAPH_DEPTH    = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, because dot on Windows does not
+# seem to support this out of the box. Warning: Depending on the platform used,
+# enabling this option may lead to badly anti-aliased labels on the edges of
+# a graph (i.e. they become hard to read).
+
+DOT_TRANSPARENT        = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10)
+# support this, this feature is disabled by default.
+
+DOT_MULTI_TARGETS      = YES
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
+# generate a legend page explaining the meaning of the various boxes and
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
+# remove the intermediate dot files that are used to generate
+# the various graphs.
+
+DOT_CLEANUP            = YES
diff --git a/docs/doxygen/doxyxml/__init__.py b/docs/doxygen/doxyxml/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..761bc0b2308662c58e6d90dfcd5f07703212f076
--- /dev/null
+++ b/docs/doxygen/doxyxml/__init__.py
@@ -0,0 +1,72 @@
+#
+# Copyright 2010 Free Software Foundation, Inc.
+#
+# This file was generated by gr_modtool, a tool from the GNU Radio framework
+# This file is a part of gr-cdc
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+#
+"""
+Python interface to contents of doxygen xml documentation.
+
+Example use:
+See the contents of the example folder for the C++ and
+doxygen-generated xml used in this example.
+
+>>> # Parse the doxygen docs.
+>>> import os
+>>> this_dir = os.path.dirname(globals()['__file__'])
+>>> xml_path = this_dir + "/example/xml/"
+>>> di = DoxyIndex(xml_path)
+
+Get a list of all top-level objects.
+
+>>> print([mem.name() for mem in di.members()])
+[u'Aadvark', u'aadvarky_enough', u'main']
+
+Get all functions.
+
+>>> print([mem.name() for mem in di.in_category(DoxyFunction)])
+[u'aadvarky_enough', u'main']
+
+Check if an object is present.
+
+>>> di.has_member(u'Aadvark')
+True
+>>> di.has_member(u'Fish')
+False
+
+Get an item by name and check its properties.
+
+>>> aad = di.get_member(u'Aadvark')
+>>> print(aad.brief_description)
+Models the mammal Aadvark.
+>>> print(aad.detailed_description)
+Sadly the model is incomplete and cannot capture all aspects of an aadvark yet.
+<BLANKLINE>
+This line is uninformative and is only to test line breaks in the comments.
+>>> [mem.name() for mem in aad.members()]
+[u'aadvarkness', u'print', u'Aadvark', u'get_aadvarkness']
+>>> aad.get_member(u'print').brief_description
+u'Outputs the vital aadvark statistics.'
+
+"""
+
+from .doxyindex import DoxyIndex, DoxyFunction, DoxyParam, DoxyClass, DoxyFile, DoxyNamespace, DoxyGroup, DoxyFriend, DoxyOther
+
+
+def _test():
+    import os
+    this_dir = os.path.dirname(globals()['__file__'])
+    xml_path = this_dir + "/example/xml/"
+    di = DoxyIndex(xml_path)
+    # Get the Aadvark class
+    aad = di.get_member('Aadvark')
+    aad.brief_description
+    import doctest
+    return doctest.testmod()
+
+
+if __name__ == "__main__":
+    _test()
diff --git a/docs/doxygen/doxyxml/base.py b/docs/doxygen/doxyxml/base.py
new file mode 100644
index 0000000000000000000000000000000000000000..a3e64aee590e37c08f58b4b09aff7350e583d358
--- /dev/null
+++ b/docs/doxygen/doxyxml/base.py
@@ -0,0 +1,208 @@
+#
+# Copyright 2010 Free Software Foundation, Inc.
+#
+# This file was generated by gr_modtool, a tool from the GNU Radio framework
+# This file is a part of gr-cdc
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+#
+"""
+A base class is created.
+
+Classes based upon this are used to make more user-friendly interfaces
+to the doxygen xml docs than the generated classes provide.
+"""
+
+import os
+import pdb
+
+from xml.parsers.expat import ExpatError
+
+from .generated import compound
+
+
+class Base(object):
+
+    class Duplicate(Exception):
+        pass
+
+    class NoSuchMember(Exception):
+        pass
+
+    class ParsingError(Exception):
+        pass
+
+    def __init__(self, parse_data, top=None):
+        self._parsed = False
+        self._error = False
+        self._parse_data = parse_data
+        self._members = []
+        self._dict_members = {}
+        self._in_category = {}
+        self._data = {}
+        if top is not None:
+            self._xml_path = top._xml_path
+            # Set up holder of references
+        else:
+            top = self
+            self._refs = {}
+            self._xml_path = parse_data
+        self.top = top
+
+    @classmethod
+    def from_refid(cls, refid, top=None):
+        """ Instantiate class from a refid rather than parsing object. """
+        # First check to see if its already been instantiated.
+        if top is not None and refid in top._refs:
+            return top._refs[refid]
+        # Otherwise create a new instance and set refid.
+        inst = cls(None, top=top)
+        inst.refid = refid
+        inst.add_ref(inst)
+        return inst
+
+    @classmethod
+    def from_parse_data(cls, parse_data, top=None):
+        refid = getattr(parse_data, 'refid', None)
+        if refid is not None and top is not None and refid in top._refs:
+            return top._refs[refid]
+        inst = cls(parse_data, top=top)
+        if refid is not None:
+            inst.refid = refid
+            inst.add_ref(inst)
+        return inst
+
+    def add_ref(self, obj):
+        if hasattr(obj, 'refid'):
+            self.top._refs[obj.refid] = obj
+
+    mem_classes = []
+
+    def get_cls(self, mem):
+        for cls in self.mem_classes:
+            if cls.can_parse(mem):
+                return cls
+        raise Exception(("Did not find a class for object '%s'."
+                         % (mem.get_name())))
+
+    def convert_mem(self, mem):
+        try:
+            cls = self.get_cls(mem)
+            converted = cls.from_parse_data(mem, self.top)
+            if converted is None:
+                raise Exception('No class matched this object.')
+            self.add_ref(converted)
+            return converted
+        except Exception as e:
+            print(e)
+
+    @classmethod
+    def includes(cls, inst):
+        return isinstance(inst, cls)
+
+    @classmethod
+    def can_parse(cls, obj):
+        return False
+
+    def _parse(self):
+        self._parsed = True
+
+    def _get_dict_members(self, cat=None):
+        """
+        For given category a dictionary is returned mapping member names to
+        members of that category.  For names that are duplicated the name is
+        mapped to None.
+        """
+        self.confirm_no_error()
+        if cat not in self._dict_members:
+            new_dict = {}
+            for mem in self.in_category(cat):
+                if mem.name() not in new_dict:
+                    new_dict[mem.name()] = mem
+                else:
+                    new_dict[mem.name()] = self.Duplicate
+            self._dict_members[cat] = new_dict
+        return self._dict_members[cat]
+
+    def in_category(self, cat):
+        self.confirm_no_error()
+        if cat is None:
+            return self._members
+        if cat not in self._in_category:
+            self._in_category[cat] = [mem for mem in self._members
+                                      if cat.includes(mem)]
+        return self._in_category[cat]
+
+    def get_member(self, name, cat=None):
+        self.confirm_no_error()
+        # Check if it's in a namespace or class.
+        bits = name.split('::')
+        first = bits[0]
+        rest = '::'.join(bits[1:])
+        member = self._get_dict_members(cat).get(first, self.NoSuchMember)
+        # Raise any errors that are returned.
+        if member in set([self.NoSuchMember, self.Duplicate]):
+            raise member()
+        if rest:
+            return member.get_member(rest, cat=cat)
+        return member
+
+    def has_member(self, name, cat=None):
+        try:
+            mem = self.get_member(name, cat=cat)
+            return True
+        except self.NoSuchMember:
+            return False
+
+    def data(self):
+        self.confirm_no_error()
+        return self._data
+
+    def members(self):
+        self.confirm_no_error()
+        return self._members
+
+    def process_memberdefs(self):
+        mdtss = []
+        for sec in self._retrieved_data.compounddef.sectiondef:
+            mdtss += sec.memberdef
+        # At the moment we lose all information associated with sections.
+        # Sometimes a memberdef is in several sectiondef.
+        # We make sure we don't get duplicates here.
+        uniques = set([])
+        for mem in mdtss:
+            converted = self.convert_mem(mem)
+            pair = (mem.name, mem.__class__)
+            if pair not in uniques:
+                uniques.add(pair)
+                self._members.append(converted)
+
+    def retrieve_data(self):
+        filename = os.path.join(self._xml_path, self.refid + '.xml')
+        try:
+            self._retrieved_data = compound.parse(filename)
+        except ExpatError:
+            print('Error in xml in file %s' % filename)
+            self._error = True
+            self._retrieved_data = None
+
+    def check_parsed(self):
+        if not self._parsed:
+            self._parse()
+
+    def confirm_no_error(self):
+        self.check_parsed()
+        if self._error:
+            raise self.ParsingError()
+
+    def error(self):
+        self.check_parsed()
+        return self._error
+
+    def name(self):
+        # first see if we can do it without processing.
+        if self._parse_data is not None:
+            return self._parse_data.name
+        self.check_parsed()
+        return self._retrieved_data.compounddef.name
diff --git a/docs/doxygen/doxyxml/doxyindex.py b/docs/doxygen/doxyxml/doxyindex.py
new file mode 100644
index 0000000000000000000000000000000000000000..37f26c6fb12bec9faa7fa3eb7a450fe0d6d08604
--- /dev/null
+++ b/docs/doxygen/doxyxml/doxyindex.py
@@ -0,0 +1,295 @@
+#
+# Copyright 2010 Free Software Foundation, Inc.
+#
+# This file was generated by gr_modtool, a tool from the GNU Radio framework
+# This file is a part of gr-cdc
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+#
+"""
+Classes providing more user-friendly interfaces to the doxygen xml
+docs than the generated classes provide.
+"""
+
+import os
+
+from .generated import index
+from .base import Base
+from .text import description
+
+
+class DoxyIndex(Base):
+    """
+    Parses a doxygen xml directory.
+    """
+
+    __module__ = "gnuradio.utils.doxyxml"
+
+    def _parse(self):
+        if self._parsed:
+            return
+        super(DoxyIndex, self)._parse()
+        self._root = index.parse(os.path.join(self._xml_path, 'index.xml'))
+        for mem in self._root.compound:
+            converted = self.convert_mem(mem)
+            # For files and namespaces we want the contents to be
+            # accessible directly from the parent rather than having
+            # to go through the file object.
+            if self.get_cls(mem) == DoxyFile:
+                if mem.name.endswith('.h'):
+                    self._members += converted.members()
+                    self._members.append(converted)
+            elif self.get_cls(mem) == DoxyNamespace:
+                self._members += converted.members()
+                self._members.append(converted)
+            else:
+                self._members.append(converted)
+
+
+class DoxyCompMem(Base):
+
+    kind = None
+
+    def __init__(self, *args, **kwargs):
+        super(DoxyCompMem, self).__init__(*args, **kwargs)
+
+    @classmethod
+    def can_parse(cls, obj):
+        return obj.kind == cls.kind
+
+    def set_descriptions(self, parse_data):
+        bd = description(getattr(parse_data, 'briefdescription', None))
+        dd = description(getattr(parse_data, 'detaileddescription', None))
+        self._data['brief_description'] = bd
+        self._data['detailed_description'] = dd
+
+    def set_parameters(self, data):
+        vs = [ddc.value for ddc in data.detaileddescription.content_]
+        pls = []
+        for v in vs:
+            if hasattr(v, 'parameterlist'):
+                pls += v.parameterlist
+        pis = []
+        for pl in pls:
+            pis += pl.parameteritem
+        dpis = []
+        for pi in pis:
+            dpi = DoxyParameterItem(pi)
+            dpi._parse()
+            dpis.append(dpi)
+        self._data['params'] = dpis
+
+
+class DoxyCompound(DoxyCompMem):
+    pass
+
+
+class DoxyMember(DoxyCompMem):
+    pass
+
+
+class DoxyFunction(DoxyMember):
+
+    __module__ = "gnuradio.utils.doxyxml"
+
+    kind = 'function'
+
+    def _parse(self):
+        if self._parsed:
+            return
+        super(DoxyFunction, self)._parse()
+        self.set_descriptions(self._parse_data)
+        self.set_parameters(self._parse_data)
+        if not self._data['params']:
+            # If the params weren't set by a comment then just grab the names.
+            self._data['params'] = []
+            prms = self._parse_data.param
+            for prm in prms:
+                self._data['params'].append(DoxyParam(prm))
+
+    brief_description = property(lambda self: self.data()['brief_description'])
+    detailed_description = property(
+        lambda self: self.data()['detailed_description'])
+    params = property(lambda self: self.data()['params'])
+
+
+Base.mem_classes.append(DoxyFunction)
+
+
+class DoxyParam(DoxyMember):
+
+    __module__ = "gnuradio.utils.doxyxml"
+
+    def _parse(self):
+        if self._parsed:
+            return
+        super(DoxyParam, self)._parse()
+        self.set_descriptions(self._parse_data)
+        self._data['declname'] = self._parse_data.declname
+
+    @property
+    def description(self):
+        descriptions = []
+        if self.brief_description:
+            descriptions.append(self.brief_description)
+        if self.detailed_description:
+            descriptions.append(self.detailed_description)
+        return '\n\n'.join(descriptions)
+
+    brief_description = property(lambda self: self.data()['brief_description'])
+    detailed_description = property(
+        lambda self: self.data()['detailed_description'])
+    name = property(lambda self: self.data()['declname'])
+
+
+class DoxyParameterItem(DoxyMember):
+    """A different representation of a parameter in Doxygen."""
+
+    def _parse(self):
+        if self._parsed:
+            return
+        super(DoxyParameterItem, self)._parse()
+        names = []
+        for nl in self._parse_data.parameternamelist:
+            for pn in nl.parametername:
+                names.append(description(pn))
+        # Just take first name
+        self._data['name'] = names[0]
+        # Get description
+        pd = description(self._parse_data.get_parameterdescription())
+        self._data['description'] = pd
+
+    description = property(lambda self: self.data()['description'])
+    name = property(lambda self: self.data()['name'])
+
+
+class DoxyClass(DoxyCompound):
+
+    __module__ = "gnuradio.utils.doxyxml"
+
+    kind = 'class'
+
+    def _parse(self):
+        if self._parsed:
+            return
+        super(DoxyClass, self)._parse()
+        self.retrieve_data()
+        if self._error:
+            return
+        self.set_descriptions(self._retrieved_data.compounddef)
+        self.set_parameters(self._retrieved_data.compounddef)
+        # Sectiondef.kind tells about whether private or public.
+        # We just ignore this for now.
+        self.process_memberdefs()
+
+    brief_description = property(lambda self: self.data()['brief_description'])
+    detailed_description = property(
+        lambda self: self.data()['detailed_description'])
+    params = property(lambda self: self.data()['params'])
+
+
+Base.mem_classes.append(DoxyClass)
+
+
+class DoxyFile(DoxyCompound):
+
+    __module__ = "gnuradio.utils.doxyxml"
+
+    kind = 'file'
+
+    def _parse(self):
+        if self._parsed:
+            return
+        super(DoxyFile, self)._parse()
+        self.retrieve_data()
+        self.set_descriptions(self._retrieved_data.compounddef)
+        if self._error:
+            return
+        self.process_memberdefs()
+
+    brief_description = property(lambda self: self.data()['brief_description'])
+    detailed_description = property(
+        lambda self: self.data()['detailed_description'])
+
+
+Base.mem_classes.append(DoxyFile)
+
+
+class DoxyNamespace(DoxyCompound):
+
+    __module__ = "gnuradio.utils.doxyxml"
+
+    kind = 'namespace'
+
+    def _parse(self):
+        if self._parsed:
+            return
+        super(DoxyNamespace, self)._parse()
+        self.retrieve_data()
+        self.set_descriptions(self._retrieved_data.compounddef)
+        if self._error:
+            return
+        self.process_memberdefs()
+
+
+Base.mem_classes.append(DoxyNamespace)
+
+
+class DoxyGroup(DoxyCompound):
+
+    __module__ = "gnuradio.utils.doxyxml"
+
+    kind = 'group'
+
+    def _parse(self):
+        if self._parsed:
+            return
+        super(DoxyGroup, self)._parse()
+        self.retrieve_data()
+        if self._error:
+            return
+        cdef = self._retrieved_data.compounddef
+        self._data['title'] = description(cdef.title)
+        # Process inner groups
+        grps = cdef.innergroup
+        for grp in grps:
+            converted = DoxyGroup.from_refid(grp.refid, top=self.top)
+            self._members.append(converted)
+        # Process inner classes
+        klasses = cdef.innerclass
+        for kls in klasses:
+            converted = DoxyClass.from_refid(kls.refid, top=self.top)
+            self._members.append(converted)
+        # Process normal members
+        self.process_memberdefs()
+
+    title = property(lambda self: self.data()['title'])
+
+
+Base.mem_classes.append(DoxyGroup)
+
+
+class DoxyFriend(DoxyMember):
+
+    __module__ = "gnuradio.utils.doxyxml"
+
+    kind = 'friend'
+
+
+Base.mem_classes.append(DoxyFriend)
+
+
+class DoxyOther(Base):
+
+    __module__ = "gnuradio.utils.doxyxml"
+
+    kinds = set(['variable', 'struct', 'union', 'define', 'typedef', 'enum',
+                 'dir', 'page', 'signal', 'slot', 'property'])
+
+    @classmethod
+    def can_parse(cls, obj):
+        return obj.kind in cls.kinds
+
+
+Base.mem_classes.append(DoxyOther)
diff --git a/docs/doxygen/doxyxml/generated/__init__.py b/docs/doxygen/doxyxml/generated/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..39823979f603553278ef1c12041b8c979fe8c1d2
--- /dev/null
+++ b/docs/doxygen/doxyxml/generated/__init__.py
@@ -0,0 +1,7 @@
+"""
+Contains generated files produced by generateDS.py.
+
+These do the real work of parsing the doxygen xml files but the
+resultant classes are not very friendly to navigate so the rest of the
+doxyxml module processes them further.
+"""
diff --git a/docs/doxygen/doxyxml/generated/compound.py b/docs/doxygen/doxyxml/generated/compound.py
new file mode 100644
index 0000000000000000000000000000000000000000..321328bcb7e769d871caf1014fd8ba296501dd16
--- /dev/null
+++ b/docs/doxygen/doxyxml/generated/compound.py
@@ -0,0 +1,620 @@
+#!/usr/bin/env python
+
+"""
+Generated Mon Feb  9 19:08:05 2009 by generateDS.py.
+"""
+
+
+from xml.dom import minidom
+from xml.dom import Node
+
+import sys
+
+from . import compoundsuper as supermod
+from .compoundsuper import MixedContainer
+
+
+class DoxygenTypeSub(supermod.DoxygenType):
+    def __init__(self, version=None, compounddef=None):
+        supermod.DoxygenType.__init__(self, version, compounddef)
+
+    def find(self, details):
+
+        return self.compounddef.find(details)
+
+
+supermod.DoxygenType.subclass = DoxygenTypeSub
+# end class DoxygenTypeSub
+
+
+class compounddefTypeSub(supermod.compounddefType):
+    def __init__(self, kind=None, prot=None, id=None, compoundname='', title='', basecompoundref=None, derivedcompoundref=None, includes=None, includedby=None, incdepgraph=None, invincdepgraph=None, innerdir=None, innerfile=None, innerclass=None, innernamespace=None, innerpage=None, innergroup=None, templateparamlist=None, sectiondef=None, briefdescription=None, detaileddescription=None, inheritancegraph=None, collaborationgraph=None, programlisting=None, location=None, listofallmembers=None):
+        supermod.compounddefType.__init__(self, kind, prot, id, compoundname, title, basecompoundref, derivedcompoundref, includes, includedby, incdepgraph, invincdepgraph, innerdir, innerfile, innerclass,
+                                          innernamespace, innerpage, innergroup, templateparamlist, sectiondef, briefdescription, detaileddescription, inheritancegraph, collaborationgraph, programlisting, location, listofallmembers)
+
+    def find(self, details):
+
+        if self.id == details.refid:
+            return self
+
+        for sectiondef in self.sectiondef:
+            result = sectiondef.find(details)
+            if result:
+                return result
+
+
+supermod.compounddefType.subclass = compounddefTypeSub
+# end class compounddefTypeSub
+
+
+class listofallmembersTypeSub(supermod.listofallmembersType):
+    def __init__(self, member=None):
+        supermod.listofallmembersType.__init__(self, member)
+
+
+supermod.listofallmembersType.subclass = listofallmembersTypeSub
+# end class listofallmembersTypeSub
+
+
+class memberRefTypeSub(supermod.memberRefType):
+    def __init__(self, virt=None, prot=None, refid=None, ambiguityscope=None, scope='', name=''):
+        supermod.memberRefType.__init__(
+            self, virt, prot, refid, ambiguityscope, scope, name)
+
+
+supermod.memberRefType.subclass = memberRefTypeSub
+# end class memberRefTypeSub
+
+
+class compoundRefTypeSub(supermod.compoundRefType):
+    def __init__(self, virt=None, prot=None, refid=None, valueOf_='', mixedclass_=None, content_=None):
+        supermod.compoundRefType.__init__(self, mixedclass_, content_)
+
+
+supermod.compoundRefType.subclass = compoundRefTypeSub
+# end class compoundRefTypeSub
+
+
+class reimplementTypeSub(supermod.reimplementType):
+    def __init__(self, refid=None, valueOf_='', mixedclass_=None, content_=None):
+        supermod.reimplementType.__init__(self, mixedclass_, content_)
+
+
+supermod.reimplementType.subclass = reimplementTypeSub
+# end class reimplementTypeSub
+
+
+class incTypeSub(supermod.incType):
+    def __init__(self, local=None, refid=None, valueOf_='', mixedclass_=None, content_=None):
+        supermod.incType.__init__(self, mixedclass_, content_)
+
+
+supermod.incType.subclass = incTypeSub
+# end class incTypeSub
+
+
+class refTypeSub(supermod.refType):
+    def __init__(self, prot=None, refid=None, valueOf_='', mixedclass_=None, content_=None):
+        supermod.refType.__init__(self, mixedclass_, content_)
+
+
+supermod.refType.subclass = refTypeSub
+# end class refTypeSub
+
+
+class refTextTypeSub(supermod.refTextType):
+    def __init__(self, refid=None, kindref=None, external=None, valueOf_='', mixedclass_=None, content_=None):
+        supermod.refTextType.__init__(self, mixedclass_, content_)
+
+
+supermod.refTextType.subclass = refTextTypeSub
+# end class refTextTypeSub
+
+
+class sectiondefTypeSub(supermod.sectiondefType):
+
+    def __init__(self, kind=None, header='', description=None, memberdef=None):
+        supermod.sectiondefType.__init__(
+            self, kind, header, description, memberdef)
+
+    def find(self, details):
+
+        for memberdef in self.memberdef:
+            if memberdef.id == details.refid:
+                return memberdef
+
+        return None
+
+
+supermod.sectiondefType.subclass = sectiondefTypeSub
+# end class sectiondefTypeSub
+
+
+class memberdefTypeSub(supermod.memberdefType):
+    def __init__(self, initonly=None, kind=None, volatile=None, const=None, raise_=None, virt=None, readable=None, prot=None, explicit=None, new=None, final=None, writable=None, add=None, static=None, remove=None, sealed=None, mutable=None, gettable=None, inline=None, settable=None, id=None, templateparamlist=None, type_=None, definition='', argsstring='', name='', read='', write='', bitfield='', reimplements=None, reimplementedby=None, param=None, enumvalue=None, initializer=None, exceptions=None, briefdescription=None, detaileddescription=None, inbodydescription=None, location=None, references=None, referencedby=None):
+        supermod.memberdefType.__init__(self, initonly, kind, volatile, const, raise_, virt, readable, prot, explicit, new, final, writable, add, static, remove, sealed, mutable, gettable, inline, settable, id, templateparamlist, type_,
+                                        definition, argsstring, name, read, write, bitfield, reimplements, reimplementedby, param, enumvalue, initializer, exceptions, briefdescription, detaileddescription, inbodydescription, location, references, referencedby)
+
+
+supermod.memberdefType.subclass = memberdefTypeSub
+# end class memberdefTypeSub
+
+
+class descriptionTypeSub(supermod.descriptionType):
+    def __init__(self, title='', para=None, sect1=None, internal=None, mixedclass_=None, content_=None):
+        supermod.descriptionType.__init__(self, mixedclass_, content_)
+
+
+supermod.descriptionType.subclass = descriptionTypeSub
+# end class descriptionTypeSub
+
+
+class enumvalueTypeSub(supermod.enumvalueType):
+    def __init__(self, prot=None, id=None, name='', initializer=None, briefdescription=None, detaileddescription=None, mixedclass_=None, content_=None):
+        supermod.enumvalueType.__init__(self, mixedclass_, content_)
+
+
+supermod.enumvalueType.subclass = enumvalueTypeSub
+# end class enumvalueTypeSub
+
+
+class templateparamlistTypeSub(supermod.templateparamlistType):
+    def __init__(self, param=None):
+        supermod.templateparamlistType.__init__(self, param)
+
+
+supermod.templateparamlistType.subclass = templateparamlistTypeSub
+# end class templateparamlistTypeSub
+
+
+class paramTypeSub(supermod.paramType):
+    def __init__(self, type_=None, declname='', defname='', array='', defval=None, briefdescription=None):
+        supermod.paramType.__init__(
+            self, type_, declname, defname, array, defval, briefdescription)
+
+
+supermod.paramType.subclass = paramTypeSub
+# end class paramTypeSub
+
+
+class linkedTextTypeSub(supermod.linkedTextType):
+    def __init__(self, ref=None, mixedclass_=None, content_=None):
+        supermod.linkedTextType.__init__(self, mixedclass_, content_)
+
+
+supermod.linkedTextType.subclass = linkedTextTypeSub
+# end class linkedTextTypeSub
+
+
+class graphTypeSub(supermod.graphType):
+    def __init__(self, node=None):
+        supermod.graphType.__init__(self, node)
+
+
+supermod.graphType.subclass = graphTypeSub
+# end class graphTypeSub
+
+
+class nodeTypeSub(supermod.nodeType):
+    def __init__(self, id=None, label='', link=None, childnode=None):
+        supermod.nodeType.__init__(self, id, label, link, childnode)
+
+
+supermod.nodeType.subclass = nodeTypeSub
+# end class nodeTypeSub
+
+
+class childnodeTypeSub(supermod.childnodeType):
+    def __init__(self, relation=None, refid=None, edgelabel=None):
+        supermod.childnodeType.__init__(self, relation, refid, edgelabel)
+
+
+supermod.childnodeType.subclass = childnodeTypeSub
+# end class childnodeTypeSub
+
+
+class linkTypeSub(supermod.linkType):
+    def __init__(self, refid=None, external=None, valueOf_=''):
+        supermod.linkType.__init__(self, refid, external)
+
+
+supermod.linkType.subclass = linkTypeSub
+# end class linkTypeSub
+
+
+class listingTypeSub(supermod.listingType):
+    def __init__(self, codeline=None):
+        supermod.listingType.__init__(self, codeline)
+
+
+supermod.listingType.subclass = listingTypeSub
+# end class listingTypeSub
+
+
+class codelineTypeSub(supermod.codelineType):
+    def __init__(self, external=None, lineno=None, refkind=None, refid=None, highlight=None):
+        supermod.codelineType.__init__(
+            self, external, lineno, refkind, refid, highlight)
+
+
+supermod.codelineType.subclass = codelineTypeSub
+# end class codelineTypeSub
+
+
+class highlightTypeSub(supermod.highlightType):
+    def __init__(self, class_=None, sp=None, ref=None, mixedclass_=None, content_=None):
+        supermod.highlightType.__init__(self, mixedclass_, content_)
+
+
+supermod.highlightType.subclass = highlightTypeSub
+# end class highlightTypeSub
+
+
+class referenceTypeSub(supermod.referenceType):
+    def __init__(self, endline=None, startline=None, refid=None, compoundref=None, valueOf_='', mixedclass_=None, content_=None):
+        supermod.referenceType.__init__(self, mixedclass_, content_)
+
+
+supermod.referenceType.subclass = referenceTypeSub
+# end class referenceTypeSub
+
+
+class locationTypeSub(supermod.locationType):
+    def __init__(self, bodystart=None, line=None, bodyend=None, bodyfile=None, file=None, valueOf_=''):
+        supermod.locationType.__init__(
+            self, bodystart, line, bodyend, bodyfile, file)
+
+
+supermod.locationType.subclass = locationTypeSub
+# end class locationTypeSub
+
+
+class docSect1TypeSub(supermod.docSect1Type):
+    def __init__(self, id=None, title='', para=None, sect2=None, internal=None, mixedclass_=None, content_=None):
+        supermod.docSect1Type.__init__(self, mixedclass_, content_)
+
+
+supermod.docSect1Type.subclass = docSect1TypeSub
+# end class docSect1TypeSub
+
+
+class docSect2TypeSub(supermod.docSect2Type):
+    def __init__(self, id=None, title='', para=None, sect3=None, internal=None, mixedclass_=None, content_=None):
+        supermod.docSect2Type.__init__(self, mixedclass_, content_)
+
+
+supermod.docSect2Type.subclass = docSect2TypeSub
+# end class docSect2TypeSub
+
+
+class docSect3TypeSub(supermod.docSect3Type):
+    def __init__(self, id=None, title='', para=None, sect4=None, internal=None, mixedclass_=None, content_=None):
+        supermod.docSect3Type.__init__(self, mixedclass_, content_)
+
+
+supermod.docSect3Type.subclass = docSect3TypeSub
+# end class docSect3TypeSub
+
+
+class docSect4TypeSub(supermod.docSect4Type):
+    def __init__(self, id=None, title='', para=None, internal=None, mixedclass_=None, content_=None):
+        supermod.docSect4Type.__init__(self, mixedclass_, content_)
+
+
+supermod.docSect4Type.subclass = docSect4TypeSub
+# end class docSect4TypeSub
+
+
+class docInternalTypeSub(supermod.docInternalType):
+    def __init__(self, para=None, sect1=None, mixedclass_=None, content_=None):
+        supermod.docInternalType.__init__(self, mixedclass_, content_)
+
+
+supermod.docInternalType.subclass = docInternalTypeSub
+# end class docInternalTypeSub
+
+
+class docInternalS1TypeSub(supermod.docInternalS1Type):
+    def __init__(self, para=None, sect2=None, mixedclass_=None, content_=None):
+        supermod.docInternalS1Type.__init__(self, mixedclass_, content_)
+
+
+supermod.docInternalS1Type.subclass = docInternalS1TypeSub
+# end class docInternalS1TypeSub
+
+
+class docInternalS2TypeSub(supermod.docInternalS2Type):
+    def __init__(self, para=None, sect3=None, mixedclass_=None, content_=None):
+        supermod.docInternalS2Type.__init__(self, mixedclass_, content_)
+
+
+supermod.docInternalS2Type.subclass = docInternalS2TypeSub
+# end class docInternalS2TypeSub
+
+
+class docInternalS3TypeSub(supermod.docInternalS3Type):
+    def __init__(self, para=None, sect3=None, mixedclass_=None, content_=None):
+        supermod.docInternalS3Type.__init__(self, mixedclass_, content_)
+
+
+supermod.docInternalS3Type.subclass = docInternalS3TypeSub
+# end class docInternalS3TypeSub
+
+
+class docInternalS4TypeSub(supermod.docInternalS4Type):
+    def __init__(self, para=None, mixedclass_=None, content_=None):
+        supermod.docInternalS4Type.__init__(self, mixedclass_, content_)
+
+
+supermod.docInternalS4Type.subclass = docInternalS4TypeSub
+# end class docInternalS4TypeSub
+
+
+class docURLLinkSub(supermod.docURLLink):
+    def __init__(self, url=None, valueOf_='', mixedclass_=None, content_=None):
+        supermod.docURLLink.__init__(self, mixedclass_, content_)
+
+
+supermod.docURLLink.subclass = docURLLinkSub
+# end class docURLLinkSub
+
+
+class docAnchorTypeSub(supermod.docAnchorType):
+    def __init__(self, id=None, valueOf_='', mixedclass_=None, content_=None):
+        supermod.docAnchorType.__init__(self, mixedclass_, content_)
+
+
+supermod.docAnchorType.subclass = docAnchorTypeSub
+# end class docAnchorTypeSub
+
+
+class docFormulaTypeSub(supermod.docFormulaType):
+    def __init__(self, id=None, valueOf_='', mixedclass_=None, content_=None):
+        supermod.docFormulaType.__init__(self, mixedclass_, content_)
+
+
+supermod.docFormulaType.subclass = docFormulaTypeSub
+# end class docFormulaTypeSub
+
+
+class docIndexEntryTypeSub(supermod.docIndexEntryType):
+    def __init__(self, primaryie='', secondaryie=''):
+        supermod.docIndexEntryType.__init__(self, primaryie, secondaryie)
+
+
+supermod.docIndexEntryType.subclass = docIndexEntryTypeSub
+# end class docIndexEntryTypeSub
+
+
+class docListTypeSub(supermod.docListType):
+    def __init__(self, listitem=None):
+        supermod.docListType.__init__(self, listitem)
+
+
+supermod.docListType.subclass = docListTypeSub
+# end class docListTypeSub
+
+
+class docListItemTypeSub(supermod.docListItemType):
+    def __init__(self, para=None):
+        supermod.docListItemType.__init__(self, para)
+
+
+supermod.docListItemType.subclass = docListItemTypeSub
+# end class docListItemTypeSub
+
+
+class docSimpleSectTypeSub(supermod.docSimpleSectType):
+    def __init__(self, kind=None, title=None, para=None):
+        supermod.docSimpleSectType.__init__(self, kind, title, para)
+
+
+supermod.docSimpleSectType.subclass = docSimpleSectTypeSub
+# end class docSimpleSectTypeSub
+
+
+class docVarListEntryTypeSub(supermod.docVarListEntryType):
+    def __init__(self, term=None):
+        supermod.docVarListEntryType.__init__(self, term)
+
+
+supermod.docVarListEntryType.subclass = docVarListEntryTypeSub
+# end class docVarListEntryTypeSub
+
+
+class docRefTextTypeSub(supermod.docRefTextType):
+    def __init__(self, refid=None, kindref=None, external=None, valueOf_='', mixedclass_=None, content_=None):
+        supermod.docRefTextType.__init__(self, mixedclass_, content_)
+
+
+supermod.docRefTextType.subclass = docRefTextTypeSub
+# end class docRefTextTypeSub
+
+
+class docTableTypeSub(supermod.docTableType):
+    def __init__(self, rows=None, cols=None, row=None, caption=None):
+        supermod.docTableType.__init__(self, rows, cols, row, caption)
+
+
+supermod.docTableType.subclass = docTableTypeSub
+# end class docTableTypeSub
+
+
+class docRowTypeSub(supermod.docRowType):
+    def __init__(self, entry=None):
+        supermod.docRowType.__init__(self, entry)
+
+
+supermod.docRowType.subclass = docRowTypeSub
+# end class docRowTypeSub
+
+
+class docEntryTypeSub(supermod.docEntryType):
+    def __init__(self, thead=None, para=None):
+        supermod.docEntryType.__init__(self, thead, para)
+
+
+supermod.docEntryType.subclass = docEntryTypeSub
+# end class docEntryTypeSub
+
+
+class docHeadingTypeSub(supermod.docHeadingType):
+    def __init__(self, level=None, valueOf_='', mixedclass_=None, content_=None):
+        supermod.docHeadingType.__init__(self, mixedclass_, content_)
+
+
+supermod.docHeadingType.subclass = docHeadingTypeSub
+# end class docHeadingTypeSub
+
+
+class docImageTypeSub(supermod.docImageType):
+    def __init__(self, width=None, type_=None, name=None, height=None, valueOf_='', mixedclass_=None, content_=None):
+        supermod.docImageType.__init__(self, mixedclass_, content_)
+
+
+supermod.docImageType.subclass = docImageTypeSub
+# end class docImageTypeSub
+
+
+class docDotFileTypeSub(supermod.docDotFileType):
+    def __init__(self, name=None, valueOf_='', mixedclass_=None, content_=None):
+        supermod.docDotFileType.__init__(self, mixedclass_, content_)
+
+
+supermod.docDotFileType.subclass = docDotFileTypeSub
+# end class docDotFileTypeSub
+
+
+class docTocItemTypeSub(supermod.docTocItemType):
+    def __init__(self, id=None, valueOf_='', mixedclass_=None, content_=None):
+        supermod.docTocItemType.__init__(self, mixedclass_, content_)
+
+
+supermod.docTocItemType.subclass = docTocItemTypeSub
+# end class docTocItemTypeSub
+
+
+class docTocListTypeSub(supermod.docTocListType):
+    def __init__(self, tocitem=None):
+        supermod.docTocListType.__init__(self, tocitem)
+
+
+supermod.docTocListType.subclass = docTocListTypeSub
+# end class docTocListTypeSub
+
+
+class docLanguageTypeSub(supermod.docLanguageType):
+    def __init__(self, langid=None, para=None):
+        supermod.docLanguageType.__init__(self, langid, para)
+
+
+supermod.docLanguageType.subclass = docLanguageTypeSub
+# end class docLanguageTypeSub
+
+
+class docParamListTypeSub(supermod.docParamListType):
+    def __init__(self, kind=None, parameteritem=None):
+        supermod.docParamListType.__init__(self, kind, parameteritem)
+
+
+supermod.docParamListType.subclass = docParamListTypeSub
+# end class docParamListTypeSub
+
+
+class docParamListItemSub(supermod.docParamListItem):
+    def __init__(self, parameternamelist=None, parameterdescription=None):
+        supermod.docParamListItem.__init__(
+            self, parameternamelist, parameterdescription)
+
+
+supermod.docParamListItem.subclass = docParamListItemSub
+# end class docParamListItemSub
+
+
+class docParamNameListSub(supermod.docParamNameList):
+    def __init__(self, parametername=None):
+        supermod.docParamNameList.__init__(self, parametername)
+
+
+supermod.docParamNameList.subclass = docParamNameListSub
+# end class docParamNameListSub
+
+
+class docParamNameSub(supermod.docParamName):
+    def __init__(self, direction=None, ref=None, mixedclass_=None, content_=None):
+        supermod.docParamName.__init__(self, mixedclass_, content_)
+
+
+supermod.docParamName.subclass = docParamNameSub
+# end class docParamNameSub
+
+
+class docXRefSectTypeSub(supermod.docXRefSectType):
+    def __init__(self, id=None, xreftitle=None, xrefdescription=None):
+        supermod.docXRefSectType.__init__(self, id, xreftitle, xrefdescription)
+
+
+supermod.docXRefSectType.subclass = docXRefSectTypeSub
+# end class docXRefSectTypeSub
+
+
+class docCopyTypeSub(supermod.docCopyType):
+    def __init__(self, link=None, para=None, sect1=None, internal=None):
+        supermod.docCopyType.__init__(self, link, para, sect1, internal)
+
+
+supermod.docCopyType.subclass = docCopyTypeSub
+# end class docCopyTypeSub
+
+
+class docCharTypeSub(supermod.docCharType):
+    def __init__(self, char=None, valueOf_=''):
+        supermod.docCharType.__init__(self, char)
+
+
+supermod.docCharType.subclass = docCharTypeSub
+# end class docCharTypeSub
+
+
+class docParaTypeSub(supermod.docParaType):
+    def __init__(self, char=None, valueOf_=''):
+        supermod.docParaType.__init__(self, char)
+
+        self.parameterlist = []
+        self.simplesects = []
+        self.content = []
+
+    def buildChildren(self, child_, nodeName_):
+        supermod.docParaType.buildChildren(self, child_, nodeName_)
+
+        if child_.nodeType == Node.TEXT_NODE:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                                    MixedContainer.TypeNone, '', child_.nodeValue)
+            self.content.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == "ref":
+            obj_ = supermod.docRefTextType.factory()
+            obj_.build(child_)
+            self.content.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'parameterlist':
+            obj_ = supermod.docParamListType.factory()
+            obj_.build(child_)
+            self.parameterlist.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'simplesect':
+            obj_ = supermod.docSimpleSectType.factory()
+            obj_.build(child_)
+            self.simplesects.append(obj_)
+
+
+supermod.docParaType.subclass = docParaTypeSub
+# end class docParaTypeSub
+
+
+def parse(inFilename):
+    doc = minidom.parse(inFilename)
+    rootNode = doc.documentElement
+    rootObj = supermod.DoxygenType.factory()
+    rootObj.build(rootNode)
+    return rootObj
diff --git a/docs/doxygen/doxyxml/generated/compoundsuper.py b/docs/doxygen/doxyxml/generated/compoundsuper.py
new file mode 100644
index 0000000000000000000000000000000000000000..40f548aab02cf087cd54de077c7e6236bf7705ce
--- /dev/null
+++ b/docs/doxygen/doxyxml/generated/compoundsuper.py
@@ -0,0 +1,9538 @@
+#!/usr/bin/env python
+
+#
+# Generated Thu Jun 11 18:44:25 2009 by generateDS.py.
+#
+
+
+import sys
+
+from xml.dom import minidom
+from xml.dom import Node
+
+#
+# User methods
+#
+# Calls to the methods in these classes are generated by generateDS.py.
+# You can replace these methods by re-implementing the following class
+#   in a module named generatedssuper.py.
+
+try:
+    from generatedssuper import GeneratedsSuper
+except ImportError as exp:
+
+    class GeneratedsSuper(object):
+        def format_string(self, input_data, input_name=''):
+            return input_data
+
+        def format_integer(self, input_data, input_name=''):
+            return '%d' % input_data
+
+        def format_float(self, input_data, input_name=''):
+            return '%f' % input_data
+
+        def format_double(self, input_data, input_name=''):
+            return '%e' % input_data
+
+        def format_boolean(self, input_data, input_name=''):
+            return '%s' % input_data
+
+
+#
+# If you have installed IPython you can uncomment and use the following.
+# IPython is available from http://ipython.scipy.org/.
+#
+
+## from IPython.Shell import IPShellEmbed
+## args = ''
+# ipshell = IPShellEmbed(args,
+##     banner = 'Dropping into IPython',
+# exit_msg = 'Leaving Interpreter, back to program.')
+
+# Then use the following line where and when you want to drop into the
+# IPython shell:
+#    ipshell('<some message> -- Entering ipshell.\nHit Ctrl-D to exit')
+
+#
+# Globals
+#
+
+ExternalEncoding = 'ascii'
+
+#
+# Support/utility functions.
+#
+
+
+def showIndent(outfile, level):
+    for idx in range(level):
+        outfile.write('    ')
+
+
+def quote_xml(inStr):
+    s1 = (isinstance(inStr, str) and inStr or
+          '%s' % inStr)
+    s1 = s1.replace('&', '&amp;')
+    s1 = s1.replace('<', '&lt;')
+    s1 = s1.replace('>', '&gt;')
+    return s1
+
+
+def quote_attrib(inStr):
+    s1 = (isinstance(inStr, str) and inStr or
+          '%s' % inStr)
+    s1 = s1.replace('&', '&amp;')
+    s1 = s1.replace('<', '&lt;')
+    s1 = s1.replace('>', '&gt;')
+    if '"' in s1:
+        if "'" in s1:
+            s1 = '"%s"' % s1.replace('"', "&quot;")
+        else:
+            s1 = "'%s'" % s1
+    else:
+        s1 = '"%s"' % s1
+    return s1
+
+
+def quote_python(inStr):
+    s1 = inStr
+    if s1.find("'") == -1:
+        if s1.find('\n') == -1:
+            return "'%s'" % s1
+        else:
+            return "'''%s'''" % s1
+    else:
+        if s1.find('"') != -1:
+            s1 = s1.replace('"', '\\"')
+        if s1.find('\n') == -1:
+            return '"%s"' % s1
+        else:
+            return '"""%s"""' % s1
+
+
+class MixedContainer(object):
+    # Constants for category:
+    CategoryNone = 0
+    CategoryText = 1
+    CategorySimple = 2
+    CategoryComplex = 3
+    # Constants for content_type:
+    TypeNone = 0
+    TypeText = 1
+    TypeString = 2
+    TypeInteger = 3
+    TypeFloat = 4
+    TypeDecimal = 5
+    TypeDouble = 6
+    TypeBoolean = 7
+
+    def __init__(self, category, content_type, name, value):
+        self.category = category
+        self.content_type = content_type
+        self.name = name
+        self.value = value
+
+    def getCategory(self):
+        return self.category
+
+    def getContenttype(self, content_type):
+        return self.content_type
+
+    def getValue(self):
+        return self.value
+
+    def getName(self):
+        return self.name
+
+    def export(self, outfile, level, name, namespace):
+        if self.category == MixedContainer.CategoryText:
+            outfile.write(self.value)
+        elif self.category == MixedContainer.CategorySimple:
+            self.exportSimple(outfile, level, name)
+        else:    # category == MixedContainer.CategoryComplex
+            self.value.export(outfile, level, namespace, name)
+
+    def exportSimple(self, outfile, level, name):
+        if self.content_type == MixedContainer.TypeString:
+            outfile.write('<%s>%s</%s>' % (self.name, self.value, self.name))
+        elif self.content_type == MixedContainer.TypeInteger or \
+                self.content_type == MixedContainer.TypeBoolean:
+            outfile.write('<%s>%d</%s>' % (self.name, self.value, self.name))
+        elif self.content_type == MixedContainer.TypeFloat or \
+                self.content_type == MixedContainer.TypeDecimal:
+            outfile.write('<%s>%f</%s>' % (self.name, self.value, self.name))
+        elif self.content_type == MixedContainer.TypeDouble:
+            outfile.write('<%s>%g</%s>' % (self.name, self.value, self.name))
+
+    def exportLiteral(self, outfile, level, name):
+        if self.category == MixedContainer.CategoryText:
+            showIndent(outfile, level)
+            outfile.write('MixedContainer(%d, %d, "%s", "%s"),\n' %
+                          (self.category, self.content_type, self.name, self.value))
+        elif self.category == MixedContainer.CategorySimple:
+            showIndent(outfile, level)
+            outfile.write('MixedContainer(%d, %d, "%s", "%s"),\n' %
+                          (self.category, self.content_type, self.name, self.value))
+        else:    # category == MixedContainer.CategoryComplex
+            showIndent(outfile, level)
+            outfile.write('MixedContainer(%d, %d, "%s",\n' %
+                          (self.category, self.content_type, self.name,))
+            self.value.exportLiteral(outfile, level + 1)
+            showIndent(outfile, level)
+            outfile.write(')\n')
+
+
+class _MemberSpec(object):
+    def __init__(self, name='', data_type='', container=0):
+        self.name = name
+        self.data_type = data_type
+        self.container = container
+
+    def set_name(self, name): self.name = name
+    def get_name(self): return self.name
+    def set_data_type(self, data_type): self.data_type = data_type
+    def get_data_type(self): return self.data_type
+    def set_container(self, container): self.container = container
+    def get_container(self): return self.container
+
+
+#
+# Data representation classes.
+#
+
+class DoxygenType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, version=None, compounddef=None):
+        self.version = version
+        self.compounddef = compounddef
+
+    def factory(*args_, **kwargs_):
+        if DoxygenType.subclass:
+            return DoxygenType.subclass(*args_, **kwargs_)
+        else:
+            return DoxygenType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_compounddef(self): return self.compounddef
+    def set_compounddef(self, compounddef): self.compounddef = compounddef
+    def get_version(self): return self.version
+    def set_version(self, version): self.version = version
+
+    def export(self, outfile, level, namespace_='', name_='DoxygenType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='DoxygenType')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='DoxygenType'):
+        outfile.write(' version=%s' % (quote_attrib(self.version), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='DoxygenType'):
+        if self.compounddef:
+            self.compounddef.export(
+                outfile, level, namespace_, name_='compounddef')
+
+    def hasContent_(self):
+        if (
+            self.compounddef is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='DoxygenType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.version is not None:
+            showIndent(outfile, level)
+            outfile.write('version = "%s",\n' % (self.version,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        if self.compounddef:
+            showIndent(outfile, level)
+            outfile.write('compounddef=model_.compounddefType(\n')
+            self.compounddef.exportLiteral(outfile, level, name_='compounddef')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('version'):
+            self.version = attrs.get('version').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'compounddef':
+            obj_ = compounddefType.factory()
+            obj_.build(child_)
+            self.set_compounddef(obj_)
+# end class DoxygenType
+
+
+class compounddefType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, kind=None, prot=None, id=None, compoundname=None, title=None, basecompoundref=None, derivedcompoundref=None, includes=None, includedby=None, incdepgraph=None, invincdepgraph=None, innerdir=None, innerfile=None, innerclass=None, innernamespace=None, innerpage=None, innergroup=None, templateparamlist=None, sectiondef=None, briefdescription=None, detaileddescription=None, inheritancegraph=None, collaborationgraph=None, programlisting=None, location=None, listofallmembers=None):
+        self.kind = kind
+        self.prot = prot
+        self.id = id
+        self.compoundname = compoundname
+        self.title = title
+        if basecompoundref is None:
+            self.basecompoundref = []
+        else:
+            self.basecompoundref = basecompoundref
+        if derivedcompoundref is None:
+            self.derivedcompoundref = []
+        else:
+            self.derivedcompoundref = derivedcompoundref
+        if includes is None:
+            self.includes = []
+        else:
+            self.includes = includes
+        if includedby is None:
+            self.includedby = []
+        else:
+            self.includedby = includedby
+        self.incdepgraph = incdepgraph
+        self.invincdepgraph = invincdepgraph
+        if innerdir is None:
+            self.innerdir = []
+        else:
+            self.innerdir = innerdir
+        if innerfile is None:
+            self.innerfile = []
+        else:
+            self.innerfile = innerfile
+        if innerclass is None:
+            self.innerclass = []
+        else:
+            self.innerclass = innerclass
+        if innernamespace is None:
+            self.innernamespace = []
+        else:
+            self.innernamespace = innernamespace
+        if innerpage is None:
+            self.innerpage = []
+        else:
+            self.innerpage = innerpage
+        if innergroup is None:
+            self.innergroup = []
+        else:
+            self.innergroup = innergroup
+        self.templateparamlist = templateparamlist
+        if sectiondef is None:
+            self.sectiondef = []
+        else:
+            self.sectiondef = sectiondef
+        self.briefdescription = briefdescription
+        self.detaileddescription = detaileddescription
+        self.inheritancegraph = inheritancegraph
+        self.collaborationgraph = collaborationgraph
+        self.programlisting = programlisting
+        self.location = location
+        self.listofallmembers = listofallmembers
+
+    def factory(*args_, **kwargs_):
+        if compounddefType.subclass:
+            return compounddefType.subclass(*args_, **kwargs_)
+        else:
+            return compounddefType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_compoundname(self): return self.compoundname
+    def set_compoundname(self, compoundname): self.compoundname = compoundname
+    def get_title(self): return self.title
+    def set_title(self, title): self.title = title
+    def get_basecompoundref(self): return self.basecompoundref
+    def set_basecompoundref(
+        self, basecompoundref): self.basecompoundref = basecompoundref
+
+    def add_basecompoundref(self, value): self.basecompoundref.append(value)
+    def insert_basecompoundref(
+        self, index, value): self.basecompoundref[index] = value
+
+    def get_derivedcompoundref(self): return self.derivedcompoundref
+
+    def set_derivedcompoundref(
+        self, derivedcompoundref): self.derivedcompoundref = derivedcompoundref
+
+    def add_derivedcompoundref(
+        self, value): self.derivedcompoundref.append(value)
+    def insert_derivedcompoundref(
+        self, index, value): self.derivedcompoundref[index] = value
+
+    def get_includes(self): return self.includes
+    def set_includes(self, includes): self.includes = includes
+    def add_includes(self, value): self.includes.append(value)
+    def insert_includes(self, index, value): self.includes[index] = value
+    def get_includedby(self): return self.includedby
+    def set_includedby(self, includedby): self.includedby = includedby
+    def add_includedby(self, value): self.includedby.append(value)
+    def insert_includedby(self, index, value): self.includedby[index] = value
+    def get_incdepgraph(self): return self.incdepgraph
+    def set_incdepgraph(self, incdepgraph): self.incdepgraph = incdepgraph
+    def get_invincdepgraph(self): return self.invincdepgraph
+    def set_invincdepgraph(
+        self, invincdepgraph): self.invincdepgraph = invincdepgraph
+
+    def get_innerdir(self): return self.innerdir
+    def set_innerdir(self, innerdir): self.innerdir = innerdir
+    def add_innerdir(self, value): self.innerdir.append(value)
+    def insert_innerdir(self, index, value): self.innerdir[index] = value
+    def get_innerfile(self): return self.innerfile
+    def set_innerfile(self, innerfile): self.innerfile = innerfile
+    def add_innerfile(self, value): self.innerfile.append(value)
+    def insert_innerfile(self, index, value): self.innerfile[index] = value
+    def get_innerclass(self): return self.innerclass
+    def set_innerclass(self, innerclass): self.innerclass = innerclass
+    def add_innerclass(self, value): self.innerclass.append(value)
+    def insert_innerclass(self, index, value): self.innerclass[index] = value
+    def get_innernamespace(self): return self.innernamespace
+    def set_innernamespace(
+        self, innernamespace): self.innernamespace = innernamespace
+
+    def add_innernamespace(self, value): self.innernamespace.append(value)
+    def insert_innernamespace(
+        self, index, value): self.innernamespace[index] = value
+
+    def get_innerpage(self): return self.innerpage
+    def set_innerpage(self, innerpage): self.innerpage = innerpage
+    def add_innerpage(self, value): self.innerpage.append(value)
+    def insert_innerpage(self, index, value): self.innerpage[index] = value
+    def get_innergroup(self): return self.innergroup
+    def set_innergroup(self, innergroup): self.innergroup = innergroup
+    def add_innergroup(self, value): self.innergroup.append(value)
+    def insert_innergroup(self, index, value): self.innergroup[index] = value
+    def get_templateparamlist(self): return self.templateparamlist
+    def set_templateparamlist(
+        self, templateparamlist): self.templateparamlist = templateparamlist
+
+    def get_sectiondef(self): return self.sectiondef
+    def set_sectiondef(self, sectiondef): self.sectiondef = sectiondef
+    def add_sectiondef(self, value): self.sectiondef.append(value)
+    def insert_sectiondef(self, index, value): self.sectiondef[index] = value
+    def get_briefdescription(self): return self.briefdescription
+    def set_briefdescription(
+        self, briefdescription): self.briefdescription = briefdescription
+
+    def get_detaileddescription(self): return self.detaileddescription
+    def set_detaileddescription(
+        self, detaileddescription): self.detaileddescription = detaileddescription
+
+    def get_inheritancegraph(self): return self.inheritancegraph
+    def set_inheritancegraph(
+        self, inheritancegraph): self.inheritancegraph = inheritancegraph
+
+    def get_collaborationgraph(self): return self.collaborationgraph
+    def set_collaborationgraph(
+        self, collaborationgraph): self.collaborationgraph = collaborationgraph
+
+    def get_programlisting(self): return self.programlisting
+    def set_programlisting(
+        self, programlisting): self.programlisting = programlisting
+
+    def get_location(self): return self.location
+    def set_location(self, location): self.location = location
+    def get_listofallmembers(self): return self.listofallmembers
+    def set_listofallmembers(
+        self, listofallmembers): self.listofallmembers = listofallmembers
+
+    def get_kind(self): return self.kind
+    def set_kind(self, kind): self.kind = kind
+    def get_prot(self): return self.prot
+    def set_prot(self, prot): self.prot = prot
+    def get_id(self): return self.id
+    def set_id(self, id): self.id = id
+
+    def export(self, outfile, level, namespace_='', name_='compounddefType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='compounddefType')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='compounddefType'):
+        if self.kind is not None:
+            outfile.write(' kind=%s' % (quote_attrib(self.kind), ))
+        if self.prot is not None:
+            outfile.write(' prot=%s' % (quote_attrib(self.prot), ))
+        if self.id is not None:
+            outfile.write(' id=%s' % (self.format_string(quote_attrib(
+                self.id).encode(ExternalEncoding), input_name='id'), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='compounddefType'):
+        if self.compoundname is not None:
+            showIndent(outfile, level)
+            outfile.write('<%scompoundname>%s</%scompoundname>\n' % (namespace_, self.format_string(
+                quote_xml(self.compoundname).encode(ExternalEncoding), input_name='compoundname'), namespace_))
+        if self.title is not None:
+            showIndent(outfile, level)
+            outfile.write('<%stitle>%s</%stitle>\n' % (namespace_, self.format_string(
+                quote_xml(self.title).encode(ExternalEncoding), input_name='title'), namespace_))
+        for basecompoundref_ in self.basecompoundref:
+            basecompoundref_.export(
+                outfile, level, namespace_, name_='basecompoundref')
+        for derivedcompoundref_ in self.derivedcompoundref:
+            derivedcompoundref_.export(
+                outfile, level, namespace_, name_='derivedcompoundref')
+        for includes_ in self.includes:
+            includes_.export(outfile, level, namespace_, name_='includes')
+        for includedby_ in self.includedby:
+            includedby_.export(outfile, level, namespace_, name_='includedby')
+        if self.incdepgraph:
+            self.incdepgraph.export(
+                outfile, level, namespace_, name_='incdepgraph')
+        if self.invincdepgraph:
+            self.invincdepgraph.export(
+                outfile, level, namespace_, name_='invincdepgraph')
+        for innerdir_ in self.innerdir:
+            innerdir_.export(outfile, level, namespace_, name_='innerdir')
+        for innerfile_ in self.innerfile:
+            innerfile_.export(outfile, level, namespace_, name_='innerfile')
+        for innerclass_ in self.innerclass:
+            innerclass_.export(outfile, level, namespace_, name_='innerclass')
+        for innernamespace_ in self.innernamespace:
+            innernamespace_.export(
+                outfile, level, namespace_, name_='innernamespace')
+        for innerpage_ in self.innerpage:
+            innerpage_.export(outfile, level, namespace_, name_='innerpage')
+        for innergroup_ in self.innergroup:
+            innergroup_.export(outfile, level, namespace_, name_='innergroup')
+        if self.templateparamlist:
+            self.templateparamlist.export(
+                outfile, level, namespace_, name_='templateparamlist')
+        for sectiondef_ in self.sectiondef:
+            sectiondef_.export(outfile, level, namespace_, name_='sectiondef')
+        if self.briefdescription:
+            self.briefdescription.export(
+                outfile, level, namespace_, name_='briefdescription')
+        if self.detaileddescription:
+            self.detaileddescription.export(
+                outfile, level, namespace_, name_='detaileddescription')
+        if self.inheritancegraph:
+            self.inheritancegraph.export(
+                outfile, level, namespace_, name_='inheritancegraph')
+        if self.collaborationgraph:
+            self.collaborationgraph.export(
+                outfile, level, namespace_, name_='collaborationgraph')
+        if self.programlisting:
+            self.programlisting.export(
+                outfile, level, namespace_, name_='programlisting')
+        if self.location:
+            self.location.export(outfile, level, namespace_, name_='location')
+        if self.listofallmembers:
+            self.listofallmembers.export(
+                outfile, level, namespace_, name_='listofallmembers')
+
+    def hasContent_(self):
+        if (
+            self.compoundname is not None or
+            self.title is not None or
+            self.basecompoundref is not None or
+            self.derivedcompoundref is not None or
+            self.includes is not None or
+            self.includedby is not None or
+            self.incdepgraph is not None or
+            self.invincdepgraph is not None or
+            self.innerdir is not None or
+            self.innerfile is not None or
+            self.innerclass is not None or
+            self.innernamespace is not None or
+            self.innerpage is not None or
+            self.innergroup is not None or
+            self.templateparamlist is not None or
+            self.sectiondef is not None or
+            self.briefdescription is not None or
+            self.detaileddescription is not None or
+            self.inheritancegraph is not None or
+            self.collaborationgraph is not None or
+            self.programlisting is not None or
+            self.location is not None or
+            self.listofallmembers is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='compounddefType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.kind is not None:
+            showIndent(outfile, level)
+            outfile.write('kind = "%s",\n' % (self.kind,))
+        if self.prot is not None:
+            showIndent(outfile, level)
+            outfile.write('prot = "%s",\n' % (self.prot,))
+        if self.id is not None:
+            showIndent(outfile, level)
+            outfile.write('id = %s,\n' % (self.id,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('compoundname=%s,\n' % quote_python(
+            self.compoundname).encode(ExternalEncoding))
+        if self.title:
+            showIndent(outfile, level)
+            outfile.write('title=model_.xsd_string(\n')
+            self.title.exportLiteral(outfile, level, name_='title')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        showIndent(outfile, level)
+        outfile.write('basecompoundref=[\n')
+        level += 1
+        for basecompoundref in self.basecompoundref:
+            showIndent(outfile, level)
+            outfile.write('model_.basecompoundref(\n')
+            basecompoundref.exportLiteral(
+                outfile, level, name_='basecompoundref')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('derivedcompoundref=[\n')
+        level += 1
+        for derivedcompoundref in self.derivedcompoundref:
+            showIndent(outfile, level)
+            outfile.write('model_.derivedcompoundref(\n')
+            derivedcompoundref.exportLiteral(
+                outfile, level, name_='derivedcompoundref')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('includes=[\n')
+        level += 1
+        for includes in self.includes:
+            showIndent(outfile, level)
+            outfile.write('model_.includes(\n')
+            includes.exportLiteral(outfile, level, name_='includes')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('includedby=[\n')
+        level += 1
+        for includedby in self.includedby:
+            showIndent(outfile, level)
+            outfile.write('model_.includedby(\n')
+            includedby.exportLiteral(outfile, level, name_='includedby')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.incdepgraph:
+            showIndent(outfile, level)
+            outfile.write('incdepgraph=model_.graphType(\n')
+            self.incdepgraph.exportLiteral(outfile, level, name_='incdepgraph')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.invincdepgraph:
+            showIndent(outfile, level)
+            outfile.write('invincdepgraph=model_.graphType(\n')
+            self.invincdepgraph.exportLiteral(
+                outfile, level, name_='invincdepgraph')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        showIndent(outfile, level)
+        outfile.write('innerdir=[\n')
+        level += 1
+        for innerdir in self.innerdir:
+            showIndent(outfile, level)
+            outfile.write('model_.innerdir(\n')
+            innerdir.exportLiteral(outfile, level, name_='innerdir')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('innerfile=[\n')
+        level += 1
+        for innerfile in self.innerfile:
+            showIndent(outfile, level)
+            outfile.write('model_.innerfile(\n')
+            innerfile.exportLiteral(outfile, level, name_='innerfile')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('innerclass=[\n')
+        level += 1
+        for innerclass in self.innerclass:
+            showIndent(outfile, level)
+            outfile.write('model_.innerclass(\n')
+            innerclass.exportLiteral(outfile, level, name_='innerclass')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('innernamespace=[\n')
+        level += 1
+        for innernamespace in self.innernamespace:
+            showIndent(outfile, level)
+            outfile.write('model_.innernamespace(\n')
+            innernamespace.exportLiteral(
+                outfile, level, name_='innernamespace')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('innerpage=[\n')
+        level += 1
+        for innerpage in self.innerpage:
+            showIndent(outfile, level)
+            outfile.write('model_.innerpage(\n')
+            innerpage.exportLiteral(outfile, level, name_='innerpage')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('innergroup=[\n')
+        level += 1
+        for innergroup in self.innergroup:
+            showIndent(outfile, level)
+            outfile.write('model_.innergroup(\n')
+            innergroup.exportLiteral(outfile, level, name_='innergroup')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.templateparamlist:
+            showIndent(outfile, level)
+            outfile.write('templateparamlist=model_.templateparamlistType(\n')
+            self.templateparamlist.exportLiteral(
+                outfile, level, name_='templateparamlist')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        showIndent(outfile, level)
+        outfile.write('sectiondef=[\n')
+        level += 1
+        for sectiondef in self.sectiondef:
+            showIndent(outfile, level)
+            outfile.write('model_.sectiondef(\n')
+            sectiondef.exportLiteral(outfile, level, name_='sectiondef')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.briefdescription:
+            showIndent(outfile, level)
+            outfile.write('briefdescription=model_.descriptionType(\n')
+            self.briefdescription.exportLiteral(
+                outfile, level, name_='briefdescription')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.detaileddescription:
+            showIndent(outfile, level)
+            outfile.write('detaileddescription=model_.descriptionType(\n')
+            self.detaileddescription.exportLiteral(
+                outfile, level, name_='detaileddescription')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.inheritancegraph:
+            showIndent(outfile, level)
+            outfile.write('inheritancegraph=model_.graphType(\n')
+            self.inheritancegraph.exportLiteral(
+                outfile, level, name_='inheritancegraph')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.collaborationgraph:
+            showIndent(outfile, level)
+            outfile.write('collaborationgraph=model_.graphType(\n')
+            self.collaborationgraph.exportLiteral(
+                outfile, level, name_='collaborationgraph')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.programlisting:
+            showIndent(outfile, level)
+            outfile.write('programlisting=model_.listingType(\n')
+            self.programlisting.exportLiteral(
+                outfile, level, name_='programlisting')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.location:
+            showIndent(outfile, level)
+            outfile.write('location=model_.locationType(\n')
+            self.location.exportLiteral(outfile, level, name_='location')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.listofallmembers:
+            showIndent(outfile, level)
+            outfile.write('listofallmembers=model_.listofallmembersType(\n')
+            self.listofallmembers.exportLiteral(
+                outfile, level, name_='listofallmembers')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('kind'):
+            self.kind = attrs.get('kind').value
+        if attrs.get('prot'):
+            self.prot = attrs.get('prot').value
+        if attrs.get('id'):
+            self.id = attrs.get('id').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'compoundname':
+            compoundname_ = ''
+            for text__content_ in child_.childNodes:
+                compoundname_ += text__content_.nodeValue
+            self.compoundname = compoundname_
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'title':
+            obj_ = docTitleType.factory()
+            obj_.build(child_)
+            self.set_title(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'basecompoundref':
+            obj_ = compoundRefType.factory()
+            obj_.build(child_)
+            self.basecompoundref.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'derivedcompoundref':
+            obj_ = compoundRefType.factory()
+            obj_.build(child_)
+            self.derivedcompoundref.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'includes':
+            obj_ = incType.factory()
+            obj_.build(child_)
+            self.includes.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'includedby':
+            obj_ = incType.factory()
+            obj_.build(child_)
+            self.includedby.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'incdepgraph':
+            obj_ = graphType.factory()
+            obj_.build(child_)
+            self.set_incdepgraph(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'invincdepgraph':
+            obj_ = graphType.factory()
+            obj_.build(child_)
+            self.set_invincdepgraph(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'innerdir':
+            obj_ = refType.factory()
+            obj_.build(child_)
+            self.innerdir.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'innerfile':
+            obj_ = refType.factory()
+            obj_.build(child_)
+            self.innerfile.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'innerclass':
+            obj_ = refType.factory()
+            obj_.build(child_)
+            self.innerclass.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'innernamespace':
+            obj_ = refType.factory()
+            obj_.build(child_)
+            self.innernamespace.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'innerpage':
+            obj_ = refType.factory()
+            obj_.build(child_)
+            self.innerpage.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'innergroup':
+            obj_ = refType.factory()
+            obj_.build(child_)
+            self.innergroup.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'templateparamlist':
+            obj_ = templateparamlistType.factory()
+            obj_.build(child_)
+            self.set_templateparamlist(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'sectiondef':
+            obj_ = sectiondefType.factory()
+            obj_.build(child_)
+            self.sectiondef.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'briefdescription':
+            obj_ = descriptionType.factory()
+            obj_.build(child_)
+            self.set_briefdescription(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'detaileddescription':
+            obj_ = descriptionType.factory()
+            obj_.build(child_)
+            self.set_detaileddescription(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'inheritancegraph':
+            obj_ = graphType.factory()
+            obj_.build(child_)
+            self.set_inheritancegraph(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'collaborationgraph':
+            obj_ = graphType.factory()
+            obj_.build(child_)
+            self.set_collaborationgraph(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'programlisting':
+            obj_ = listingType.factory()
+            obj_.build(child_)
+            self.set_programlisting(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'location':
+            obj_ = locationType.factory()
+            obj_.build(child_)
+            self.set_location(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'listofallmembers':
+            obj_ = listofallmembersType.factory()
+            obj_.build(child_)
+            self.set_listofallmembers(obj_)
+# end class compounddefType
+
+
+class listofallmembersType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, member=None):
+        if member is None:
+            self.member = []
+        else:
+            self.member = member
+
+    def factory(*args_, **kwargs_):
+        if listofallmembersType.subclass:
+            return listofallmembersType.subclass(*args_, **kwargs_)
+        else:
+            return listofallmembersType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_member(self): return self.member
+    def set_member(self, member): self.member = member
+    def add_member(self, value): self.member.append(value)
+    def insert_member(self, index, value): self.member[index] = value
+
+    def export(self, outfile, level, namespace_='', name_='listofallmembersType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='listofallmembersType')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='listofallmembersType'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='listofallmembersType'):
+        for member_ in self.member:
+            member_.export(outfile, level, namespace_, name_='member')
+
+    def hasContent_(self):
+        if (
+            self.member is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='listofallmembersType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('member=[\n')
+        level += 1
+        for member in self.member:
+            showIndent(outfile, level)
+            outfile.write('model_.member(\n')
+            member.exportLiteral(outfile, level, name_='member')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'member':
+            obj_ = memberRefType.factory()
+            obj_.build(child_)
+            self.member.append(obj_)
+# end class listofallmembersType
+
+
+class memberRefType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, virt=None, prot=None, refid=None, ambiguityscope=None, scope=None, name=None):
+        self.virt = virt
+        self.prot = prot
+        self.refid = refid
+        self.ambiguityscope = ambiguityscope
+        self.scope = scope
+        self.name = name
+
+    def factory(*args_, **kwargs_):
+        if memberRefType.subclass:
+            return memberRefType.subclass(*args_, **kwargs_)
+        else:
+            return memberRefType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_scope(self): return self.scope
+    def set_scope(self, scope): self.scope = scope
+    def get_name(self): return self.name
+    def set_name(self, name): self.name = name
+    def get_virt(self): return self.virt
+    def set_virt(self, virt): self.virt = virt
+    def get_prot(self): return self.prot
+    def set_prot(self, prot): self.prot = prot
+    def get_refid(self): return self.refid
+    def set_refid(self, refid): self.refid = refid
+    def get_ambiguityscope(self): return self.ambiguityscope
+
+    def set_ambiguityscope(
+        self, ambiguityscope): self.ambiguityscope = ambiguityscope
+
+    def export(self, outfile, level, namespace_='', name_='memberRefType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='memberRefType')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='memberRefType'):
+        if self.virt is not None:
+            outfile.write(' virt=%s' % (quote_attrib(self.virt), ))
+        if self.prot is not None:
+            outfile.write(' prot=%s' % (quote_attrib(self.prot), ))
+        if self.refid is not None:
+            outfile.write(' refid=%s' % (self.format_string(quote_attrib(
+                self.refid).encode(ExternalEncoding), input_name='refid'), ))
+        if self.ambiguityscope is not None:
+            outfile.write(' ambiguityscope=%s' % (self.format_string(quote_attrib(
+                self.ambiguityscope).encode(ExternalEncoding), input_name='ambiguityscope'), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='memberRefType'):
+        if self.scope is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sscope>%s</%sscope>\n' % (namespace_, self.format_string(
+                quote_xml(self.scope).encode(ExternalEncoding), input_name='scope'), namespace_))
+        if self.name is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sname>%s</%sname>\n' % (namespace_, self.format_string(
+                quote_xml(self.name).encode(ExternalEncoding), input_name='name'), namespace_))
+
+    def hasContent_(self):
+        if (
+            self.scope is not None or
+            self.name is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='memberRefType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.virt is not None:
+            showIndent(outfile, level)
+            outfile.write('virt = "%s",\n' % (self.virt,))
+        if self.prot is not None:
+            showIndent(outfile, level)
+            outfile.write('prot = "%s",\n' % (self.prot,))
+        if self.refid is not None:
+            showIndent(outfile, level)
+            outfile.write('refid = %s,\n' % (self.refid,))
+        if self.ambiguityscope is not None:
+            showIndent(outfile, level)
+            outfile.write('ambiguityscope = %s,\n' % (self.ambiguityscope,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('scope=%s,\n' % quote_python(
+            self.scope).encode(ExternalEncoding))
+        showIndent(outfile, level)
+        outfile.write('name=%s,\n' % quote_python(
+            self.name).encode(ExternalEncoding))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('virt'):
+            self.virt = attrs.get('virt').value
+        if attrs.get('prot'):
+            self.prot = attrs.get('prot').value
+        if attrs.get('refid'):
+            self.refid = attrs.get('refid').value
+        if attrs.get('ambiguityscope'):
+            self.ambiguityscope = attrs.get('ambiguityscope').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'scope':
+            scope_ = ''
+            for text__content_ in child_.childNodes:
+                scope_ += text__content_.nodeValue
+            self.scope = scope_
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'name':
+            name_ = ''
+            for text__content_ in child_.childNodes:
+                name_ += text__content_.nodeValue
+            self.name = name_
+# end class memberRefType
+
+
+class scope(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, valueOf_=''):
+        self.valueOf_ = valueOf_
+
+    def factory(*args_, **kwargs_):
+        if scope.subclass:
+            return scope.subclass(*args_, **kwargs_)
+        else:
+            return scope(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='scope', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='scope')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='scope'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='scope'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='scope'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class scope
+
+
+class name(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, valueOf_=''):
+        self.valueOf_ = valueOf_
+
+    def factory(*args_, **kwargs_):
+        if name.subclass:
+            return name.subclass(*args_, **kwargs_)
+        else:
+            return name(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='name', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='name')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='name'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='name'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='name'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class name
+
+
+class compoundRefType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, virt=None, prot=None, refid=None, valueOf_='', mixedclass_=None, content_=None):
+        self.virt = virt
+        self.prot = prot
+        self.refid = refid
+        if mixedclass_ is None:
+            self.mixedclass_ = MixedContainer
+        else:
+            self.mixedclass_ = mixedclass_
+        if content_ is None:
+            self.content_ = []
+        else:
+            self.content_ = content_
+
+    def factory(*args_, **kwargs_):
+        if compoundRefType.subclass:
+            return compoundRefType.subclass(*args_, **kwargs_)
+        else:
+            return compoundRefType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_virt(self): return self.virt
+    def set_virt(self, virt): self.virt = virt
+    def get_prot(self): return self.prot
+    def set_prot(self, prot): self.prot = prot
+    def get_refid(self): return self.refid
+    def set_refid(self, refid): self.refid = refid
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='compoundRefType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='compoundRefType')
+        outfile.write('>')
+        self.exportChildren(outfile, level + 1, namespace_, name_)
+        outfile.write('</%s%s>\n' % (namespace_, name_))
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='compoundRefType'):
+        if self.virt is not None:
+            outfile.write(' virt=%s' % (quote_attrib(self.virt), ))
+        if self.prot is not None:
+            outfile.write(' prot=%s' % (quote_attrib(self.prot), ))
+        if self.refid is not None:
+            outfile.write(' refid=%s' % (self.format_string(quote_attrib(
+                self.refid).encode(ExternalEncoding), input_name='refid'), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='compoundRefType'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='compoundRefType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.virt is not None:
+            showIndent(outfile, level)
+            outfile.write('virt = "%s",\n' % (self.virt,))
+        if self.prot is not None:
+            showIndent(outfile, level)
+            outfile.write('prot = "%s",\n' % (self.prot,))
+        if self.refid is not None:
+            showIndent(outfile, level)
+            outfile.write('refid = %s,\n' % (self.refid,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('virt'):
+            self.virt = attrs.get('virt').value
+        if attrs.get('prot'):
+            self.prot = attrs.get('prot').value
+        if attrs.get('refid'):
+            self.refid = attrs.get('refid').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                                    MixedContainer.TypeNone, '', child_.nodeValue)
+            self.content_.append(obj_)
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class compoundRefType
+
+
+class reimplementType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, refid=None, valueOf_='', mixedclass_=None, content_=None):
+        self.refid = refid
+        if mixedclass_ is None:
+            self.mixedclass_ = MixedContainer
+        else:
+            self.mixedclass_ = mixedclass_
+        if content_ is None:
+            self.content_ = []
+        else:
+            self.content_ = content_
+
+    def factory(*args_, **kwargs_):
+        if reimplementType.subclass:
+            return reimplementType.subclass(*args_, **kwargs_)
+        else:
+            return reimplementType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_refid(self): return self.refid
+    def set_refid(self, refid): self.refid = refid
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='reimplementType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='reimplementType')
+        outfile.write('>')
+        self.exportChildren(outfile, level + 1, namespace_, name_)
+        outfile.write('</%s%s>\n' % (namespace_, name_))
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='reimplementType'):
+        if self.refid is not None:
+            outfile.write(' refid=%s' % (self.format_string(quote_attrib(
+                self.refid).encode(ExternalEncoding), input_name='refid'), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='reimplementType'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='reimplementType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.refid is not None:
+            showIndent(outfile, level)
+            outfile.write('refid = %s,\n' % (self.refid,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('refid'):
+            self.refid = attrs.get('refid').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                                    MixedContainer.TypeNone, '', child_.nodeValue)
+            self.content_.append(obj_)
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class reimplementType
+
+
+class incType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, local=None, refid=None, valueOf_='', mixedclass_=None, content_=None):
+        self.local = local
+        self.refid = refid
+        if mixedclass_ is None:
+            self.mixedclass_ = MixedContainer
+        else:
+            self.mixedclass_ = mixedclass_
+        if content_ is None:
+            self.content_ = []
+        else:
+            self.content_ = content_
+
+    def factory(*args_, **kwargs_):
+        if incType.subclass:
+            return incType.subclass(*args_, **kwargs_)
+        else:
+            return incType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_local(self): return self.local
+    def set_local(self, local): self.local = local
+    def get_refid(self): return self.refid
+    def set_refid(self, refid): self.refid = refid
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='incType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='incType')
+        outfile.write('>')
+        self.exportChildren(outfile, level + 1, namespace_, name_)
+        outfile.write('</%s%s>\n' % (namespace_, name_))
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='incType'):
+        if self.local is not None:
+            outfile.write(' local=%s' % (quote_attrib(self.local), ))
+        if self.refid is not None:
+            outfile.write(' refid=%s' % (self.format_string(quote_attrib(
+                self.refid).encode(ExternalEncoding), input_name='refid'), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='incType'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='incType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.local is not None:
+            showIndent(outfile, level)
+            outfile.write('local = "%s",\n' % (self.local,))
+        if self.refid is not None:
+            showIndent(outfile, level)
+            outfile.write('refid = %s,\n' % (self.refid,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('local'):
+            self.local = attrs.get('local').value
+        if attrs.get('refid'):
+            self.refid = attrs.get('refid').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                                    MixedContainer.TypeNone, '', child_.nodeValue)
+            self.content_.append(obj_)
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class incType
+
+
+class refType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, prot=None, refid=None, valueOf_='', mixedclass_=None, content_=None):
+        self.prot = prot
+        self.refid = refid
+        if mixedclass_ is None:
+            self.mixedclass_ = MixedContainer
+        else:
+            self.mixedclass_ = mixedclass_
+        if content_ is None:
+            self.content_ = []
+        else:
+            self.content_ = content_
+
+    def factory(*args_, **kwargs_):
+        if refType.subclass:
+            return refType.subclass(*args_, **kwargs_)
+        else:
+            return refType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_prot(self): return self.prot
+    def set_prot(self, prot): self.prot = prot
+    def get_refid(self): return self.refid
+    def set_refid(self, refid): self.refid = refid
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='refType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='refType')
+        outfile.write('>')
+        self.exportChildren(outfile, level + 1, namespace_, name_)
+        outfile.write('</%s%s>\n' % (namespace_, name_))
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='refType'):
+        if self.prot is not None:
+            outfile.write(' prot=%s' % (quote_attrib(self.prot), ))
+        if self.refid is not None:
+            outfile.write(' refid=%s' % (self.format_string(quote_attrib(
+                self.refid).encode(ExternalEncoding), input_name='refid'), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='refType'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='refType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.prot is not None:
+            showIndent(outfile, level)
+            outfile.write('prot = "%s",\n' % (self.prot,))
+        if self.refid is not None:
+            showIndent(outfile, level)
+            outfile.write('refid = %s,\n' % (self.refid,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('prot'):
+            self.prot = attrs.get('prot').value
+        if attrs.get('refid'):
+            self.refid = attrs.get('refid').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                                    MixedContainer.TypeNone, '', child_.nodeValue)
+            self.content_.append(obj_)
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class refType
+
+
+class refTextType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, refid=None, kindref=None, external=None, valueOf_='', mixedclass_=None, content_=None):
+        self.refid = refid
+        self.kindref = kindref
+        self.external = external
+        if mixedclass_ is None:
+            self.mixedclass_ = MixedContainer
+        else:
+            self.mixedclass_ = mixedclass_
+        if content_ is None:
+            self.content_ = []
+        else:
+            self.content_ = content_
+
+    def factory(*args_, **kwargs_):
+        if refTextType.subclass:
+            return refTextType.subclass(*args_, **kwargs_)
+        else:
+            return refTextType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_refid(self): return self.refid
+    def set_refid(self, refid): self.refid = refid
+    def get_kindref(self): return self.kindref
+    def set_kindref(self, kindref): self.kindref = kindref
+    def get_external(self): return self.external
+    def set_external(self, external): self.external = external
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='refTextType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='refTextType')
+        outfile.write('>')
+        self.exportChildren(outfile, level + 1, namespace_, name_)
+        outfile.write('</%s%s>\n' % (namespace_, name_))
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='refTextType'):
+        if self.refid is not None:
+            outfile.write(' refid=%s' % (self.format_string(quote_attrib(
+                self.refid).encode(ExternalEncoding), input_name='refid'), ))
+        if self.kindref is not None:
+            outfile.write(' kindref=%s' % (quote_attrib(self.kindref), ))
+        if self.external is not None:
+            outfile.write(' external=%s' % (self.format_string(quote_attrib(
+                self.external).encode(ExternalEncoding), input_name='external'), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='refTextType'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='refTextType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.refid is not None:
+            showIndent(outfile, level)
+            outfile.write('refid = %s,\n' % (self.refid,))
+        if self.kindref is not None:
+            showIndent(outfile, level)
+            outfile.write('kindref = "%s",\n' % (self.kindref,))
+        if self.external is not None:
+            showIndent(outfile, level)
+            outfile.write('external = %s,\n' % (self.external,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('refid'):
+            self.refid = attrs.get('refid').value
+        if attrs.get('kindref'):
+            self.kindref = attrs.get('kindref').value
+        if attrs.get('external'):
+            self.external = attrs.get('external').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                                    MixedContainer.TypeNone, '', child_.nodeValue)
+            self.content_.append(obj_)
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class refTextType
+
+
+class sectiondefType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, kind=None, header=None, description=None, memberdef=None):
+        self.kind = kind
+        self.header = header
+        self.description = description
+        if memberdef is None:
+            self.memberdef = []
+        else:
+            self.memberdef = memberdef
+
+    def factory(*args_, **kwargs_):
+        if sectiondefType.subclass:
+            return sectiondefType.subclass(*args_, **kwargs_)
+        else:
+            return sectiondefType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_header(self): return self.header
+    def set_header(self, header): self.header = header
+    def get_description(self): return self.description
+    def set_description(self, description): self.description = description
+    def get_memberdef(self): return self.memberdef
+    def set_memberdef(self, memberdef): self.memberdef = memberdef
+    def add_memberdef(self, value): self.memberdef.append(value)
+    def insert_memberdef(self, index, value): self.memberdef[index] = value
+    def get_kind(self): return self.kind
+    def set_kind(self, kind): self.kind = kind
+
+    def export(self, outfile, level, namespace_='', name_='sectiondefType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='sectiondefType')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='sectiondefType'):
+        if self.kind is not None:
+            outfile.write(' kind=%s' % (quote_attrib(self.kind), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='sectiondefType'):
+        if self.header is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sheader>%s</%sheader>\n' % (namespace_, self.format_string(
+                quote_xml(self.header).encode(ExternalEncoding), input_name='header'), namespace_))
+        if self.description:
+            self.description.export(
+                outfile, level, namespace_, name_='description')
+        for memberdef_ in self.memberdef:
+            memberdef_.export(outfile, level, namespace_, name_='memberdef')
+
+    def hasContent_(self):
+        if (
+            self.header is not None or
+            self.description is not None or
+            self.memberdef is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='sectiondefType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.kind is not None:
+            showIndent(outfile, level)
+            outfile.write('kind = "%s",\n' % (self.kind,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('header=%s,\n' % quote_python(
+            self.header).encode(ExternalEncoding))
+        if self.description:
+            showIndent(outfile, level)
+            outfile.write('description=model_.descriptionType(\n')
+            self.description.exportLiteral(outfile, level, name_='description')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        showIndent(outfile, level)
+        outfile.write('memberdef=[\n')
+        level += 1
+        for memberdef in self.memberdef:
+            showIndent(outfile, level)
+            outfile.write('model_.memberdef(\n')
+            memberdef.exportLiteral(outfile, level, name_='memberdef')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('kind'):
+            self.kind = attrs.get('kind').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'header':
+            header_ = ''
+            for text__content_ in child_.childNodes:
+                header_ += text__content_.nodeValue
+            self.header = header_
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'description':
+            obj_ = descriptionType.factory()
+            obj_.build(child_)
+            self.set_description(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'memberdef':
+            obj_ = memberdefType.factory()
+            obj_.build(child_)
+            self.memberdef.append(obj_)
+# end class sectiondefType
+
+
+class memberdefType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, initonly=None, kind=None, volatile=None, const=None, raisexx=None, virt=None, readable=None, prot=None, explicit=None, new=None, final=None, writable=None, add=None, static=None, remove=None, sealed=None, mutable=None, gettable=None, inline=None, settable=None, id=None, templateparamlist=None, type_=None, definition=None, argsstring=None, name=None, read=None, write=None, bitfield=None, reimplements=None, reimplementedby=None, param=None, enumvalue=None, initializer=None, exceptions=None, briefdescription=None, detaileddescription=None, inbodydescription=None, location=None, references=None, referencedby=None):
+        self.initonly = initonly
+        self.kind = kind
+        self.volatile = volatile
+        self.const = const
+        self.raisexx = raisexx
+        self.virt = virt
+        self.readable = readable
+        self.prot = prot
+        self.explicit = explicit
+        self.new = new
+        self.final = final
+        self.writable = writable
+        self.add = add
+        self.static = static
+        self.remove = remove
+        self.sealed = sealed
+        self.mutable = mutable
+        self.gettable = gettable
+        self.inline = inline
+        self.settable = settable
+        self.id = id
+        self.templateparamlist = templateparamlist
+        self.type_ = type_
+        self.definition = definition
+        self.argsstring = argsstring
+        self.name = name
+        self.read = read
+        self.write = write
+        self.bitfield = bitfield
+        if reimplements is None:
+            self.reimplements = []
+        else:
+            self.reimplements = reimplements
+        if reimplementedby is None:
+            self.reimplementedby = []
+        else:
+            self.reimplementedby = reimplementedby
+        if param is None:
+            self.param = []
+        else:
+            self.param = param
+        if enumvalue is None:
+            self.enumvalue = []
+        else:
+            self.enumvalue = enumvalue
+        self.initializer = initializer
+        self.exceptions = exceptions
+        self.briefdescription = briefdescription
+        self.detaileddescription = detaileddescription
+        self.inbodydescription = inbodydescription
+        self.location = location
+        if references is None:
+            self.references = []
+        else:
+            self.references = references
+        if referencedby is None:
+            self.referencedby = []
+        else:
+            self.referencedby = referencedby
+
+    def factory(*args_, **kwargs_):
+        if memberdefType.subclass:
+            return memberdefType.subclass(*args_, **kwargs_)
+        else:
+            return memberdefType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_templateparamlist(self): return self.templateparamlist
+    def set_templateparamlist(
+        self, templateparamlist): self.templateparamlist = templateparamlist
+
+    def get_type(self): return self.type_
+    def set_type(self, type_): self.type_ = type_
+    def get_definition(self): return self.definition
+    def set_definition(self, definition): self.definition = definition
+    def get_argsstring(self): return self.argsstring
+    def set_argsstring(self, argsstring): self.argsstring = argsstring
+    def get_name(self): return self.name
+    def set_name(self, name): self.name = name
+    def get_read(self): return self.read
+    def set_read(self, read): self.read = read
+    def get_write(self): return self.write
+    def set_write(self, write): self.write = write
+    def get_bitfield(self): return self.bitfield
+    def set_bitfield(self, bitfield): self.bitfield = bitfield
+    def get_reimplements(self): return self.reimplements
+    def set_reimplements(self, reimplements): self.reimplements = reimplements
+    def add_reimplements(self, value): self.reimplements.append(value)
+    def insert_reimplements(
+        self, index, value): self.reimplements[index] = value
+
+    def get_reimplementedby(self): return self.reimplementedby
+    def set_reimplementedby(
+        self, reimplementedby): self.reimplementedby = reimplementedby
+
+    def add_reimplementedby(self, value): self.reimplementedby.append(value)
+    def insert_reimplementedby(
+        self, index, value): self.reimplementedby[index] = value
+
+    def get_param(self): return self.param
+    def set_param(self, param): self.param = param
+    def add_param(self, value): self.param.append(value)
+    def insert_param(self, index, value): self.param[index] = value
+    def get_enumvalue(self): return self.enumvalue
+    def set_enumvalue(self, enumvalue): self.enumvalue = enumvalue
+    def add_enumvalue(self, value): self.enumvalue.append(value)
+    def insert_enumvalue(self, index, value): self.enumvalue[index] = value
+    def get_initializer(self): return self.initializer
+    def set_initializer(self, initializer): self.initializer = initializer
+    def get_exceptions(self): return self.exceptions
+    def set_exceptions(self, exceptions): self.exceptions = exceptions
+    def get_briefdescription(self): return self.briefdescription
+    def set_briefdescription(
+        self, briefdescription): self.briefdescription = briefdescription
+
+    def get_detaileddescription(self): return self.detaileddescription
+    def set_detaileddescription(
+        self, detaileddescription): self.detaileddescription = detaileddescription
+
+    def get_inbodydescription(self): return self.inbodydescription
+    def set_inbodydescription(
+        self, inbodydescription): self.inbodydescription = inbodydescription
+
+    def get_location(self): return self.location
+    def set_location(self, location): self.location = location
+    def get_references(self): return self.references
+    def set_references(self, references): self.references = references
+    def add_references(self, value): self.references.append(value)
+    def insert_references(self, index, value): self.references[index] = value
+    def get_referencedby(self): return self.referencedby
+    def set_referencedby(self, referencedby): self.referencedby = referencedby
+    def add_referencedby(self, value): self.referencedby.append(value)
+    def insert_referencedby(
+        self, index, value): self.referencedby[index] = value
+
+    def get_initonly(self): return self.initonly
+    def set_initonly(self, initonly): self.initonly = initonly
+    def get_kind(self): return self.kind
+    def set_kind(self, kind): self.kind = kind
+    def get_volatile(self): return self.volatile
+    def set_volatile(self, volatile): self.volatile = volatile
+    def get_const(self): return self.const
+    def set_const(self, const): self.const = const
+    def get_raise(self): return self.raisexx
+    def set_raise(self, raisexx): self.raisexx = raisexx
+    def get_virt(self): return self.virt
+    def set_virt(self, virt): self.virt = virt
+    def get_readable(self): return self.readable
+    def set_readable(self, readable): self.readable = readable
+    def get_prot(self): return self.prot
+    def set_prot(self, prot): self.prot = prot
+    def get_explicit(self): return self.explicit
+    def set_explicit(self, explicit): self.explicit = explicit
+    def get_new(self): return self.new
+    def set_new(self, new): self.new = new
+    def get_final(self): return self.final
+    def set_final(self, final): self.final = final
+    def get_writable(self): return self.writable
+    def set_writable(self, writable): self.writable = writable
+    def get_add(self): return self.add
+    def set_add(self, add): self.add = add
+    def get_static(self): return self.static
+    def set_static(self, static): self.static = static
+    def get_remove(self): return self.remove
+    def set_remove(self, remove): self.remove = remove
+    def get_sealed(self): return self.sealed
+    def set_sealed(self, sealed): self.sealed = sealed
+    def get_mutable(self): return self.mutable
+    def set_mutable(self, mutable): self.mutable = mutable
+    def get_gettable(self): return self.gettable
+    def set_gettable(self, gettable): self.gettable = gettable
+    def get_inline(self): return self.inline
+    def set_inline(self, inline): self.inline = inline
+    def get_settable(self): return self.settable
+    def set_settable(self, settable): self.settable = settable
+    def get_id(self): return self.id
+    def set_id(self, id): self.id = id
+
+    def export(self, outfile, level, namespace_='', name_='memberdefType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='memberdefType')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='memberdefType'):
+        if self.initonly is not None:
+            outfile.write(' initonly=%s' % (quote_attrib(self.initonly), ))
+        if self.kind is not None:
+            outfile.write(' kind=%s' % (quote_attrib(self.kind), ))
+        if self.volatile is not None:
+            outfile.write(' volatile=%s' % (quote_attrib(self.volatile), ))
+        if self.const is not None:
+            outfile.write(' const=%s' % (quote_attrib(self.const), ))
+        if self.raisexx is not None:
+            outfile.write(' raise=%s' % (quote_attrib(self.raisexx), ))
+        if self.virt is not None:
+            outfile.write(' virt=%s' % (quote_attrib(self.virt), ))
+        if self.readable is not None:
+            outfile.write(' readable=%s' % (quote_attrib(self.readable), ))
+        if self.prot is not None:
+            outfile.write(' prot=%s' % (quote_attrib(self.prot), ))
+        if self.explicit is not None:
+            outfile.write(' explicit=%s' % (quote_attrib(self.explicit), ))
+        if self.new is not None:
+            outfile.write(' new=%s' % (quote_attrib(self.new), ))
+        if self.final is not None:
+            outfile.write(' final=%s' % (quote_attrib(self.final), ))
+        if self.writable is not None:
+            outfile.write(' writable=%s' % (quote_attrib(self.writable), ))
+        if self.add is not None:
+            outfile.write(' add=%s' % (quote_attrib(self.add), ))
+        if self.static is not None:
+            outfile.write(' static=%s' % (quote_attrib(self.static), ))
+        if self.remove is not None:
+            outfile.write(' remove=%s' % (quote_attrib(self.remove), ))
+        if self.sealed is not None:
+            outfile.write(' sealed=%s' % (quote_attrib(self.sealed), ))
+        if self.mutable is not None:
+            outfile.write(' mutable=%s' % (quote_attrib(self.mutable), ))
+        if self.gettable is not None:
+            outfile.write(' gettable=%s' % (quote_attrib(self.gettable), ))
+        if self.inline is not None:
+            outfile.write(' inline=%s' % (quote_attrib(self.inline), ))
+        if self.settable is not None:
+            outfile.write(' settable=%s' % (quote_attrib(self.settable), ))
+        if self.id is not None:
+            outfile.write(' id=%s' % (self.format_string(quote_attrib(
+                self.id).encode(ExternalEncoding), input_name='id'), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='memberdefType'):
+        if self.templateparamlist:
+            self.templateparamlist.export(
+                outfile, level, namespace_, name_='templateparamlist')
+        if self.type_:
+            self.type_.export(outfile, level, namespace_, name_='type')
+        if self.definition is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sdefinition>%s</%sdefinition>\n' % (namespace_, self.format_string(
+                quote_xml(self.definition).encode(ExternalEncoding), input_name='definition'), namespace_))
+        if self.argsstring is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sargsstring>%s</%sargsstring>\n' % (namespace_, self.format_string(
+                quote_xml(self.argsstring).encode(ExternalEncoding), input_name='argsstring'), namespace_))
+        if self.name is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sname>%s</%sname>\n' % (namespace_, self.format_string(
+                quote_xml(self.name).encode(ExternalEncoding), input_name='name'), namespace_))
+        if self.read is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sread>%s</%sread>\n' % (namespace_, self.format_string(
+                quote_xml(self.read).encode(ExternalEncoding), input_name='read'), namespace_))
+        if self.write is not None:
+            showIndent(outfile, level)
+            outfile.write('<%swrite>%s</%swrite>\n' % (namespace_, self.format_string(
+                quote_xml(self.write).encode(ExternalEncoding), input_name='write'), namespace_))
+        if self.bitfield is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sbitfield>%s</%sbitfield>\n' % (namespace_, self.format_string(
+                quote_xml(self.bitfield).encode(ExternalEncoding), input_name='bitfield'), namespace_))
+        for reimplements_ in self.reimplements:
+            reimplements_.export(
+                outfile, level, namespace_, name_='reimplements')
+        for reimplementedby_ in self.reimplementedby:
+            reimplementedby_.export(
+                outfile, level, namespace_, name_='reimplementedby')
+        for param_ in self.param:
+            param_.export(outfile, level, namespace_, name_='param')
+        for enumvalue_ in self.enumvalue:
+            enumvalue_.export(outfile, level, namespace_, name_='enumvalue')
+        if self.initializer:
+            self.initializer.export(
+                outfile, level, namespace_, name_='initializer')
+        if self.exceptions:
+            self.exceptions.export(
+                outfile, level, namespace_, name_='exceptions')
+        if self.briefdescription:
+            self.briefdescription.export(
+                outfile, level, namespace_, name_='briefdescription')
+        if self.detaileddescription:
+            self.detaileddescription.export(
+                outfile, level, namespace_, name_='detaileddescription')
+        if self.inbodydescription:
+            self.inbodydescription.export(
+                outfile, level, namespace_, name_='inbodydescription')
+        if self.location:
+            self.location.export(
+                outfile, level, namespace_, name_='location', )
+        for references_ in self.references:
+            references_.export(outfile, level, namespace_, name_='references')
+        for referencedby_ in self.referencedby:
+            referencedby_.export(
+                outfile, level, namespace_, name_='referencedby')
+
+    def hasContent_(self):
+        if (
+            self.templateparamlist is not None or
+            self.type_ is not None or
+            self.definition is not None or
+            self.argsstring is not None or
+            self.name is not None or
+            self.read is not None or
+            self.write is not None or
+            self.bitfield is not None or
+            self.reimplements is not None or
+            self.reimplementedby is not None or
+            self.param is not None or
+            self.enumvalue is not None or
+            self.initializer is not None or
+            self.exceptions is not None or
+            self.briefdescription is not None or
+            self.detaileddescription is not None or
+            self.inbodydescription is not None or
+            self.location is not None or
+            self.references is not None or
+            self.referencedby is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='memberdefType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.initonly is not None:
+            showIndent(outfile, level)
+            outfile.write('initonly = "%s",\n' % (self.initonly,))
+        if self.kind is not None:
+            showIndent(outfile, level)
+            outfile.write('kind = "%s",\n' % (self.kind,))
+        if self.volatile is not None:
+            showIndent(outfile, level)
+            outfile.write('volatile = "%s",\n' % (self.volatile,))
+        if self.const is not None:
+            showIndent(outfile, level)
+            outfile.write('const = "%s",\n' % (self.const,))
+        if self.raisexx is not None:
+            showIndent(outfile, level)
+            outfile.write('raisexx = "%s",\n' % (self.raisexx,))
+        if self.virt is not None:
+            showIndent(outfile, level)
+            outfile.write('virt = "%s",\n' % (self.virt,))
+        if self.readable is not None:
+            showIndent(outfile, level)
+            outfile.write('readable = "%s",\n' % (self.readable,))
+        if self.prot is not None:
+            showIndent(outfile, level)
+            outfile.write('prot = "%s",\n' % (self.prot,))
+        if self.explicit is not None:
+            showIndent(outfile, level)
+            outfile.write('explicit = "%s",\n' % (self.explicit,))
+        if self.new is not None:
+            showIndent(outfile, level)
+            outfile.write('new = "%s",\n' % (self.new,))
+        if self.final is not None:
+            showIndent(outfile, level)
+            outfile.write('final = "%s",\n' % (self.final,))
+        if self.writable is not None:
+            showIndent(outfile, level)
+            outfile.write('writable = "%s",\n' % (self.writable,))
+        if self.add is not None:
+            showIndent(outfile, level)
+            outfile.write('add = "%s",\n' % (self.add,))
+        if self.static is not None:
+            showIndent(outfile, level)
+            outfile.write('static = "%s",\n' % (self.static,))
+        if self.remove is not None:
+            showIndent(outfile, level)
+            outfile.write('remove = "%s",\n' % (self.remove,))
+        if self.sealed is not None:
+            showIndent(outfile, level)
+            outfile.write('sealed = "%s",\n' % (self.sealed,))
+        if self.mutable is not None:
+            showIndent(outfile, level)
+            outfile.write('mutable = "%s",\n' % (self.mutable,))
+        if self.gettable is not None:
+            showIndent(outfile, level)
+            outfile.write('gettable = "%s",\n' % (self.gettable,))
+        if self.inline is not None:
+            showIndent(outfile, level)
+            outfile.write('inline = "%s",\n' % (self.inline,))
+        if self.settable is not None:
+            showIndent(outfile, level)
+            outfile.write('settable = "%s",\n' % (self.settable,))
+        if self.id is not None:
+            showIndent(outfile, level)
+            outfile.write('id = %s,\n' % (self.id,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        if self.templateparamlist:
+            showIndent(outfile, level)
+            outfile.write('templateparamlist=model_.templateparamlistType(\n')
+            self.templateparamlist.exportLiteral(
+                outfile, level, name_='templateparamlist')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.type_:
+            showIndent(outfile, level)
+            outfile.write('type_=model_.linkedTextType(\n')
+            self.type_.exportLiteral(outfile, level, name_='type')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        showIndent(outfile, level)
+        outfile.write('definition=%s,\n' % quote_python(
+            self.definition).encode(ExternalEncoding))
+        showIndent(outfile, level)
+        outfile.write('argsstring=%s,\n' % quote_python(
+            self.argsstring).encode(ExternalEncoding))
+        showIndent(outfile, level)
+        outfile.write('name=%s,\n' % quote_python(
+            self.name).encode(ExternalEncoding))
+        showIndent(outfile, level)
+        outfile.write('read=%s,\n' % quote_python(
+            self.read).encode(ExternalEncoding))
+        showIndent(outfile, level)
+        outfile.write('write=%s,\n' % quote_python(
+            self.write).encode(ExternalEncoding))
+        showIndent(outfile, level)
+        outfile.write('bitfield=%s,\n' % quote_python(
+            self.bitfield).encode(ExternalEncoding))
+        showIndent(outfile, level)
+        outfile.write('reimplements=[\n')
+        level += 1
+        for reimplements in self.reimplements:
+            showIndent(outfile, level)
+            outfile.write('model_.reimplements(\n')
+            reimplements.exportLiteral(outfile, level, name_='reimplements')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('reimplementedby=[\n')
+        level += 1
+        for reimplementedby in self.reimplementedby:
+            showIndent(outfile, level)
+            outfile.write('model_.reimplementedby(\n')
+            reimplementedby.exportLiteral(
+                outfile, level, name_='reimplementedby')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('param=[\n')
+        level += 1
+        for param in self.param:
+            showIndent(outfile, level)
+            outfile.write('model_.param(\n')
+            param.exportLiteral(outfile, level, name_='param')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('enumvalue=[\n')
+        level += 1
+        for enumvalue in self.enumvalue:
+            showIndent(outfile, level)
+            outfile.write('model_.enumvalue(\n')
+            enumvalue.exportLiteral(outfile, level, name_='enumvalue')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.initializer:
+            showIndent(outfile, level)
+            outfile.write('initializer=model_.linkedTextType(\n')
+            self.initializer.exportLiteral(outfile, level, name_='initializer')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.exceptions:
+            showIndent(outfile, level)
+            outfile.write('exceptions=model_.linkedTextType(\n')
+            self.exceptions.exportLiteral(outfile, level, name_='exceptions')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.briefdescription:
+            showIndent(outfile, level)
+            outfile.write('briefdescription=model_.descriptionType(\n')
+            self.briefdescription.exportLiteral(
+                outfile, level, name_='briefdescription')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.detaileddescription:
+            showIndent(outfile, level)
+            outfile.write('detaileddescription=model_.descriptionType(\n')
+            self.detaileddescription.exportLiteral(
+                outfile, level, name_='detaileddescription')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.inbodydescription:
+            showIndent(outfile, level)
+            outfile.write('inbodydescription=model_.descriptionType(\n')
+            self.inbodydescription.exportLiteral(
+                outfile, level, name_='inbodydescription')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.location:
+            showIndent(outfile, level)
+            outfile.write('location=model_.locationType(\n')
+            self.location.exportLiteral(outfile, level, name_='location')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        showIndent(outfile, level)
+        outfile.write('references=[\n')
+        level += 1
+        for references in self.references:
+            showIndent(outfile, level)
+            outfile.write('model_.references(\n')
+            references.exportLiteral(outfile, level, name_='references')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('referencedby=[\n')
+        level += 1
+        for referencedby in self.referencedby:
+            showIndent(outfile, level)
+            outfile.write('model_.referencedby(\n')
+            referencedby.exportLiteral(outfile, level, name_='referencedby')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('initonly'):
+            self.initonly = attrs.get('initonly').value
+        if attrs.get('kind'):
+            self.kind = attrs.get('kind').value
+        if attrs.get('volatile'):
+            self.volatile = attrs.get('volatile').value
+        if attrs.get('const'):
+            self.const = attrs.get('const').value
+        if attrs.get('raise'):
+            self.raisexx = attrs.get('raise').value
+        if attrs.get('virt'):
+            self.virt = attrs.get('virt').value
+        if attrs.get('readable'):
+            self.readable = attrs.get('readable').value
+        if attrs.get('prot'):
+            self.prot = attrs.get('prot').value
+        if attrs.get('explicit'):
+            self.explicit = attrs.get('explicit').value
+        if attrs.get('new'):
+            self.new = attrs.get('new').value
+        if attrs.get('final'):
+            self.final = attrs.get('final').value
+        if attrs.get('writable'):
+            self.writable = attrs.get('writable').value
+        if attrs.get('add'):
+            self.add = attrs.get('add').value
+        if attrs.get('static'):
+            self.static = attrs.get('static').value
+        if attrs.get('remove'):
+            self.remove = attrs.get('remove').value
+        if attrs.get('sealed'):
+            self.sealed = attrs.get('sealed').value
+        if attrs.get('mutable'):
+            self.mutable = attrs.get('mutable').value
+        if attrs.get('gettable'):
+            self.gettable = attrs.get('gettable').value
+        if attrs.get('inline'):
+            self.inline = attrs.get('inline').value
+        if attrs.get('settable'):
+            self.settable = attrs.get('settable').value
+        if attrs.get('id'):
+            self.id = attrs.get('id').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'templateparamlist':
+            obj_ = templateparamlistType.factory()
+            obj_.build(child_)
+            self.set_templateparamlist(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'type':
+            obj_ = linkedTextType.factory()
+            obj_.build(child_)
+            self.set_type(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'definition':
+            definition_ = ''
+            for text__content_ in child_.childNodes:
+                definition_ += text__content_.nodeValue
+            self.definition = definition_
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'argsstring':
+            argsstring_ = ''
+            for text__content_ in child_.childNodes:
+                argsstring_ += text__content_.nodeValue
+            self.argsstring = argsstring_
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'name':
+            name_ = ''
+            for text__content_ in child_.childNodes:
+                name_ += text__content_.nodeValue
+            self.name = name_
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'read':
+            read_ = ''
+            for text__content_ in child_.childNodes:
+                read_ += text__content_.nodeValue
+            self.read = read_
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'write':
+            write_ = ''
+            for text__content_ in child_.childNodes:
+                write_ += text__content_.nodeValue
+            self.write = write_
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'bitfield':
+            bitfield_ = ''
+            for text__content_ in child_.childNodes:
+                bitfield_ += text__content_.nodeValue
+            self.bitfield = bitfield_
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'reimplements':
+            obj_ = reimplementType.factory()
+            obj_.build(child_)
+            self.reimplements.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'reimplementedby':
+            obj_ = reimplementType.factory()
+            obj_.build(child_)
+            self.reimplementedby.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'param':
+            obj_ = paramType.factory()
+            obj_.build(child_)
+            self.param.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'enumvalue':
+            obj_ = enumvalueType.factory()
+            obj_.build(child_)
+            self.enumvalue.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'initializer':
+            obj_ = linkedTextType.factory()
+            obj_.build(child_)
+            self.set_initializer(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'exceptions':
+            obj_ = linkedTextType.factory()
+            obj_.build(child_)
+            self.set_exceptions(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'briefdescription':
+            obj_ = descriptionType.factory()
+            obj_.build(child_)
+            self.set_briefdescription(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'detaileddescription':
+            obj_ = descriptionType.factory()
+            obj_.build(child_)
+            self.set_detaileddescription(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'inbodydescription':
+            obj_ = descriptionType.factory()
+            obj_.build(child_)
+            self.set_inbodydescription(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'location':
+            obj_ = locationType.factory()
+            obj_.build(child_)
+            self.set_location(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'references':
+            obj_ = referenceType.factory()
+            obj_.build(child_)
+            self.references.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'referencedby':
+            obj_ = referenceType.factory()
+            obj_.build(child_)
+            self.referencedby.append(obj_)
+# end class memberdefType
+
+
+class definition(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, valueOf_=''):
+        self.valueOf_ = valueOf_
+
+    def factory(*args_, **kwargs_):
+        if definition.subclass:
+            return definition.subclass(*args_, **kwargs_)
+        else:
+            return definition(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='definition', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='definition')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='definition'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='definition'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='definition'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class definition
+
+
+class argsstring(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, valueOf_=''):
+        self.valueOf_ = valueOf_
+
+    def factory(*args_, **kwargs_):
+        if argsstring.subclass:
+            return argsstring.subclass(*args_, **kwargs_)
+        else:
+            return argsstring(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='argsstring', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='argsstring')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='argsstring'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='argsstring'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='argsstring'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class argsstring
+
+
+class read(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, valueOf_=''):
+        self.valueOf_ = valueOf_
+
+    def factory(*args_, **kwargs_):
+        if read.subclass:
+            return read.subclass(*args_, **kwargs_)
+        else:
+            return read(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='read', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='read')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='read'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='read'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='read'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class read
+
+
+class write(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, valueOf_=''):
+        self.valueOf_ = valueOf_
+
+    def factory(*args_, **kwargs_):
+        if write.subclass:
+            return write.subclass(*args_, **kwargs_)
+        else:
+            return write(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='write', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='write')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='write'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='write'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='write'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class write
+
+
+class bitfield(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, valueOf_=''):
+        self.valueOf_ = valueOf_
+
+    def factory(*args_, **kwargs_):
+        if bitfield.subclass:
+            return bitfield.subclass(*args_, **kwargs_)
+        else:
+            return bitfield(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='bitfield', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='bitfield')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='bitfield'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='bitfield'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='bitfield'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class bitfield
+
+
+class descriptionType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, title=None, para=None, sect1=None, internal=None, mixedclass_=None, content_=None):
+        if mixedclass_ is None:
+            self.mixedclass_ = MixedContainer
+        else:
+            self.mixedclass_ = mixedclass_
+        if content_ is None:
+            self.content_ = []
+        else:
+            self.content_ = content_
+
+    def factory(*args_, **kwargs_):
+        if descriptionType.subclass:
+            return descriptionType.subclass(*args_, **kwargs_)
+        else:
+            return descriptionType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_title(self): return self.title
+    def set_title(self, title): self.title = title
+    def get_para(self): return self.para
+    def set_para(self, para): self.para = para
+    def add_para(self, value): self.para.append(value)
+    def insert_para(self, index, value): self.para[index] = value
+    def get_sect1(self): return self.sect1
+    def set_sect1(self, sect1): self.sect1 = sect1
+    def add_sect1(self, value): self.sect1.append(value)
+    def insert_sect1(self, index, value): self.sect1[index] = value
+    def get_internal(self): return self.internal
+    def set_internal(self, internal): self.internal = internal
+
+    def export(self, outfile, level, namespace_='', name_='descriptionType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='descriptionType')
+        outfile.write('>')
+        self.exportChildren(outfile, level + 1, namespace_, name_)
+        outfile.write('</%s%s>\n' % (namespace_, name_))
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='descriptionType'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='descriptionType'):
+        for item_ in self.content_:
+            item_.export(outfile, level, item_.name, namespace_)
+
+    def hasContent_(self):
+        if (
+            self.title is not None or
+            self.para is not None or
+            self.sect1 is not None or
+            self.internal is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='descriptionType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'title':
+            childobj_ = docTitleType.factory()
+            childobj_.build(child_)
+            obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
+                                    MixedContainer.TypeNone, 'title', childobj_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'para':
+            childobj_ = docParaType.factory()
+            childobj_.build(child_)
+            obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
+                                    MixedContainer.TypeNone, 'para', childobj_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'sect1':
+            childobj_ = docSect1Type.factory()
+            childobj_.build(child_)
+            obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
+                                    MixedContainer.TypeNone, 'sect1', childobj_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'internal':
+            childobj_ = docInternalType.factory()
+            childobj_.build(child_)
+            obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
+                                    MixedContainer.TypeNone, 'internal', childobj_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.TEXT_NODE:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                                    MixedContainer.TypeNone, '', child_.nodeValue)
+            self.content_.append(obj_)
+# end class descriptionType
+
+
+class enumvalueType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, prot=None, id=None, name=None, initializer=None, briefdescription=None, detaileddescription=None, mixedclass_=None, content_=None):
+        self.prot = prot
+        self.id = id
+        if mixedclass_ is None:
+            self.mixedclass_ = MixedContainer
+        else:
+            self.mixedclass_ = mixedclass_
+        if content_ is None:
+            self.content_ = []
+        else:
+            self.content_ = content_
+
+    def factory(*args_, **kwargs_):
+        if enumvalueType.subclass:
+            return enumvalueType.subclass(*args_, **kwargs_)
+        else:
+            return enumvalueType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_name(self): return self.name
+    def set_name(self, name): self.name = name
+    def get_initializer(self): return self.initializer
+    def set_initializer(self, initializer): self.initializer = initializer
+    def get_briefdescription(self): return self.briefdescription
+    def set_briefdescription(
+        self, briefdescription): self.briefdescription = briefdescription
+
+    def get_detaileddescription(self): return self.detaileddescription
+    def set_detaileddescription(
+        self, detaileddescription): self.detaileddescription = detaileddescription
+
+    def get_prot(self): return self.prot
+    def set_prot(self, prot): self.prot = prot
+    def get_id(self): return self.id
+    def set_id(self, id): self.id = id
+
+    def export(self, outfile, level, namespace_='', name_='enumvalueType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='enumvalueType')
+        outfile.write('>')
+        self.exportChildren(outfile, level + 1, namespace_, name_)
+        outfile.write('</%s%s>\n' % (namespace_, name_))
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='enumvalueType'):
+        if self.prot is not None:
+            outfile.write(' prot=%s' % (quote_attrib(self.prot), ))
+        if self.id is not None:
+            outfile.write(' id=%s' % (self.format_string(quote_attrib(
+                self.id).encode(ExternalEncoding), input_name='id'), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='enumvalueType'):
+        for item_ in self.content_:
+            item_.export(outfile, level, item_.name, namespace_)
+
+    def hasContent_(self):
+        if (
+            self.name is not None or
+            self.initializer is not None or
+            self.briefdescription is not None or
+            self.detaileddescription is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='enumvalueType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.prot is not None:
+            showIndent(outfile, level)
+            outfile.write('prot = "%s",\n' % (self.prot,))
+        if self.id is not None:
+            showIndent(outfile, level)
+            outfile.write('id = %s,\n' % (self.id,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('prot'):
+            self.prot = attrs.get('prot').value
+        if attrs.get('id'):
+            self.id = attrs.get('id').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'name':
+            value_ = []
+            for text_ in child_.childNodes:
+                value_.append(text_.nodeValue)
+            valuestr_ = ''.join(value_)
+            obj_ = self.mixedclass_(MixedContainer.CategorySimple,
+                                    MixedContainer.TypeString, 'name', valuestr_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'initializer':
+            childobj_ = linkedTextType.factory()
+            childobj_.build(child_)
+            obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
+                                    MixedContainer.TypeNone, 'initializer', childobj_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'briefdescription':
+            childobj_ = descriptionType.factory()
+            childobj_.build(child_)
+            obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
+                                    MixedContainer.TypeNone, 'briefdescription', childobj_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'detaileddescription':
+            childobj_ = descriptionType.factory()
+            childobj_.build(child_)
+            obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
+                                    MixedContainer.TypeNone, 'detaileddescription', childobj_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.TEXT_NODE:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                                    MixedContainer.TypeNone, '', child_.nodeValue)
+            self.content_.append(obj_)
+# end class enumvalueType
+
+
+class templateparamlistType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, param=None):
+        if param is None:
+            self.param = []
+        else:
+            self.param = param
+
+    def factory(*args_, **kwargs_):
+        if templateparamlistType.subclass:
+            return templateparamlistType.subclass(*args_, **kwargs_)
+        else:
+            return templateparamlistType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_param(self): return self.param
+    def set_param(self, param): self.param = param
+    def add_param(self, value): self.param.append(value)
+    def insert_param(self, index, value): self.param[index] = value
+
+    def export(self, outfile, level, namespace_='', name_='templateparamlistType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='templateparamlistType')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='templateparamlistType'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='templateparamlistType'):
+        for param_ in self.param:
+            param_.export(outfile, level, namespace_, name_='param')
+
+    def hasContent_(self):
+        if (
+            self.param is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='templateparamlistType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('param=[\n')
+        level += 1
+        for param in self.param:
+            showIndent(outfile, level)
+            outfile.write('model_.param(\n')
+            param.exportLiteral(outfile, level, name_='param')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'param':
+            obj_ = paramType.factory()
+            obj_.build(child_)
+            self.param.append(obj_)
+# end class templateparamlistType
+
+
+class paramType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, type_=None, declname=None, defname=None, array=None, defval=None, briefdescription=None):
+        self.type_ = type_
+        self.declname = declname
+        self.defname = defname
+        self.array = array
+        self.defval = defval
+        self.briefdescription = briefdescription
+
+    def factory(*args_, **kwargs_):
+        if paramType.subclass:
+            return paramType.subclass(*args_, **kwargs_)
+        else:
+            return paramType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_type(self): return self.type_
+    def set_type(self, type_): self.type_ = type_
+    def get_declname(self): return self.declname
+    def set_declname(self, declname): self.declname = declname
+    def get_defname(self): return self.defname
+    def set_defname(self, defname): self.defname = defname
+    def get_array(self): return self.array
+    def set_array(self, array): self.array = array
+    def get_defval(self): return self.defval
+    def set_defval(self, defval): self.defval = defval
+    def get_briefdescription(self): return self.briefdescription
+
+    def set_briefdescription(
+        self, briefdescription): self.briefdescription = briefdescription
+
+    def export(self, outfile, level, namespace_='', name_='paramType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='paramType')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='paramType'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='paramType'):
+        if self.type_:
+            self.type_.export(outfile, level, namespace_, name_='type')
+        if self.declname is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sdeclname>%s</%sdeclname>\n' % (namespace_, self.format_string(
+                quote_xml(self.declname).encode(ExternalEncoding), input_name='declname'), namespace_))
+        if self.defname is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sdefname>%s</%sdefname>\n' % (namespace_, self.format_string(
+                quote_xml(self.defname).encode(ExternalEncoding), input_name='defname'), namespace_))
+        if self.array is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sarray>%s</%sarray>\n' % (namespace_, self.format_string(
+                quote_xml(self.array).encode(ExternalEncoding), input_name='array'), namespace_))
+        if self.defval:
+            self.defval.export(outfile, level, namespace_, name_='defval')
+        if self.briefdescription:
+            self.briefdescription.export(
+                outfile, level, namespace_, name_='briefdescription')
+
+    def hasContent_(self):
+        if (
+            self.type_ is not None or
+            self.declname is not None or
+            self.defname is not None or
+            self.array is not None or
+            self.defval is not None or
+            self.briefdescription is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='paramType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        if self.type_:
+            showIndent(outfile, level)
+            outfile.write('type_=model_.linkedTextType(\n')
+            self.type_.exportLiteral(outfile, level, name_='type')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        showIndent(outfile, level)
+        outfile.write('declname=%s,\n' % quote_python(
+            self.declname).encode(ExternalEncoding))
+        showIndent(outfile, level)
+        outfile.write('defname=%s,\n' % quote_python(
+            self.defname).encode(ExternalEncoding))
+        showIndent(outfile, level)
+        outfile.write('array=%s,\n' % quote_python(
+            self.array).encode(ExternalEncoding))
+        if self.defval:
+            showIndent(outfile, level)
+            outfile.write('defval=model_.linkedTextType(\n')
+            self.defval.exportLiteral(outfile, level, name_='defval')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        if self.briefdescription:
+            showIndent(outfile, level)
+            outfile.write('briefdescription=model_.descriptionType(\n')
+            self.briefdescription.exportLiteral(
+                outfile, level, name_='briefdescription')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'type':
+            obj_ = linkedTextType.factory()
+            obj_.build(child_)
+            self.set_type(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'declname':
+            declname_ = ''
+            for text__content_ in child_.childNodes:
+                declname_ += text__content_.nodeValue
+            self.declname = declname_
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'defname':
+            defname_ = ''
+            for text__content_ in child_.childNodes:
+                defname_ += text__content_.nodeValue
+            self.defname = defname_
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'array':
+            array_ = ''
+            for text__content_ in child_.childNodes:
+                array_ += text__content_.nodeValue
+            self.array = array_
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'defval':
+            obj_ = linkedTextType.factory()
+            obj_.build(child_)
+            self.set_defval(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'briefdescription':
+            obj_ = descriptionType.factory()
+            obj_.build(child_)
+            self.set_briefdescription(obj_)
+# end class paramType
+
+
+class declname(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, valueOf_=''):
+        self.valueOf_ = valueOf_
+
+    def factory(*args_, **kwargs_):
+        if declname.subclass:
+            return declname.subclass(*args_, **kwargs_)
+        else:
+            return declname(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='declname', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='declname')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='declname'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='declname'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='declname'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class declname
+
+
+class defname(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, valueOf_=''):
+        self.valueOf_ = valueOf_
+
+    def factory(*args_, **kwargs_):
+        if defname.subclass:
+            return defname.subclass(*args_, **kwargs_)
+        else:
+            return defname(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='defname', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='defname')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='defname'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='defname'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='defname'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class defname
+
+
+class array(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, valueOf_=''):
+        self.valueOf_ = valueOf_
+
+    def factory(*args_, **kwargs_):
+        if array.subclass:
+            return array.subclass(*args_, **kwargs_)
+        else:
+            return array(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='array', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='array')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='array'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='array'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='array'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class array
+
+
+class linkedTextType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, ref=None, mixedclass_=None, content_=None):
+        if mixedclass_ is None:
+            self.mixedclass_ = MixedContainer
+        else:
+            self.mixedclass_ = mixedclass_
+        if content_ is None:
+            self.content_ = []
+        else:
+            self.content_ = content_
+
+    def factory(*args_, **kwargs_):
+        if linkedTextType.subclass:
+            return linkedTextType.subclass(*args_, **kwargs_)
+        else:
+            return linkedTextType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_ref(self): return self.ref
+    def set_ref(self, ref): self.ref = ref
+    def add_ref(self, value): self.ref.append(value)
+    def insert_ref(self, index, value): self.ref[index] = value
+
+    def export(self, outfile, level, namespace_='', name_='linkedTextType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='linkedTextType')
+        outfile.write('>')
+        self.exportChildren(outfile, level + 1, namespace_, name_)
+        outfile.write('</%s%s>\n' % (namespace_, name_))
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='linkedTextType'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='linkedTextType'):
+        for item_ in self.content_:
+            item_.export(outfile, level, item_.name, namespace_)
+
+    def hasContent_(self):
+        if (
+            self.ref is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='linkedTextType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'ref':
+            childobj_ = docRefTextType.factory()
+            childobj_.build(child_)
+            obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
+                                    MixedContainer.TypeNone, 'ref', childobj_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.TEXT_NODE:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                                    MixedContainer.TypeNone, '', child_.nodeValue)
+            self.content_.append(obj_)
+# end class linkedTextType
+
+
+class graphType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, node=None):
+        if node is None:
+            self.node = []
+        else:
+            self.node = node
+
+    def factory(*args_, **kwargs_):
+        if graphType.subclass:
+            return graphType.subclass(*args_, **kwargs_)
+        else:
+            return graphType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_node(self): return self.node
+    def set_node(self, node): self.node = node
+    def add_node(self, value): self.node.append(value)
+    def insert_node(self, index, value): self.node[index] = value
+
+    def export(self, outfile, level, namespace_='', name_='graphType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='graphType')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='graphType'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='graphType'):
+        for node_ in self.node:
+            node_.export(outfile, level, namespace_, name_='node')
+
+    def hasContent_(self):
+        if (
+            self.node is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='graphType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('node=[\n')
+        level += 1
+        for node in self.node:
+            showIndent(outfile, level)
+            outfile.write('model_.node(\n')
+            node.exportLiteral(outfile, level, name_='node')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'node':
+            obj_ = nodeType.factory()
+            obj_.build(child_)
+            self.node.append(obj_)
+# end class graphType
+
+
+class nodeType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, id=None, label=None, link=None, childnode=None):
+        self.id = id
+        self.label = label
+        self.link = link
+        if childnode is None:
+            self.childnode = []
+        else:
+            self.childnode = childnode
+
+    def factory(*args_, **kwargs_):
+        if nodeType.subclass:
+            return nodeType.subclass(*args_, **kwargs_)
+        else:
+            return nodeType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_label(self): return self.label
+    def set_label(self, label): self.label = label
+    def get_link(self): return self.link
+    def set_link(self, link): self.link = link
+    def get_childnode(self): return self.childnode
+    def set_childnode(self, childnode): self.childnode = childnode
+    def add_childnode(self, value): self.childnode.append(value)
+    def insert_childnode(self, index, value): self.childnode[index] = value
+    def get_id(self): return self.id
+    def set_id(self, id): self.id = id
+
+    def export(self, outfile, level, namespace_='', name_='nodeType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='nodeType')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='nodeType'):
+        if self.id is not None:
+            outfile.write(' id=%s' % (self.format_string(quote_attrib(
+                self.id).encode(ExternalEncoding), input_name='id'), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='nodeType'):
+        if self.label is not None:
+            showIndent(outfile, level)
+            outfile.write('<%slabel>%s</%slabel>\n' % (namespace_, self.format_string(
+                quote_xml(self.label).encode(ExternalEncoding), input_name='label'), namespace_))
+        if self.link:
+            self.link.export(outfile, level, namespace_, name_='link')
+        for childnode_ in self.childnode:
+            childnode_.export(outfile, level, namespace_, name_='childnode')
+
+    def hasContent_(self):
+        if (
+            self.label is not None or
+            self.link is not None or
+            self.childnode is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='nodeType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.id is not None:
+            showIndent(outfile, level)
+            outfile.write('id = %s,\n' % (self.id,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('label=%s,\n' % quote_python(
+            self.label).encode(ExternalEncoding))
+        if self.link:
+            showIndent(outfile, level)
+            outfile.write('link=model_.linkType(\n')
+            self.link.exportLiteral(outfile, level, name_='link')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        showIndent(outfile, level)
+        outfile.write('childnode=[\n')
+        level += 1
+        for childnode in self.childnode:
+            showIndent(outfile, level)
+            outfile.write('model_.childnode(\n')
+            childnode.exportLiteral(outfile, level, name_='childnode')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('id'):
+            self.id = attrs.get('id').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'label':
+            label_ = ''
+            for text__content_ in child_.childNodes:
+                label_ += text__content_.nodeValue
+            self.label = label_
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'link':
+            obj_ = linkType.factory()
+            obj_.build(child_)
+            self.set_link(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'childnode':
+            obj_ = childnodeType.factory()
+            obj_.build(child_)
+            self.childnode.append(obj_)
+# end class nodeType
+
+
+class label(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, valueOf_=''):
+        self.valueOf_ = valueOf_
+
+    def factory(*args_, **kwargs_):
+        if label.subclass:
+            return label.subclass(*args_, **kwargs_)
+        else:
+            return label(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='label', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='label')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='label'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='label'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='label'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class label
+
+
+class childnodeType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, relation=None, refid=None, edgelabel=None):
+        self.relation = relation
+        self.refid = refid
+        if edgelabel is None:
+            self.edgelabel = []
+        else:
+            self.edgelabel = edgelabel
+
+    def factory(*args_, **kwargs_):
+        if childnodeType.subclass:
+            return childnodeType.subclass(*args_, **kwargs_)
+        else:
+            return childnodeType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_edgelabel(self): return self.edgelabel
+    def set_edgelabel(self, edgelabel): self.edgelabel = edgelabel
+    def add_edgelabel(self, value): self.edgelabel.append(value)
+    def insert_edgelabel(self, index, value): self.edgelabel[index] = value
+    def get_relation(self): return self.relation
+    def set_relation(self, relation): self.relation = relation
+    def get_refid(self): return self.refid
+    def set_refid(self, refid): self.refid = refid
+
+    def export(self, outfile, level, namespace_='', name_='childnodeType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='childnodeType')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='childnodeType'):
+        if self.relation is not None:
+            outfile.write(' relation=%s' % (quote_attrib(self.relation), ))
+        if self.refid is not None:
+            outfile.write(' refid=%s' % (self.format_string(quote_attrib(
+                self.refid).encode(ExternalEncoding), input_name='refid'), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='childnodeType'):
+        for edgelabel_ in self.edgelabel:
+            showIndent(outfile, level)
+            outfile.write('<%sedgelabel>%s</%sedgelabel>\n' % (namespace_, self.format_string(
+                quote_xml(edgelabel_).encode(ExternalEncoding), input_name='edgelabel'), namespace_))
+
+    def hasContent_(self):
+        if (
+            self.edgelabel is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='childnodeType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.relation is not None:
+            showIndent(outfile, level)
+            outfile.write('relation = "%s",\n' % (self.relation,))
+        if self.refid is not None:
+            showIndent(outfile, level)
+            outfile.write('refid = %s,\n' % (self.refid,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('edgelabel=[\n')
+        level += 1
+        for edgelabel in self.edgelabel:
+            showIndent(outfile, level)
+            outfile.write('%s,\n' % quote_python(
+                edgelabel).encode(ExternalEncoding))
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('relation'):
+            self.relation = attrs.get('relation').value
+        if attrs.get('refid'):
+            self.refid = attrs.get('refid').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'edgelabel':
+            edgelabel_ = ''
+            for text__content_ in child_.childNodes:
+                edgelabel_ += text__content_.nodeValue
+            self.edgelabel.append(edgelabel_)
+# end class childnodeType
+
+
+class edgelabel(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, valueOf_=''):
+        self.valueOf_ = valueOf_
+
+    def factory(*args_, **kwargs_):
+        if edgelabel.subclass:
+            return edgelabel.subclass(*args_, **kwargs_)
+        else:
+            return edgelabel(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='edgelabel', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='edgelabel')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='edgelabel'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='edgelabel'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='edgelabel'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class edgelabel
+
+
+class linkType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, refid=None, external=None, valueOf_=''):
+        self.refid = refid
+        self.external = external
+        self.valueOf_ = valueOf_
+
+    def factory(*args_, **kwargs_):
+        if linkType.subclass:
+            return linkType.subclass(*args_, **kwargs_)
+        else:
+            return linkType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_refid(self): return self.refid
+    def set_refid(self, refid): self.refid = refid
+    def get_external(self): return self.external
+    def set_external(self, external): self.external = external
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='linkType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='linkType')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='linkType'):
+        if self.refid is not None:
+            outfile.write(' refid=%s' % (self.format_string(quote_attrib(
+                self.refid).encode(ExternalEncoding), input_name='refid'), ))
+        if self.external is not None:
+            outfile.write(' external=%s' % (self.format_string(quote_attrib(
+                self.external).encode(ExternalEncoding), input_name='external'), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='linkType'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='linkType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.refid is not None:
+            showIndent(outfile, level)
+            outfile.write('refid = %s,\n' % (self.refid,))
+        if self.external is not None:
+            showIndent(outfile, level)
+            outfile.write('external = %s,\n' % (self.external,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('refid'):
+            self.refid = attrs.get('refid').value
+        if attrs.get('external'):
+            self.external = attrs.get('external').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class linkType
+
+
+class listingType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, codeline=None):
+        if codeline is None:
+            self.codeline = []
+        else:
+            self.codeline = codeline
+
+    def factory(*args_, **kwargs_):
+        if listingType.subclass:
+            return listingType.subclass(*args_, **kwargs_)
+        else:
+            return listingType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_codeline(self): return self.codeline
+    def set_codeline(self, codeline): self.codeline = codeline
+    def add_codeline(self, value): self.codeline.append(value)
+    def insert_codeline(self, index, value): self.codeline[index] = value
+
+    def export(self, outfile, level, namespace_='', name_='listingType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='listingType')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='listingType'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='listingType'):
+        for codeline_ in self.codeline:
+            codeline_.export(outfile, level, namespace_, name_='codeline')
+
+    def hasContent_(self):
+        if (
+            self.codeline is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='listingType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('codeline=[\n')
+        level += 1
+        for codeline in self.codeline:
+            showIndent(outfile, level)
+            outfile.write('model_.codeline(\n')
+            codeline.exportLiteral(outfile, level, name_='codeline')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'codeline':
+            obj_ = codelineType.factory()
+            obj_.build(child_)
+            self.codeline.append(obj_)
+# end class listingType
+
+
+class codelineType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, external=None, lineno=None, refkind=None, refid=None, highlight=None):
+        self.external = external
+        self.lineno = lineno
+        self.refkind = refkind
+        self.refid = refid
+        if highlight is None:
+            self.highlight = []
+        else:
+            self.highlight = highlight
+
+    def factory(*args_, **kwargs_):
+        if codelineType.subclass:
+            return codelineType.subclass(*args_, **kwargs_)
+        else:
+            return codelineType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_highlight(self): return self.highlight
+    def set_highlight(self, highlight): self.highlight = highlight
+    def add_highlight(self, value): self.highlight.append(value)
+    def insert_highlight(self, index, value): self.highlight[index] = value
+    def get_external(self): return self.external
+    def set_external(self, external): self.external = external
+    def get_lineno(self): return self.lineno
+    def set_lineno(self, lineno): self.lineno = lineno
+    def get_refkind(self): return self.refkind
+    def set_refkind(self, refkind): self.refkind = refkind
+    def get_refid(self): return self.refid
+    def set_refid(self, refid): self.refid = refid
+
+    def export(self, outfile, level, namespace_='', name_='codelineType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='codelineType')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='codelineType'):
+        if self.external is not None:
+            outfile.write(' external=%s' % (quote_attrib(self.external), ))
+        if self.lineno is not None:
+            outfile.write(' lineno="%s"' % self.format_integer(
+                self.lineno, input_name='lineno'))
+        if self.refkind is not None:
+            outfile.write(' refkind=%s' % (quote_attrib(self.refkind), ))
+        if self.refid is not None:
+            outfile.write(' refid=%s' % (self.format_string(quote_attrib(
+                self.refid).encode(ExternalEncoding), input_name='refid'), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='codelineType'):
+        for highlight_ in self.highlight:
+            highlight_.export(outfile, level, namespace_, name_='highlight')
+
+    def hasContent_(self):
+        if (
+            self.highlight is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='codelineType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.external is not None:
+            showIndent(outfile, level)
+            outfile.write('external = "%s",\n' % (self.external,))
+        if self.lineno is not None:
+            showIndent(outfile, level)
+            outfile.write('lineno = %s,\n' % (self.lineno,))
+        if self.refkind is not None:
+            showIndent(outfile, level)
+            outfile.write('refkind = "%s",\n' % (self.refkind,))
+        if self.refid is not None:
+            showIndent(outfile, level)
+            outfile.write('refid = %s,\n' % (self.refid,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('highlight=[\n')
+        level += 1
+        for highlight in self.highlight:
+            showIndent(outfile, level)
+            outfile.write('model_.highlight(\n')
+            highlight.exportLiteral(outfile, level, name_='highlight')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('external'):
+            self.external = attrs.get('external').value
+        if attrs.get('lineno'):
+            try:
+                self.lineno = int(attrs.get('lineno').value)
+            except ValueError as exp:
+                raise ValueError('Bad integer attribute (lineno): %s' % exp)
+        if attrs.get('refkind'):
+            self.refkind = attrs.get('refkind').value
+        if attrs.get('refid'):
+            self.refid = attrs.get('refid').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'highlight':
+            obj_ = highlightType.factory()
+            obj_.build(child_)
+            self.highlight.append(obj_)
+# end class codelineType
+
+
+class highlightType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, classxx=None, sp=None, ref=None, mixedclass_=None, content_=None):
+        self.classxx = classxx
+        if mixedclass_ is None:
+            self.mixedclass_ = MixedContainer
+        else:
+            self.mixedclass_ = mixedclass_
+        if content_ is None:
+            self.content_ = []
+        else:
+            self.content_ = content_
+
+    def factory(*args_, **kwargs_):
+        if highlightType.subclass:
+            return highlightType.subclass(*args_, **kwargs_)
+        else:
+            return highlightType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_sp(self): return self.sp
+    def set_sp(self, sp): self.sp = sp
+    def add_sp(self, value): self.sp.append(value)
+    def insert_sp(self, index, value): self.sp[index] = value
+    def get_ref(self): return self.ref
+    def set_ref(self, ref): self.ref = ref
+    def add_ref(self, value): self.ref.append(value)
+    def insert_ref(self, index, value): self.ref[index] = value
+    def get_class(self): return self.classxx
+    def set_class(self, classxx): self.classxx = classxx
+
+    def export(self, outfile, level, namespace_='', name_='highlightType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='highlightType')
+        outfile.write('>')
+        self.exportChildren(outfile, level + 1, namespace_, name_)
+        outfile.write('</%s%s>\n' % (namespace_, name_))
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='highlightType'):
+        if self.classxx is not None:
+            outfile.write(' class=%s' % (quote_attrib(self.classxx), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='highlightType'):
+        for item_ in self.content_:
+            item_.export(outfile, level, item_.name, namespace_)
+
+    def hasContent_(self):
+        if (
+            self.sp is not None or
+            self.ref is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='highlightType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.classxx is not None:
+            showIndent(outfile, level)
+            outfile.write('classxx = "%s",\n' % (self.classxx,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('class'):
+            self.classxx = attrs.get('class').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'sp':
+            value_ = []
+            for text_ in child_.childNodes:
+                value_.append(text_.nodeValue)
+            valuestr_ = ''.join(value_)
+            obj_ = self.mixedclass_(MixedContainer.CategorySimple,
+                                    MixedContainer.TypeString, 'sp', valuestr_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'ref':
+            childobj_ = docRefTextType.factory()
+            childobj_.build(child_)
+            obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
+                                    MixedContainer.TypeNone, 'ref', childobj_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.TEXT_NODE:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                                    MixedContainer.TypeNone, '', child_.nodeValue)
+            self.content_.append(obj_)
+# end class highlightType
+
+
+class sp(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, valueOf_=''):
+        self.valueOf_ = valueOf_
+
+    def factory(*args_, **kwargs_):
+        if sp.subclass:
+            return sp.subclass(*args_, **kwargs_)
+        else:
+            return sp(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='sp', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='sp')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='sp'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='sp'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='sp'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class sp
+
+
+class referenceType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, endline=None, startline=None, refid=None, compoundref=None, valueOf_='', mixedclass_=None, content_=None):
+        self.endline = endline
+        self.startline = startline
+        self.refid = refid
+        self.compoundref = compoundref
+        if mixedclass_ is None:
+            self.mixedclass_ = MixedContainer
+        else:
+            self.mixedclass_ = mixedclass_
+        if content_ is None:
+            self.content_ = []
+        else:
+            self.content_ = content_
+
+    def factory(*args_, **kwargs_):
+        if referenceType.subclass:
+            return referenceType.subclass(*args_, **kwargs_)
+        else:
+            return referenceType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_endline(self): return self.endline
+    def set_endline(self, endline): self.endline = endline
+    def get_startline(self): return self.startline
+    def set_startline(self, startline): self.startline = startline
+    def get_refid(self): return self.refid
+    def set_refid(self, refid): self.refid = refid
+    def get_compoundref(self): return self.compoundref
+    def set_compoundref(self, compoundref): self.compoundref = compoundref
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='referenceType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='referenceType')
+        outfile.write('>')
+        self.exportChildren(outfile, level + 1, namespace_, name_)
+        outfile.write('</%s%s>\n' % (namespace_, name_))
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='referenceType'):
+        if self.endline is not None:
+            outfile.write(' endline="%s"' % self.format_integer(
+                self.endline, input_name='endline'))
+        if self.startline is not None:
+            outfile.write(' startline="%s"' % self.format_integer(
+                self.startline, input_name='startline'))
+        if self.refid is not None:
+            outfile.write(' refid=%s' % (self.format_string(quote_attrib(
+                self.refid).encode(ExternalEncoding), input_name='refid'), ))
+        if self.compoundref is not None:
+            outfile.write(' compoundref=%s' % (self.format_string(quote_attrib(
+                self.compoundref).encode(ExternalEncoding), input_name='compoundref'), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='referenceType'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='referenceType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.endline is not None:
+            showIndent(outfile, level)
+            outfile.write('endline = %s,\n' % (self.endline,))
+        if self.startline is not None:
+            showIndent(outfile, level)
+            outfile.write('startline = %s,\n' % (self.startline,))
+        if self.refid is not None:
+            showIndent(outfile, level)
+            outfile.write('refid = %s,\n' % (self.refid,))
+        if self.compoundref is not None:
+            showIndent(outfile, level)
+            outfile.write('compoundref = %s,\n' % (self.compoundref,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('endline'):
+            try:
+                self.endline = int(attrs.get('endline').value)
+            except ValueError as exp:
+                raise ValueError('Bad integer attribute (endline): %s' % exp)
+        if attrs.get('startline'):
+            try:
+                self.startline = int(attrs.get('startline').value)
+            except ValueError as exp:
+                raise ValueError('Bad integer attribute (startline): %s' % exp)
+        if attrs.get('refid'):
+            self.refid = attrs.get('refid').value
+        if attrs.get('compoundref'):
+            self.compoundref = attrs.get('compoundref').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                                    MixedContainer.TypeNone, '', child_.nodeValue)
+            self.content_.append(obj_)
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class referenceType
+
+
+class locationType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, bodystart=None, line=None, bodyend=None, bodyfile=None, file=None, valueOf_=''):
+        self.bodystart = bodystart
+        self.line = line
+        self.bodyend = bodyend
+        self.bodyfile = bodyfile
+        self.file = file
+        self.valueOf_ = valueOf_
+
+    def factory(*args_, **kwargs_):
+        if locationType.subclass:
+            return locationType.subclass(*args_, **kwargs_)
+        else:
+            return locationType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_bodystart(self): return self.bodystart
+    def set_bodystart(self, bodystart): self.bodystart = bodystart
+    def get_line(self): return self.line
+    def set_line(self, line): self.line = line
+    def get_bodyend(self): return self.bodyend
+    def set_bodyend(self, bodyend): self.bodyend = bodyend
+    def get_bodyfile(self): return self.bodyfile
+    def set_bodyfile(self, bodyfile): self.bodyfile = bodyfile
+    def get_file(self): return self.file
+    def set_file(self, file): self.file = file
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='locationType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='locationType')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='locationType'):
+        if self.bodystart is not None:
+            outfile.write(' bodystart="%s"' % self.format_integer(
+                self.bodystart, input_name='bodystart'))
+        if self.line is not None:
+            outfile.write(' line="%s"' % self.format_integer(
+                self.line, input_name='line'))
+        if self.bodyend is not None:
+            outfile.write(' bodyend="%s"' % self.format_integer(
+                self.bodyend, input_name='bodyend'))
+        if self.bodyfile is not None:
+            outfile.write(' bodyfile=%s' % (self.format_string(quote_attrib(
+                self.bodyfile).encode(ExternalEncoding), input_name='bodyfile'), ))
+        if self.file is not None:
+            outfile.write(' file=%s' % (self.format_string(quote_attrib(
+                self.file).encode(ExternalEncoding), input_name='file'), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='locationType'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='locationType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.bodystart is not None:
+            showIndent(outfile, level)
+            outfile.write('bodystart = %s,\n' % (self.bodystart,))
+        if self.line is not None:
+            showIndent(outfile, level)
+            outfile.write('line = %s,\n' % (self.line,))
+        if self.bodyend is not None:
+            showIndent(outfile, level)
+            outfile.write('bodyend = %s,\n' % (self.bodyend,))
+        if self.bodyfile is not None:
+            showIndent(outfile, level)
+            outfile.write('bodyfile = %s,\n' % (self.bodyfile,))
+        if self.file is not None:
+            showIndent(outfile, level)
+            outfile.write('file = %s,\n' % (self.file,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('bodystart'):
+            try:
+                self.bodystart = int(attrs.get('bodystart').value)
+            except ValueError as exp:
+                raise ValueError('Bad integer attribute (bodystart): %s' % exp)
+        if attrs.get('line'):
+            try:
+                self.line = int(attrs.get('line').value)
+            except ValueError as exp:
+                raise ValueError('Bad integer attribute (line): %s' % exp)
+        if attrs.get('bodyend'):
+            try:
+                self.bodyend = int(attrs.get('bodyend').value)
+            except ValueError as exp:
+                raise ValueError('Bad integer attribute (bodyend): %s' % exp)
+        if attrs.get('bodyfile'):
+            self.bodyfile = attrs.get('bodyfile').value
+        if attrs.get('file'):
+            self.file = attrs.get('file').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class locationType
+
+
+class docSect1Type(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, id=None, title=None, para=None, sect2=None, internal=None, mixedclass_=None, content_=None):
+        self.id = id
+        if mixedclass_ is None:
+            self.mixedclass_ = MixedContainer
+        else:
+            self.mixedclass_ = mixedclass_
+        if content_ is None:
+            self.content_ = []
+        else:
+            self.content_ = content_
+
+    def factory(*args_, **kwargs_):
+        if docSect1Type.subclass:
+            return docSect1Type.subclass(*args_, **kwargs_)
+        else:
+            return docSect1Type(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_title(self): return self.title
+    def set_title(self, title): self.title = title
+    def get_para(self): return self.para
+    def set_para(self, para): self.para = para
+    def add_para(self, value): self.para.append(value)
+    def insert_para(self, index, value): self.para[index] = value
+    def get_sect2(self): return self.sect2
+    def set_sect2(self, sect2): self.sect2 = sect2
+    def add_sect2(self, value): self.sect2.append(value)
+    def insert_sect2(self, index, value): self.sect2[index] = value
+    def get_internal(self): return self.internal
+    def set_internal(self, internal): self.internal = internal
+    def get_id(self): return self.id
+    def set_id(self, id): self.id = id
+
+    def export(self, outfile, level, namespace_='', name_='docSect1Type', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='docSect1Type')
+        outfile.write('>')
+        self.exportChildren(outfile, level + 1, namespace_, name_)
+        outfile.write('</%s%s>\n' % (namespace_, name_))
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docSect1Type'):
+        if self.id is not None:
+            outfile.write(' id=%s' % (self.format_string(quote_attrib(
+                self.id).encode(ExternalEncoding), input_name='id'), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docSect1Type'):
+        for item_ in self.content_:
+            item_.export(outfile, level, item_.name, namespace_)
+
+    def hasContent_(self):
+        if (
+            self.title is not None or
+            self.para is not None or
+            self.sect2 is not None or
+            self.internal is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docSect1Type'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.id is not None:
+            showIndent(outfile, level)
+            outfile.write('id = %s,\n' % (self.id,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('id'):
+            self.id = attrs.get('id').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'title':
+            childobj_ = docTitleType.factory()
+            childobj_.build(child_)
+            obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
+                                    MixedContainer.TypeNone, 'title', childobj_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'para':
+            childobj_ = docParaType.factory()
+            childobj_.build(child_)
+            obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
+                                    MixedContainer.TypeNone, 'para', childobj_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'sect2':
+            childobj_ = docSect2Type.factory()
+            childobj_.build(child_)
+            obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
+                                    MixedContainer.TypeNone, 'sect2', childobj_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'internal':
+            childobj_ = docInternalS1Type.factory()
+            childobj_.build(child_)
+            obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
+                                    MixedContainer.TypeNone, 'internal', childobj_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.TEXT_NODE:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                                    MixedContainer.TypeNone, '', child_.nodeValue)
+            self.content_.append(obj_)
+# end class docSect1Type
+
+
+class docSect2Type(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, id=None, title=None, para=None, sect3=None, internal=None, mixedclass_=None, content_=None):
+        self.id = id
+        if mixedclass_ is None:
+            self.mixedclass_ = MixedContainer
+        else:
+            self.mixedclass_ = mixedclass_
+        if content_ is None:
+            self.content_ = []
+        else:
+            self.content_ = content_
+
+    def factory(*args_, **kwargs_):
+        if docSect2Type.subclass:
+            return docSect2Type.subclass(*args_, **kwargs_)
+        else:
+            return docSect2Type(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_title(self): return self.title
+    def set_title(self, title): self.title = title
+    def get_para(self): return self.para
+    def set_para(self, para): self.para = para
+    def add_para(self, value): self.para.append(value)
+    def insert_para(self, index, value): self.para[index] = value
+    def get_sect3(self): return self.sect3
+    def set_sect3(self, sect3): self.sect3 = sect3
+    def add_sect3(self, value): self.sect3.append(value)
+    def insert_sect3(self, index, value): self.sect3[index] = value
+    def get_internal(self): return self.internal
+    def set_internal(self, internal): self.internal = internal
+    def get_id(self): return self.id
+    def set_id(self, id): self.id = id
+
+    def export(self, outfile, level, namespace_='', name_='docSect2Type', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='docSect2Type')
+        outfile.write('>')
+        self.exportChildren(outfile, level + 1, namespace_, name_)
+        outfile.write('</%s%s>\n' % (namespace_, name_))
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docSect2Type'):
+        if self.id is not None:
+            outfile.write(' id=%s' % (self.format_string(quote_attrib(
+                self.id).encode(ExternalEncoding), input_name='id'), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docSect2Type'):
+        for item_ in self.content_:
+            item_.export(outfile, level, item_.name, namespace_)
+
+    def hasContent_(self):
+        if (
+            self.title is not None or
+            self.para is not None or
+            self.sect3 is not None or
+            self.internal is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docSect2Type'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.id is not None:
+            showIndent(outfile, level)
+            outfile.write('id = %s,\n' % (self.id,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('id'):
+            self.id = attrs.get('id').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'title':
+            childobj_ = docTitleType.factory()
+            childobj_.build(child_)
+            obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
+                                    MixedContainer.TypeNone, 'title', childobj_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'para':
+            childobj_ = docParaType.factory()
+            childobj_.build(child_)
+            obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
+                                    MixedContainer.TypeNone, 'para', childobj_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'sect3':
+            childobj_ = docSect3Type.factory()
+            childobj_.build(child_)
+            obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
+                                    MixedContainer.TypeNone, 'sect3', childobj_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'internal':
+            childobj_ = docInternalS2Type.factory()
+            childobj_.build(child_)
+            obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
+                                    MixedContainer.TypeNone, 'internal', childobj_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.TEXT_NODE:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                                    MixedContainer.TypeNone, '', child_.nodeValue)
+            self.content_.append(obj_)
+# end class docSect2Type
+
+
+class docSect3Type(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, id=None, title=None, para=None, sect4=None, internal=None, mixedclass_=None, content_=None):
+        self.id = id
+        if mixedclass_ is None:
+            self.mixedclass_ = MixedContainer
+        else:
+            self.mixedclass_ = mixedclass_
+        if content_ is None:
+            self.content_ = []
+        else:
+            self.content_ = content_
+
+    def factory(*args_, **kwargs_):
+        if docSect3Type.subclass:
+            return docSect3Type.subclass(*args_, **kwargs_)
+        else:
+            return docSect3Type(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_title(self): return self.title
+    def set_title(self, title): self.title = title
+    def get_para(self): return self.para
+    def set_para(self, para): self.para = para
+    def add_para(self, value): self.para.append(value)
+    def insert_para(self, index, value): self.para[index] = value
+    def get_sect4(self): return self.sect4
+    def set_sect4(self, sect4): self.sect4 = sect4
+    def add_sect4(self, value): self.sect4.append(value)
+    def insert_sect4(self, index, value): self.sect4[index] = value
+    def get_internal(self): return self.internal
+    def set_internal(self, internal): self.internal = internal
+    def get_id(self): return self.id
+    def set_id(self, id): self.id = id
+
+    def export(self, outfile, level, namespace_='', name_='docSect3Type', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='docSect3Type')
+        outfile.write('>')
+        self.exportChildren(outfile, level + 1, namespace_, name_)
+        outfile.write('</%s%s>\n' % (namespace_, name_))
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docSect3Type'):
+        if self.id is not None:
+            outfile.write(' id=%s' % (self.format_string(quote_attrib(
+                self.id).encode(ExternalEncoding), input_name='id'), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docSect3Type'):
+        for item_ in self.content_:
+            item_.export(outfile, level, item_.name, namespace_)
+
+    def hasContent_(self):
+        if (
+            self.title is not None or
+            self.para is not None or
+            self.sect4 is not None or
+            self.internal is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docSect3Type'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.id is not None:
+            showIndent(outfile, level)
+            outfile.write('id = %s,\n' % (self.id,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('id'):
+            self.id = attrs.get('id').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'title':
+            childobj_ = docTitleType.factory()
+            childobj_.build(child_)
+            obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
+                                    MixedContainer.TypeNone, 'title', childobj_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'para':
+            childobj_ = docParaType.factory()
+            childobj_.build(child_)
+            obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
+                                    MixedContainer.TypeNone, 'para', childobj_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'sect4':
+            childobj_ = docSect4Type.factory()
+            childobj_.build(child_)
+            obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
+                                    MixedContainer.TypeNone, 'sect4', childobj_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'internal':
+            childobj_ = docInternalS3Type.factory()
+            childobj_.build(child_)
+            obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
+                                    MixedContainer.TypeNone, 'internal', childobj_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.TEXT_NODE:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                                    MixedContainer.TypeNone, '', child_.nodeValue)
+            self.content_.append(obj_)
+# end class docSect3Type
+
+
+class docSect4Type(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, id=None, title=None, para=None, internal=None, mixedclass_=None, content_=None):
+        self.id = id
+        if mixedclass_ is None:
+            self.mixedclass_ = MixedContainer
+        else:
+            self.mixedclass_ = mixedclass_
+        if content_ is None:
+            self.content_ = []
+        else:
+            self.content_ = content_
+
+    def factory(*args_, **kwargs_):
+        if docSect4Type.subclass:
+            return docSect4Type.subclass(*args_, **kwargs_)
+        else:
+            return docSect4Type(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_title(self): return self.title
+    def set_title(self, title): self.title = title
+    def get_para(self): return self.para
+    def set_para(self, para): self.para = para
+    def add_para(self, value): self.para.append(value)
+    def insert_para(self, index, value): self.para[index] = value
+    def get_internal(self): return self.internal
+    def set_internal(self, internal): self.internal = internal
+    def get_id(self): return self.id
+    def set_id(self, id): self.id = id
+
+    def export(self, outfile, level, namespace_='', name_='docSect4Type', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='docSect4Type')
+        outfile.write('>')
+        self.exportChildren(outfile, level + 1, namespace_, name_)
+        outfile.write('</%s%s>\n' % (namespace_, name_))
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docSect4Type'):
+        if self.id is not None:
+            outfile.write(' id=%s' % (self.format_string(quote_attrib(
+                self.id).encode(ExternalEncoding), input_name='id'), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docSect4Type'):
+        for item_ in self.content_:
+            item_.export(outfile, level, item_.name, namespace_)
+
+    def hasContent_(self):
+        if (
+            self.title is not None or
+            self.para is not None or
+            self.internal is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docSect4Type'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.id is not None:
+            showIndent(outfile, level)
+            outfile.write('id = %s,\n' % (self.id,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('id'):
+            self.id = attrs.get('id').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'title':
+            childobj_ = docTitleType.factory()
+            childobj_.build(child_)
+            obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
+                                    MixedContainer.TypeNone, 'title', childobj_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'para':
+            childobj_ = docParaType.factory()
+            childobj_.build(child_)
+            obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
+                                    MixedContainer.TypeNone, 'para', childobj_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'internal':
+            childobj_ = docInternalS4Type.factory()
+            childobj_.build(child_)
+            obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
+                                    MixedContainer.TypeNone, 'internal', childobj_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.TEXT_NODE:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                                    MixedContainer.TypeNone, '', child_.nodeValue)
+            self.content_.append(obj_)
+# end class docSect4Type
+
+
+class docInternalType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, para=None, sect1=None, mixedclass_=None, content_=None):
+        if mixedclass_ is None:
+            self.mixedclass_ = MixedContainer
+        else:
+            self.mixedclass_ = mixedclass_
+        if content_ is None:
+            self.content_ = []
+        else:
+            self.content_ = content_
+
+    def factory(*args_, **kwargs_):
+        if docInternalType.subclass:
+            return docInternalType.subclass(*args_, **kwargs_)
+        else:
+            return docInternalType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_para(self): return self.para
+    def set_para(self, para): self.para = para
+    def add_para(self, value): self.para.append(value)
+    def insert_para(self, index, value): self.para[index] = value
+    def get_sect1(self): return self.sect1
+    def set_sect1(self, sect1): self.sect1 = sect1
+    def add_sect1(self, value): self.sect1.append(value)
+    def insert_sect1(self, index, value): self.sect1[index] = value
+
+    def export(self, outfile, level, namespace_='', name_='docInternalType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='docInternalType')
+        outfile.write('>')
+        self.exportChildren(outfile, level + 1, namespace_, name_)
+        outfile.write('</%s%s>\n' % (namespace_, name_))
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docInternalType'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docInternalType'):
+        for item_ in self.content_:
+            item_.export(outfile, level, item_.name, namespace_)
+
+    def hasContent_(self):
+        if (
+            self.para is not None or
+            self.sect1 is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docInternalType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'para':
+            childobj_ = docParaType.factory()
+            childobj_.build(child_)
+            obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
+                                    MixedContainer.TypeNone, 'para', childobj_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'sect1':
+            childobj_ = docSect1Type.factory()
+            childobj_.build(child_)
+            obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
+                                    MixedContainer.TypeNone, 'sect1', childobj_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.TEXT_NODE:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                                    MixedContainer.TypeNone, '', child_.nodeValue)
+            self.content_.append(obj_)
+# end class docInternalType
+
+
+class docInternalS1Type(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, para=None, sect2=None, mixedclass_=None, content_=None):
+        if mixedclass_ is None:
+            self.mixedclass_ = MixedContainer
+        else:
+            self.mixedclass_ = mixedclass_
+        if content_ is None:
+            self.content_ = []
+        else:
+            self.content_ = content_
+
+    def factory(*args_, **kwargs_):
+        if docInternalS1Type.subclass:
+            return docInternalS1Type.subclass(*args_, **kwargs_)
+        else:
+            return docInternalS1Type(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_para(self): return self.para
+    def set_para(self, para): self.para = para
+    def add_para(self, value): self.para.append(value)
+    def insert_para(self, index, value): self.para[index] = value
+    def get_sect2(self): return self.sect2
+    def set_sect2(self, sect2): self.sect2 = sect2
+    def add_sect2(self, value): self.sect2.append(value)
+    def insert_sect2(self, index, value): self.sect2[index] = value
+
+    def export(self, outfile, level, namespace_='', name_='docInternalS1Type', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='docInternalS1Type')
+        outfile.write('>')
+        self.exportChildren(outfile, level + 1, namespace_, name_)
+        outfile.write('</%s%s>\n' % (namespace_, name_))
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docInternalS1Type'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docInternalS1Type'):
+        for item_ in self.content_:
+            item_.export(outfile, level, item_.name, namespace_)
+
+    def hasContent_(self):
+        if (
+            self.para is not None or
+            self.sect2 is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docInternalS1Type'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'para':
+            childobj_ = docParaType.factory()
+            childobj_.build(child_)
+            obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
+                                    MixedContainer.TypeNone, 'para', childobj_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'sect2':
+            childobj_ = docSect2Type.factory()
+            childobj_.build(child_)
+            obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
+                                    MixedContainer.TypeNone, 'sect2', childobj_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.TEXT_NODE:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                                    MixedContainer.TypeNone, '', child_.nodeValue)
+            self.content_.append(obj_)
+# end class docInternalS1Type
+
+
+class docInternalS2Type(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, para=None, sect3=None, mixedclass_=None, content_=None):
+        if mixedclass_ is None:
+            self.mixedclass_ = MixedContainer
+        else:
+            self.mixedclass_ = mixedclass_
+        if content_ is None:
+            self.content_ = []
+        else:
+            self.content_ = content_
+
+    def factory(*args_, **kwargs_):
+        if docInternalS2Type.subclass:
+            return docInternalS2Type.subclass(*args_, **kwargs_)
+        else:
+            return docInternalS2Type(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_para(self): return self.para
+    def set_para(self, para): self.para = para
+    def add_para(self, value): self.para.append(value)
+    def insert_para(self, index, value): self.para[index] = value
+    def get_sect3(self): return self.sect3
+    def set_sect3(self, sect3): self.sect3 = sect3
+    def add_sect3(self, value): self.sect3.append(value)
+    def insert_sect3(self, index, value): self.sect3[index] = value
+
+    def export(self, outfile, level, namespace_='', name_='docInternalS2Type', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='docInternalS2Type')
+        outfile.write('>')
+        self.exportChildren(outfile, level + 1, namespace_, name_)
+        outfile.write('</%s%s>\n' % (namespace_, name_))
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docInternalS2Type'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docInternalS2Type'):
+        for item_ in self.content_:
+            item_.export(outfile, level, item_.name, namespace_)
+
+    def hasContent_(self):
+        if (
+            self.para is not None or
+            self.sect3 is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docInternalS2Type'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'para':
+            childobj_ = docParaType.factory()
+            childobj_.build(child_)
+            obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
+                                    MixedContainer.TypeNone, 'para', childobj_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'sect3':
+            childobj_ = docSect3Type.factory()
+            childobj_.build(child_)
+            obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
+                                    MixedContainer.TypeNone, 'sect3', childobj_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.TEXT_NODE:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                                    MixedContainer.TypeNone, '', child_.nodeValue)
+            self.content_.append(obj_)
+# end class docInternalS2Type
+
+
+class docInternalS3Type(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, para=None, sect3=None, mixedclass_=None, content_=None):
+        if mixedclass_ is None:
+            self.mixedclass_ = MixedContainer
+        else:
+            self.mixedclass_ = mixedclass_
+        if content_ is None:
+            self.content_ = []
+        else:
+            self.content_ = content_
+
+    def factory(*args_, **kwargs_):
+        if docInternalS3Type.subclass:
+            return docInternalS3Type.subclass(*args_, **kwargs_)
+        else:
+            return docInternalS3Type(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_para(self): return self.para
+    def set_para(self, para): self.para = para
+    def add_para(self, value): self.para.append(value)
+    def insert_para(self, index, value): self.para[index] = value
+    def get_sect3(self): return self.sect3
+    def set_sect3(self, sect3): self.sect3 = sect3
+    def add_sect3(self, value): self.sect3.append(value)
+    def insert_sect3(self, index, value): self.sect3[index] = value
+
+    def export(self, outfile, level, namespace_='', name_='docInternalS3Type', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='docInternalS3Type')
+        outfile.write('>')
+        self.exportChildren(outfile, level + 1, namespace_, name_)
+        outfile.write('</%s%s>\n' % (namespace_, name_))
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docInternalS3Type'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docInternalS3Type'):
+        for item_ in self.content_:
+            item_.export(outfile, level, item_.name, namespace_)
+
+    def hasContent_(self):
+        if (
+            self.para is not None or
+            self.sect3 is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docInternalS3Type'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'para':
+            childobj_ = docParaType.factory()
+            childobj_.build(child_)
+            obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
+                                    MixedContainer.TypeNone, 'para', childobj_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'sect3':
+            childobj_ = docSect4Type.factory()
+            childobj_.build(child_)
+            obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
+                                    MixedContainer.TypeNone, 'sect3', childobj_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.TEXT_NODE:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                                    MixedContainer.TypeNone, '', child_.nodeValue)
+            self.content_.append(obj_)
+# end class docInternalS3Type
+
+
+class docInternalS4Type(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, para=None, mixedclass_=None, content_=None):
+        if mixedclass_ is None:
+            self.mixedclass_ = MixedContainer
+        else:
+            self.mixedclass_ = mixedclass_
+        if content_ is None:
+            self.content_ = []
+        else:
+            self.content_ = content_
+
+    def factory(*args_, **kwargs_):
+        if docInternalS4Type.subclass:
+            return docInternalS4Type.subclass(*args_, **kwargs_)
+        else:
+            return docInternalS4Type(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_para(self): return self.para
+    def set_para(self, para): self.para = para
+    def add_para(self, value): self.para.append(value)
+    def insert_para(self, index, value): self.para[index] = value
+
+    def export(self, outfile, level, namespace_='', name_='docInternalS4Type', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='docInternalS4Type')
+        outfile.write('>')
+        self.exportChildren(outfile, level + 1, namespace_, name_)
+        outfile.write('</%s%s>\n' % (namespace_, name_))
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docInternalS4Type'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docInternalS4Type'):
+        for item_ in self.content_:
+            item_.export(outfile, level, item_.name, namespace_)
+
+    def hasContent_(self):
+        if (
+            self.para is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docInternalS4Type'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'para':
+            childobj_ = docParaType.factory()
+            childobj_.build(child_)
+            obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
+                                    MixedContainer.TypeNone, 'para', childobj_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.TEXT_NODE:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                                    MixedContainer.TypeNone, '', child_.nodeValue)
+            self.content_.append(obj_)
+# end class docInternalS4Type
+
+
+class docTitleType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, valueOf_='', mixedclass_=None, content_=None):
+        if mixedclass_ is None:
+            self.mixedclass_ = MixedContainer
+        else:
+            self.mixedclass_ = mixedclass_
+        if content_ is None:
+            self.content_ = []
+        else:
+            self.content_ = content_
+
+    def factory(*args_, **kwargs_):
+        if docTitleType.subclass:
+            return docTitleType.subclass(*args_, **kwargs_)
+        else:
+            return docTitleType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='docTitleType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='docTitleType')
+        outfile.write('>')
+        self.exportChildren(outfile, level + 1, namespace_, name_)
+        outfile.write('</%s%s>\n' % (namespace_, name_))
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docTitleType'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docTitleType'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docTitleType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                                    MixedContainer.TypeNone, '', child_.nodeValue)
+            self.content_.append(obj_)
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class docTitleType
+
+
+class docParaType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, valueOf_='', mixedclass_=None, content_=None):
+        if mixedclass_ is None:
+            self.mixedclass_ = MixedContainer
+        else:
+            self.mixedclass_ = mixedclass_
+        if content_ is None:
+            self.content_ = []
+        else:
+            self.content_ = content_
+
+    def factory(*args_, **kwargs_):
+        if docParaType.subclass:
+            return docParaType.subclass(*args_, **kwargs_)
+        else:
+            return docParaType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='docParaType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='docParaType')
+        outfile.write('>')
+        self.exportChildren(outfile, level + 1, namespace_, name_)
+        outfile.write('</%s%s>\n' % (namespace_, name_))
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docParaType'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docParaType'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docParaType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                                    MixedContainer.TypeNone, '', child_.nodeValue)
+            self.content_.append(obj_)
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class docParaType
+
+
+class docMarkupType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, valueOf_='', mixedclass_=None, content_=None):
+        if mixedclass_ is None:
+            self.mixedclass_ = MixedContainer
+        else:
+            self.mixedclass_ = mixedclass_
+        if content_ is None:
+            self.content_ = []
+        else:
+            self.content_ = content_
+
+    def factory(*args_, **kwargs_):
+        if docMarkupType.subclass:
+            return docMarkupType.subclass(*args_, **kwargs_)
+        else:
+            return docMarkupType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='docMarkupType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='docMarkupType')
+        outfile.write('>')
+        self.exportChildren(outfile, level + 1, namespace_, name_)
+        outfile.write('</%s%s>\n' % (namespace_, name_))
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docMarkupType'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docMarkupType'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docMarkupType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                                    MixedContainer.TypeNone, '', child_.nodeValue)
+            self.content_.append(obj_)
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class docMarkupType
+
+
+class docURLLink(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, url=None, valueOf_='', mixedclass_=None, content_=None):
+        self.url = url
+        if mixedclass_ is None:
+            self.mixedclass_ = MixedContainer
+        else:
+            self.mixedclass_ = mixedclass_
+        if content_ is None:
+            self.content_ = []
+        else:
+            self.content_ = content_
+
+    def factory(*args_, **kwargs_):
+        if docURLLink.subclass:
+            return docURLLink.subclass(*args_, **kwargs_)
+        else:
+            return docURLLink(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_url(self): return self.url
+    def set_url(self, url): self.url = url
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='docURLLink', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='docURLLink')
+        outfile.write('>')
+        self.exportChildren(outfile, level + 1, namespace_, name_)
+        outfile.write('</%s%s>\n' % (namespace_, name_))
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docURLLink'):
+        if self.url is not None:
+            outfile.write(' url=%s' % (self.format_string(quote_attrib(
+                self.url).encode(ExternalEncoding), input_name='url'), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docURLLink'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docURLLink'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.url is not None:
+            showIndent(outfile, level)
+            outfile.write('url = %s,\n' % (self.url,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('url'):
+            self.url = attrs.get('url').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                                    MixedContainer.TypeNone, '', child_.nodeValue)
+            self.content_.append(obj_)
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class docURLLink
+
+
+class docAnchorType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, id=None, valueOf_='', mixedclass_=None, content_=None):
+        self.id = id
+        if mixedclass_ is None:
+            self.mixedclass_ = MixedContainer
+        else:
+            self.mixedclass_ = mixedclass_
+        if content_ is None:
+            self.content_ = []
+        else:
+            self.content_ = content_
+
+    def factory(*args_, **kwargs_):
+        if docAnchorType.subclass:
+            return docAnchorType.subclass(*args_, **kwargs_)
+        else:
+            return docAnchorType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_id(self): return self.id
+    def set_id(self, id): self.id = id
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='docAnchorType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='docAnchorType')
+        outfile.write('>')
+        self.exportChildren(outfile, level + 1, namespace_, name_)
+        outfile.write('</%s%s>\n' % (namespace_, name_))
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docAnchorType'):
+        if self.id is not None:
+            outfile.write(' id=%s' % (self.format_string(quote_attrib(
+                self.id).encode(ExternalEncoding), input_name='id'), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docAnchorType'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docAnchorType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.id is not None:
+            showIndent(outfile, level)
+            outfile.write('id = %s,\n' % (self.id,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('id'):
+            self.id = attrs.get('id').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                                    MixedContainer.TypeNone, '', child_.nodeValue)
+            self.content_.append(obj_)
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class docAnchorType
+
+
+class docFormulaType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, id=None, valueOf_='', mixedclass_=None, content_=None):
+        self.id = id
+        if mixedclass_ is None:
+            self.mixedclass_ = MixedContainer
+        else:
+            self.mixedclass_ = mixedclass_
+        if content_ is None:
+            self.content_ = []
+        else:
+            self.content_ = content_
+
+    def factory(*args_, **kwargs_):
+        if docFormulaType.subclass:
+            return docFormulaType.subclass(*args_, **kwargs_)
+        else:
+            return docFormulaType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_id(self): return self.id
+    def set_id(self, id): self.id = id
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='docFormulaType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='docFormulaType')
+        outfile.write('>')
+        self.exportChildren(outfile, level + 1, namespace_, name_)
+        outfile.write('</%s%s>\n' % (namespace_, name_))
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docFormulaType'):
+        if self.id is not None:
+            outfile.write(' id=%s' % (self.format_string(quote_attrib(
+                self.id).encode(ExternalEncoding), input_name='id'), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docFormulaType'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docFormulaType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.id is not None:
+            showIndent(outfile, level)
+            outfile.write('id = %s,\n' % (self.id,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('id'):
+            self.id = attrs.get('id').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                                    MixedContainer.TypeNone, '', child_.nodeValue)
+            self.content_.append(obj_)
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class docFormulaType
+
+
+class docIndexEntryType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, primaryie=None, secondaryie=None):
+        self.primaryie = primaryie
+        self.secondaryie = secondaryie
+
+    def factory(*args_, **kwargs_):
+        if docIndexEntryType.subclass:
+            return docIndexEntryType.subclass(*args_, **kwargs_)
+        else:
+            return docIndexEntryType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_primaryie(self): return self.primaryie
+    def set_primaryie(self, primaryie): self.primaryie = primaryie
+    def get_secondaryie(self): return self.secondaryie
+    def set_secondaryie(self, secondaryie): self.secondaryie = secondaryie
+
+    def export(self, outfile, level, namespace_='', name_='docIndexEntryType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='docIndexEntryType')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docIndexEntryType'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docIndexEntryType'):
+        if self.primaryie is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sprimaryie>%s</%sprimaryie>\n' % (namespace_, self.format_string(
+                quote_xml(self.primaryie).encode(ExternalEncoding), input_name='primaryie'), namespace_))
+        if self.secondaryie is not None:
+            showIndent(outfile, level)
+            outfile.write('<%ssecondaryie>%s</%ssecondaryie>\n' % (namespace_, self.format_string(
+                quote_xml(self.secondaryie).encode(ExternalEncoding), input_name='secondaryie'), namespace_))
+
+    def hasContent_(self):
+        if (
+            self.primaryie is not None or
+            self.secondaryie is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docIndexEntryType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('primaryie=%s,\n' % quote_python(
+            self.primaryie).encode(ExternalEncoding))
+        showIndent(outfile, level)
+        outfile.write('secondaryie=%s,\n' % quote_python(
+            self.secondaryie).encode(ExternalEncoding))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'primaryie':
+            primaryie_ = ''
+            for text__content_ in child_.childNodes:
+                primaryie_ += text__content_.nodeValue
+            self.primaryie = primaryie_
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'secondaryie':
+            secondaryie_ = ''
+            for text__content_ in child_.childNodes:
+                secondaryie_ += text__content_.nodeValue
+            self.secondaryie = secondaryie_
+# end class docIndexEntryType
+
+
+class docListType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, listitem=None):
+        if listitem is None:
+            self.listitem = []
+        else:
+            self.listitem = listitem
+
+    def factory(*args_, **kwargs_):
+        if docListType.subclass:
+            return docListType.subclass(*args_, **kwargs_)
+        else:
+            return docListType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_listitem(self): return self.listitem
+    def set_listitem(self, listitem): self.listitem = listitem
+    def add_listitem(self, value): self.listitem.append(value)
+    def insert_listitem(self, index, value): self.listitem[index] = value
+
+    def export(self, outfile, level, namespace_='', name_='docListType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='docListType')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docListType'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docListType'):
+        for listitem_ in self.listitem:
+            listitem_.export(outfile, level, namespace_, name_='listitem')
+
+    def hasContent_(self):
+        if (
+            self.listitem is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docListType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('listitem=[\n')
+        level += 1
+        for listitem in self.listitem:
+            showIndent(outfile, level)
+            outfile.write('model_.listitem(\n')
+            listitem.exportLiteral(outfile, level, name_='listitem')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'listitem':
+            obj_ = docListItemType.factory()
+            obj_.build(child_)
+            self.listitem.append(obj_)
+# end class docListType
+
+
+class docListItemType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, para=None):
+        if para is None:
+            self.para = []
+        else:
+            self.para = para
+
+    def factory(*args_, **kwargs_):
+        if docListItemType.subclass:
+            return docListItemType.subclass(*args_, **kwargs_)
+        else:
+            return docListItemType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_para(self): return self.para
+    def set_para(self, para): self.para = para
+    def add_para(self, value): self.para.append(value)
+    def insert_para(self, index, value): self.para[index] = value
+
+    def export(self, outfile, level, namespace_='', name_='docListItemType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='docListItemType')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docListItemType'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docListItemType'):
+        for para_ in self.para:
+            para_.export(outfile, level, namespace_, name_='para')
+
+    def hasContent_(self):
+        if (
+            self.para is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docListItemType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('para=[\n')
+        level += 1
+        for para in self.para:
+            showIndent(outfile, level)
+            outfile.write('model_.para(\n')
+            para.exportLiteral(outfile, level, name_='para')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'para':
+            obj_ = docParaType.factory()
+            obj_.build(child_)
+            self.para.append(obj_)
+# end class docListItemType
+
+
+class docSimpleSectType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, kind=None, title=None, para=None):
+        self.kind = kind
+        self.title = title
+        if para is None:
+            self.para = []
+        else:
+            self.para = para
+
+    def factory(*args_, **kwargs_):
+        if docSimpleSectType.subclass:
+            return docSimpleSectType.subclass(*args_, **kwargs_)
+        else:
+            return docSimpleSectType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_title(self): return self.title
+    def set_title(self, title): self.title = title
+    def get_para(self): return self.para
+    def set_para(self, para): self.para = para
+    def add_para(self, value): self.para.append(value)
+    def insert_para(self, index, value): self.para[index] = value
+    def get_kind(self): return self.kind
+    def set_kind(self, kind): self.kind = kind
+
+    def export(self, outfile, level, namespace_='', name_='docSimpleSectType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='docSimpleSectType')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docSimpleSectType'):
+        if self.kind is not None:
+            outfile.write(' kind=%s' % (quote_attrib(self.kind), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docSimpleSectType'):
+        if self.title:
+            self.title.export(outfile, level, namespace_, name_='title')
+        for para_ in self.para:
+            para_.export(outfile, level, namespace_, name_='para')
+
+    def hasContent_(self):
+        if (
+            self.title is not None or
+            self.para is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docSimpleSectType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.kind is not None:
+            showIndent(outfile, level)
+            outfile.write('kind = "%s",\n' % (self.kind,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        if self.title:
+            showIndent(outfile, level)
+            outfile.write('title=model_.docTitleType(\n')
+            self.title.exportLiteral(outfile, level, name_='title')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        showIndent(outfile, level)
+        outfile.write('para=[\n')
+        level += 1
+        for para in self.para:
+            showIndent(outfile, level)
+            outfile.write('model_.para(\n')
+            para.exportLiteral(outfile, level, name_='para')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('kind'):
+            self.kind = attrs.get('kind').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'title':
+            obj_ = docTitleType.factory()
+            obj_.build(child_)
+            self.set_title(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'para':
+            obj_ = docParaType.factory()
+            obj_.build(child_)
+            self.para.append(obj_)
+# end class docSimpleSectType
+
+
+class docVarListEntryType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, term=None):
+        self.term = term
+
+    def factory(*args_, **kwargs_):
+        if docVarListEntryType.subclass:
+            return docVarListEntryType.subclass(*args_, **kwargs_)
+        else:
+            return docVarListEntryType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_term(self): return self.term
+    def set_term(self, term): self.term = term
+
+    def export(self, outfile, level, namespace_='', name_='docVarListEntryType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='docVarListEntryType')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docVarListEntryType'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docVarListEntryType'):
+        if self.term:
+            self.term.export(outfile, level, namespace_, name_='term', )
+
+    def hasContent_(self):
+        if (
+            self.term is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docVarListEntryType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        if self.term:
+            showIndent(outfile, level)
+            outfile.write('term=model_.docTitleType(\n')
+            self.term.exportLiteral(outfile, level, name_='term')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'term':
+            obj_ = docTitleType.factory()
+            obj_.build(child_)
+            self.set_term(obj_)
+# end class docVarListEntryType
+
+
+class docVariableListType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, valueOf_=''):
+        self.valueOf_ = valueOf_
+
+    def factory(*args_, **kwargs_):
+        if docVariableListType.subclass:
+            return docVariableListType.subclass(*args_, **kwargs_)
+        else:
+            return docVariableListType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='docVariableListType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='docVariableListType')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docVariableListType'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docVariableListType'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docVariableListType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class docVariableListType
+
+
+class docRefTextType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, refid=None, kindref=None, external=None, valueOf_='', mixedclass_=None, content_=None):
+        self.refid = refid
+        self.kindref = kindref
+        self.external = external
+        if mixedclass_ is None:
+            self.mixedclass_ = MixedContainer
+        else:
+            self.mixedclass_ = mixedclass_
+        if content_ is None:
+            self.content_ = []
+        else:
+            self.content_ = content_
+
+    def factory(*args_, **kwargs_):
+        if docRefTextType.subclass:
+            return docRefTextType.subclass(*args_, **kwargs_)
+        else:
+            return docRefTextType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_refid(self): return self.refid
+    def set_refid(self, refid): self.refid = refid
+    def get_kindref(self): return self.kindref
+    def set_kindref(self, kindref): self.kindref = kindref
+    def get_external(self): return self.external
+    def set_external(self, external): self.external = external
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='docRefTextType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='docRefTextType')
+        outfile.write('>')
+        self.exportChildren(outfile, level + 1, namespace_, name_)
+        outfile.write('</%s%s>\n' % (namespace_, name_))
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docRefTextType'):
+        if self.refid is not None:
+            outfile.write(' refid=%s' % (self.format_string(quote_attrib(
+                self.refid).encode(ExternalEncoding), input_name='refid'), ))
+        if self.kindref is not None:
+            outfile.write(' kindref=%s' % (quote_attrib(self.kindref), ))
+        if self.external is not None:
+            outfile.write(' external=%s' % (self.format_string(quote_attrib(
+                self.external).encode(ExternalEncoding), input_name='external'), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docRefTextType'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docRefTextType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.refid is not None:
+            showIndent(outfile, level)
+            outfile.write('refid = %s,\n' % (self.refid,))
+        if self.kindref is not None:
+            showIndent(outfile, level)
+            outfile.write('kindref = "%s",\n' % (self.kindref,))
+        if self.external is not None:
+            showIndent(outfile, level)
+            outfile.write('external = %s,\n' % (self.external,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('refid'):
+            self.refid = attrs.get('refid').value
+        if attrs.get('kindref'):
+            self.kindref = attrs.get('kindref').value
+        if attrs.get('external'):
+            self.external = attrs.get('external').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                                    MixedContainer.TypeNone, '', child_.nodeValue)
+            self.content_.append(obj_)
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class docRefTextType
+
+
+class docTableType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, rows=None, cols=None, row=None, caption=None):
+        self.rows = rows
+        self.cols = cols
+        if row is None:
+            self.row = []
+        else:
+            self.row = row
+        self.caption = caption
+
+    def factory(*args_, **kwargs_):
+        if docTableType.subclass:
+            return docTableType.subclass(*args_, **kwargs_)
+        else:
+            return docTableType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_row(self): return self.row
+    def set_row(self, row): self.row = row
+    def add_row(self, value): self.row.append(value)
+    def insert_row(self, index, value): self.row[index] = value
+    def get_caption(self): return self.caption
+    def set_caption(self, caption): self.caption = caption
+    def get_rows(self): return self.rows
+    def set_rows(self, rows): self.rows = rows
+    def get_cols(self): return self.cols
+    def set_cols(self, cols): self.cols = cols
+
+    def export(self, outfile, level, namespace_='', name_='docTableType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='docTableType')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docTableType'):
+        if self.rows is not None:
+            outfile.write(' rows="%s"' % self.format_integer(
+                self.rows, input_name='rows'))
+        if self.cols is not None:
+            outfile.write(' cols="%s"' % self.format_integer(
+                self.cols, input_name='cols'))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docTableType'):
+        for row_ in self.row:
+            row_.export(outfile, level, namespace_, name_='row')
+        if self.caption:
+            self.caption.export(outfile, level, namespace_, name_='caption')
+
+    def hasContent_(self):
+        if (
+            self.row is not None or
+            self.caption is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docTableType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.rows is not None:
+            showIndent(outfile, level)
+            outfile.write('rows = %s,\n' % (self.rows,))
+        if self.cols is not None:
+            showIndent(outfile, level)
+            outfile.write('cols = %s,\n' % (self.cols,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('row=[\n')
+        level += 1
+        for row in self.row:
+            showIndent(outfile, level)
+            outfile.write('model_.row(\n')
+            row.exportLiteral(outfile, level, name_='row')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.caption:
+            showIndent(outfile, level)
+            outfile.write('caption=model_.docCaptionType(\n')
+            self.caption.exportLiteral(outfile, level, name_='caption')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('rows'):
+            try:
+                self.rows = int(attrs.get('rows').value)
+            except ValueError as exp:
+                raise ValueError('Bad integer attribute (rows): %s' % exp)
+        if attrs.get('cols'):
+            try:
+                self.cols = int(attrs.get('cols').value)
+            except ValueError as exp:
+                raise ValueError('Bad integer attribute (cols): %s' % exp)
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'row':
+            obj_ = docRowType.factory()
+            obj_.build(child_)
+            self.row.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'caption':
+            obj_ = docCaptionType.factory()
+            obj_.build(child_)
+            self.set_caption(obj_)
+# end class docTableType
+
+
+class docRowType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, entry=None):
+        if entry is None:
+            self.entry = []
+        else:
+            self.entry = entry
+
+    def factory(*args_, **kwargs_):
+        if docRowType.subclass:
+            return docRowType.subclass(*args_, **kwargs_)
+        else:
+            return docRowType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_entry(self): return self.entry
+    def set_entry(self, entry): self.entry = entry
+    def add_entry(self, value): self.entry.append(value)
+    def insert_entry(self, index, value): self.entry[index] = value
+
+    def export(self, outfile, level, namespace_='', name_='docRowType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='docRowType')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docRowType'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docRowType'):
+        for entry_ in self.entry:
+            entry_.export(outfile, level, namespace_, name_='entry')
+
+    def hasContent_(self):
+        if (
+            self.entry is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docRowType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('entry=[\n')
+        level += 1
+        for entry in self.entry:
+            showIndent(outfile, level)
+            outfile.write('model_.entry(\n')
+            entry.exportLiteral(outfile, level, name_='entry')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'entry':
+            obj_ = docEntryType.factory()
+            obj_.build(child_)
+            self.entry.append(obj_)
+# end class docRowType
+
+
+class docEntryType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, thead=None, para=None):
+        self.thead = thead
+        if para is None:
+            self.para = []
+        else:
+            self.para = para
+
+    def factory(*args_, **kwargs_):
+        if docEntryType.subclass:
+            return docEntryType.subclass(*args_, **kwargs_)
+        else:
+            return docEntryType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_para(self): return self.para
+    def set_para(self, para): self.para = para
+    def add_para(self, value): self.para.append(value)
+    def insert_para(self, index, value): self.para[index] = value
+    def get_thead(self): return self.thead
+    def set_thead(self, thead): self.thead = thead
+
+    def export(self, outfile, level, namespace_='', name_='docEntryType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='docEntryType')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docEntryType'):
+        if self.thead is not None:
+            outfile.write(' thead=%s' % (quote_attrib(self.thead), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docEntryType'):
+        for para_ in self.para:
+            para_.export(outfile, level, namespace_, name_='para')
+
+    def hasContent_(self):
+        if (
+            self.para is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docEntryType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.thead is not None:
+            showIndent(outfile, level)
+            outfile.write('thead = "%s",\n' % (self.thead,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('para=[\n')
+        level += 1
+        for para in self.para:
+            showIndent(outfile, level)
+            outfile.write('model_.para(\n')
+            para.exportLiteral(outfile, level, name_='para')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('thead'):
+            self.thead = attrs.get('thead').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'para':
+            obj_ = docParaType.factory()
+            obj_.build(child_)
+            self.para.append(obj_)
+# end class docEntryType
+
+
+class docCaptionType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, valueOf_='', mixedclass_=None, content_=None):
+        if mixedclass_ is None:
+            self.mixedclass_ = MixedContainer
+        else:
+            self.mixedclass_ = mixedclass_
+        if content_ is None:
+            self.content_ = []
+        else:
+            self.content_ = content_
+
+    def factory(*args_, **kwargs_):
+        if docCaptionType.subclass:
+            return docCaptionType.subclass(*args_, **kwargs_)
+        else:
+            return docCaptionType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='docCaptionType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='docCaptionType')
+        outfile.write('>')
+        self.exportChildren(outfile, level + 1, namespace_, name_)
+        outfile.write('</%s%s>\n' % (namespace_, name_))
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docCaptionType'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docCaptionType'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docCaptionType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                                    MixedContainer.TypeNone, '', child_.nodeValue)
+            self.content_.append(obj_)
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class docCaptionType
+
+
+class docHeadingType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, level=None, valueOf_='', mixedclass_=None, content_=None):
+        self.level = level
+        if mixedclass_ is None:
+            self.mixedclass_ = MixedContainer
+        else:
+            self.mixedclass_ = mixedclass_
+        if content_ is None:
+            self.content_ = []
+        else:
+            self.content_ = content_
+
+    def factory(*args_, **kwargs_):
+        if docHeadingType.subclass:
+            return docHeadingType.subclass(*args_, **kwargs_)
+        else:
+            return docHeadingType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_level(self): return self.level
+    def set_level(self, level): self.level = level
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='docHeadingType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='docHeadingType')
+        outfile.write('>')
+        self.exportChildren(outfile, level + 1, namespace_, name_)
+        outfile.write('</%s%s>\n' % (namespace_, name_))
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docHeadingType'):
+        if self.level is not None:
+            outfile.write(' level="%s"' % self.format_integer(
+                self.level, input_name='level'))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docHeadingType'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docHeadingType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.level is not None:
+            showIndent(outfile, level)
+            outfile.write('level = %s,\n' % (self.level,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('level'):
+            try:
+                self.level = int(attrs.get('level').value)
+            except ValueError as exp:
+                raise ValueError('Bad integer attribute (level): %s' % exp)
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                                    MixedContainer.TypeNone, '', child_.nodeValue)
+            self.content_.append(obj_)
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class docHeadingType
+
+
+class docImageType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, width=None, type_=None, name=None, height=None, valueOf_='', mixedclass_=None, content_=None):
+        self.width = width
+        self.type_ = type_
+        self.name = name
+        self.height = height
+        if mixedclass_ is None:
+            self.mixedclass_ = MixedContainer
+        else:
+            self.mixedclass_ = mixedclass_
+        if content_ is None:
+            self.content_ = []
+        else:
+            self.content_ = content_
+
+    def factory(*args_, **kwargs_):
+        if docImageType.subclass:
+            return docImageType.subclass(*args_, **kwargs_)
+        else:
+            return docImageType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_width(self): return self.width
+    def set_width(self, width): self.width = width
+    def get_type(self): return self.type_
+    def set_type(self, type_): self.type_ = type_
+    def get_name(self): return self.name
+    def set_name(self, name): self.name = name
+    def get_height(self): return self.height
+    def set_height(self, height): self.height = height
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='docImageType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='docImageType')
+        outfile.write('>')
+        self.exportChildren(outfile, level + 1, namespace_, name_)
+        outfile.write('</%s%s>\n' % (namespace_, name_))
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docImageType'):
+        if self.width is not None:
+            outfile.write(' width=%s' % (self.format_string(quote_attrib(
+                self.width).encode(ExternalEncoding), input_name='width'), ))
+        if self.type_ is not None:
+            outfile.write(' type=%s' % (quote_attrib(self.type_), ))
+        if self.name is not None:
+            outfile.write(' name=%s' % (self.format_string(quote_attrib(
+                self.name).encode(ExternalEncoding), input_name='name'), ))
+        if self.height is not None:
+            outfile.write(' height=%s' % (self.format_string(quote_attrib(
+                self.height).encode(ExternalEncoding), input_name='height'), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docImageType'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docImageType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.width is not None:
+            showIndent(outfile, level)
+            outfile.write('width = %s,\n' % (self.width,))
+        if self.type_ is not None:
+            showIndent(outfile, level)
+            outfile.write('type_ = "%s",\n' % (self.type_,))
+        if self.name is not None:
+            showIndent(outfile, level)
+            outfile.write('name = %s,\n' % (self.name,))
+        if self.height is not None:
+            showIndent(outfile, level)
+            outfile.write('height = %s,\n' % (self.height,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('width'):
+            self.width = attrs.get('width').value
+        if attrs.get('type'):
+            self.type_ = attrs.get('type').value
+        if attrs.get('name'):
+            self.name = attrs.get('name').value
+        if attrs.get('height'):
+            self.height = attrs.get('height').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                                    MixedContainer.TypeNone, '', child_.nodeValue)
+            self.content_.append(obj_)
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class docImageType
+
+
+class docDotFileType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, name=None, valueOf_='', mixedclass_=None, content_=None):
+        self.name = name
+        if mixedclass_ is None:
+            self.mixedclass_ = MixedContainer
+        else:
+            self.mixedclass_ = mixedclass_
+        if content_ is None:
+            self.content_ = []
+        else:
+            self.content_ = content_
+
+    def factory(*args_, **kwargs_):
+        if docDotFileType.subclass:
+            return docDotFileType.subclass(*args_, **kwargs_)
+        else:
+            return docDotFileType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_name(self): return self.name
+    def set_name(self, name): self.name = name
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='docDotFileType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='docDotFileType')
+        outfile.write('>')
+        self.exportChildren(outfile, level + 1, namespace_, name_)
+        outfile.write('</%s%s>\n' % (namespace_, name_))
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docDotFileType'):
+        if self.name is not None:
+            outfile.write(' name=%s' % (self.format_string(quote_attrib(
+                self.name).encode(ExternalEncoding), input_name='name'), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docDotFileType'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docDotFileType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.name is not None:
+            showIndent(outfile, level)
+            outfile.write('name = %s,\n' % (self.name,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('name'):
+            self.name = attrs.get('name').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                                    MixedContainer.TypeNone, '', child_.nodeValue)
+            self.content_.append(obj_)
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class docDotFileType
+
+
+class docTocItemType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, id=None, valueOf_='', mixedclass_=None, content_=None):
+        self.id = id
+        if mixedclass_ is None:
+            self.mixedclass_ = MixedContainer
+        else:
+            self.mixedclass_ = mixedclass_
+        if content_ is None:
+            self.content_ = []
+        else:
+            self.content_ = content_
+
+    def factory(*args_, **kwargs_):
+        if docTocItemType.subclass:
+            return docTocItemType.subclass(*args_, **kwargs_)
+        else:
+            return docTocItemType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_id(self): return self.id
+    def set_id(self, id): self.id = id
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='docTocItemType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='docTocItemType')
+        outfile.write('>')
+        self.exportChildren(outfile, level + 1, namespace_, name_)
+        outfile.write('</%s%s>\n' % (namespace_, name_))
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docTocItemType'):
+        if self.id is not None:
+            outfile.write(' id=%s' % (self.format_string(quote_attrib(
+                self.id).encode(ExternalEncoding), input_name='id'), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docTocItemType'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docTocItemType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.id is not None:
+            showIndent(outfile, level)
+            outfile.write('id = %s,\n' % (self.id,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('id'):
+            self.id = attrs.get('id').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                                    MixedContainer.TypeNone, '', child_.nodeValue)
+            self.content_.append(obj_)
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class docTocItemType
+
+
+class docTocListType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, tocitem=None):
+        if tocitem is None:
+            self.tocitem = []
+        else:
+            self.tocitem = tocitem
+
+    def factory(*args_, **kwargs_):
+        if docTocListType.subclass:
+            return docTocListType.subclass(*args_, **kwargs_)
+        else:
+            return docTocListType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_tocitem(self): return self.tocitem
+    def set_tocitem(self, tocitem): self.tocitem = tocitem
+    def add_tocitem(self, value): self.tocitem.append(value)
+    def insert_tocitem(self, index, value): self.tocitem[index] = value
+
+    def export(self, outfile, level, namespace_='', name_='docTocListType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='docTocListType')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docTocListType'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docTocListType'):
+        for tocitem_ in self.tocitem:
+            tocitem_.export(outfile, level, namespace_, name_='tocitem')
+
+    def hasContent_(self):
+        if (
+            self.tocitem is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docTocListType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('tocitem=[\n')
+        level += 1
+        for tocitem in self.tocitem:
+            showIndent(outfile, level)
+            outfile.write('model_.tocitem(\n')
+            tocitem.exportLiteral(outfile, level, name_='tocitem')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'tocitem':
+            obj_ = docTocItemType.factory()
+            obj_.build(child_)
+            self.tocitem.append(obj_)
+# end class docTocListType
+
+
+class docLanguageType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, langid=None, para=None):
+        self.langid = langid
+        if para is None:
+            self.para = []
+        else:
+            self.para = para
+
+    def factory(*args_, **kwargs_):
+        if docLanguageType.subclass:
+            return docLanguageType.subclass(*args_, **kwargs_)
+        else:
+            return docLanguageType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_para(self): return self.para
+    def set_para(self, para): self.para = para
+    def add_para(self, value): self.para.append(value)
+    def insert_para(self, index, value): self.para[index] = value
+    def get_langid(self): return self.langid
+    def set_langid(self, langid): self.langid = langid
+
+    def export(self, outfile, level, namespace_='', name_='docLanguageType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='docLanguageType')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docLanguageType'):
+        if self.langid is not None:
+            outfile.write(' langid=%s' % (self.format_string(quote_attrib(
+                self.langid).encode(ExternalEncoding), input_name='langid'), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docLanguageType'):
+        for para_ in self.para:
+            para_.export(outfile, level, namespace_, name_='para')
+
+    def hasContent_(self):
+        if (
+            self.para is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docLanguageType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.langid is not None:
+            showIndent(outfile, level)
+            outfile.write('langid = %s,\n' % (self.langid,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('para=[\n')
+        level += 1
+        for para in self.para:
+            showIndent(outfile, level)
+            outfile.write('model_.para(\n')
+            para.exportLiteral(outfile, level, name_='para')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('langid'):
+            self.langid = attrs.get('langid').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'para':
+            obj_ = docParaType.factory()
+            obj_.build(child_)
+            self.para.append(obj_)
+# end class docLanguageType
+
+
+class docParamListType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, kind=None, parameteritem=None):
+        self.kind = kind
+        if parameteritem is None:
+            self.parameteritem = []
+        else:
+            self.parameteritem = parameteritem
+
+    def factory(*args_, **kwargs_):
+        if docParamListType.subclass:
+            return docParamListType.subclass(*args_, **kwargs_)
+        else:
+            return docParamListType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_parameteritem(self): return self.parameteritem
+    def set_parameteritem(
+        self, parameteritem): self.parameteritem = parameteritem
+
+    def add_parameteritem(self, value): self.parameteritem.append(value)
+    def insert_parameteritem(
+        self, index, value): self.parameteritem[index] = value
+
+    def get_kind(self): return self.kind
+    def set_kind(self, kind): self.kind = kind
+
+    def export(self, outfile, level, namespace_='', name_='docParamListType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='docParamListType')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docParamListType'):
+        if self.kind is not None:
+            outfile.write(' kind=%s' % (quote_attrib(self.kind), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docParamListType'):
+        for parameteritem_ in self.parameteritem:
+            parameteritem_.export(
+                outfile, level, namespace_, name_='parameteritem')
+
+    def hasContent_(self):
+        if (
+            self.parameteritem is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docParamListType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.kind is not None:
+            showIndent(outfile, level)
+            outfile.write('kind = "%s",\n' % (self.kind,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('parameteritem=[\n')
+        level += 1
+        for parameteritem in self.parameteritem:
+            showIndent(outfile, level)
+            outfile.write('model_.parameteritem(\n')
+            parameteritem.exportLiteral(outfile, level, name_='parameteritem')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('kind'):
+            self.kind = attrs.get('kind').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'parameteritem':
+            obj_ = docParamListItem.factory()
+            obj_.build(child_)
+            self.parameteritem.append(obj_)
+# end class docParamListType
+
+
+class docParamListItem(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, parameternamelist=None, parameterdescription=None):
+        if parameternamelist is None:
+            self.parameternamelist = []
+        else:
+            self.parameternamelist = parameternamelist
+        self.parameterdescription = parameterdescription
+
+    def factory(*args_, **kwargs_):
+        if docParamListItem.subclass:
+            return docParamListItem.subclass(*args_, **kwargs_)
+        else:
+            return docParamListItem(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_parameternamelist(self): return self.parameternamelist
+
+    def set_parameternamelist(
+        self, parameternamelist): self.parameternamelist = parameternamelist
+
+    def add_parameternamelist(
+        self, value): self.parameternamelist.append(value)
+    def insert_parameternamelist(
+        self, index, value): self.parameternamelist[index] = value
+
+    def get_parameterdescription(self): return self.parameterdescription
+
+    def set_parameterdescription(
+        self, parameterdescription): self.parameterdescription = parameterdescription
+
+    def export(self, outfile, level, namespace_='', name_='docParamListItem', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='docParamListItem')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docParamListItem'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docParamListItem'):
+        for parameternamelist_ in self.parameternamelist:
+            parameternamelist_.export(
+                outfile, level, namespace_, name_='parameternamelist')
+        if self.parameterdescription:
+            self.parameterdescription.export(
+                outfile, level, namespace_, name_='parameterdescription', )
+
+    def hasContent_(self):
+        if (
+            self.parameternamelist is not None or
+            self.parameterdescription is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docParamListItem'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('parameternamelist=[\n')
+        level += 1
+        for parameternamelist in self.parameternamelist:
+            showIndent(outfile, level)
+            outfile.write('model_.parameternamelist(\n')
+            parameternamelist.exportLiteral(
+                outfile, level, name_='parameternamelist')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.parameterdescription:
+            showIndent(outfile, level)
+            outfile.write('parameterdescription=model_.descriptionType(\n')
+            self.parameterdescription.exportLiteral(
+                outfile, level, name_='parameterdescription')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'parameternamelist':
+            obj_ = docParamNameList.factory()
+            obj_.build(child_)
+            self.parameternamelist.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'parameterdescription':
+            obj_ = descriptionType.factory()
+            obj_.build(child_)
+            self.set_parameterdescription(obj_)
+# end class docParamListItem
+
+
+class docParamNameList(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, parametername=None):
+        if parametername is None:
+            self.parametername = []
+        else:
+            self.parametername = parametername
+
+    def factory(*args_, **kwargs_):
+        if docParamNameList.subclass:
+            return docParamNameList.subclass(*args_, **kwargs_)
+        else:
+            return docParamNameList(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_parametername(self): return self.parametername
+    def set_parametername(
+        self, parametername): self.parametername = parametername
+
+    def add_parametername(self, value): self.parametername.append(value)
+
+    def insert_parametername(
+        self, index, value): self.parametername[index] = value
+
+    def export(self, outfile, level, namespace_='', name_='docParamNameList', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='docParamNameList')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docParamNameList'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docParamNameList'):
+        for parametername_ in self.parametername:
+            parametername_.export(
+                outfile, level, namespace_, name_='parametername')
+
+    def hasContent_(self):
+        if (
+            self.parametername is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docParamNameList'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('parametername=[\n')
+        level += 1
+        for parametername in self.parametername:
+            showIndent(outfile, level)
+            outfile.write('model_.parametername(\n')
+            parametername.exportLiteral(outfile, level, name_='parametername')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'parametername':
+            obj_ = docParamName.factory()
+            obj_.build(child_)
+            self.parametername.append(obj_)
+# end class docParamNameList
+
+
+class docParamName(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, direction=None, ref=None, mixedclass_=None, content_=None):
+        self.direction = direction
+        if mixedclass_ is None:
+            self.mixedclass_ = MixedContainer
+        else:
+            self.mixedclass_ = mixedclass_
+        if content_ is None:
+            self.content_ = []
+        else:
+            self.content_ = content_
+
+    def factory(*args_, **kwargs_):
+        if docParamName.subclass:
+            return docParamName.subclass(*args_, **kwargs_)
+        else:
+            return docParamName(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_ref(self): return self.ref
+    def set_ref(self, ref): self.ref = ref
+    def get_direction(self): return self.direction
+    def set_direction(self, direction): self.direction = direction
+
+    def export(self, outfile, level, namespace_='', name_='docParamName', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='docParamName')
+        outfile.write('>')
+        self.exportChildren(outfile, level + 1, namespace_, name_)
+        outfile.write('</%s%s>\n' % (namespace_, name_))
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docParamName'):
+        if self.direction is not None:
+            outfile.write(' direction=%s' % (quote_attrib(self.direction), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docParamName'):
+        for item_ in self.content_:
+            item_.export(outfile, level, item_.name, namespace_)
+
+    def hasContent_(self):
+        if (
+            self.ref is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docParamName'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.direction is not None:
+            showIndent(outfile, level)
+            outfile.write('direction = "%s",\n' % (self.direction,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('content_ = [\n')
+        for item_ in self.content_:
+            item_.exportLiteral(outfile, level, name_)
+        showIndent(outfile, level)
+        outfile.write('],\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('direction'):
+            self.direction = attrs.get('direction').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'ref':
+            childobj_ = docRefTextType.factory()
+            childobj_.build(child_)
+            obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
+                                    MixedContainer.TypeNone, 'ref', childobj_)
+            self.content_.append(obj_)
+        elif child_.nodeType == Node.TEXT_NODE:
+            obj_ = self.mixedclass_(MixedContainer.CategoryText,
+                                    MixedContainer.TypeNone, '', child_.nodeValue)
+            self.content_.append(obj_)
+# end class docParamName
+
+
+class docXRefSectType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, id=None, xreftitle=None, xrefdescription=None):
+        self.id = id
+        if xreftitle is None:
+            self.xreftitle = []
+        else:
+            self.xreftitle = xreftitle
+        self.xrefdescription = xrefdescription
+
+    def factory(*args_, **kwargs_):
+        if docXRefSectType.subclass:
+            return docXRefSectType.subclass(*args_, **kwargs_)
+        else:
+            return docXRefSectType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_xreftitle(self): return self.xreftitle
+    def set_xreftitle(self, xreftitle): self.xreftitle = xreftitle
+    def add_xreftitle(self, value): self.xreftitle.append(value)
+    def insert_xreftitle(self, index, value): self.xreftitle[index] = value
+    def get_xrefdescription(self): return self.xrefdescription
+    def set_xrefdescription(
+        self, xrefdescription): self.xrefdescription = xrefdescription
+
+    def get_id(self): return self.id
+    def set_id(self, id): self.id = id
+
+    def export(self, outfile, level, namespace_='', name_='docXRefSectType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_,
+                              name_='docXRefSectType')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docXRefSectType'):
+        if self.id is not None:
+            outfile.write(' id=%s' % (self.format_string(quote_attrib(
+                self.id).encode(ExternalEncoding), input_name='id'), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docXRefSectType'):
+        for xreftitle_ in self.xreftitle:
+            showIndent(outfile, level)
+            outfile.write('<%sxreftitle>%s</%sxreftitle>\n' % (namespace_, self.format_string(
+                quote_xml(xreftitle_).encode(ExternalEncoding), input_name='xreftitle'), namespace_))
+        if self.xrefdescription:
+            self.xrefdescription.export(
+                outfile, level, namespace_, name_='xrefdescription', )
+
+    def hasContent_(self):
+        if (
+            self.xreftitle is not None or
+            self.xrefdescription is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docXRefSectType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.id is not None:
+            showIndent(outfile, level)
+            outfile.write('id = %s,\n' % (self.id,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('xreftitle=[\n')
+        level += 1
+        for xreftitle in self.xreftitle:
+            showIndent(outfile, level)
+            outfile.write('%s,\n' % quote_python(
+                xreftitle).encode(ExternalEncoding))
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.xrefdescription:
+            showIndent(outfile, level)
+            outfile.write('xrefdescription=model_.descriptionType(\n')
+            self.xrefdescription.exportLiteral(
+                outfile, level, name_='xrefdescription')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('id'):
+            self.id = attrs.get('id').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'xreftitle':
+            xreftitle_ = ''
+            for text__content_ in child_.childNodes:
+                xreftitle_ += text__content_.nodeValue
+            self.xreftitle.append(xreftitle_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'xrefdescription':
+            obj_ = descriptionType.factory()
+            obj_.build(child_)
+            self.set_xrefdescription(obj_)
+# end class docXRefSectType
+
+
+class docCopyType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, link=None, para=None, sect1=None, internal=None):
+        self.link = link
+        if para is None:
+            self.para = []
+        else:
+            self.para = para
+        if sect1 is None:
+            self.sect1 = []
+        else:
+            self.sect1 = sect1
+        self.internal = internal
+
+    def factory(*args_, **kwargs_):
+        if docCopyType.subclass:
+            return docCopyType.subclass(*args_, **kwargs_)
+        else:
+            return docCopyType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_para(self): return self.para
+    def set_para(self, para): self.para = para
+    def add_para(self, value): self.para.append(value)
+    def insert_para(self, index, value): self.para[index] = value
+    def get_sect1(self): return self.sect1
+    def set_sect1(self, sect1): self.sect1 = sect1
+    def add_sect1(self, value): self.sect1.append(value)
+    def insert_sect1(self, index, value): self.sect1[index] = value
+    def get_internal(self): return self.internal
+    def set_internal(self, internal): self.internal = internal
+    def get_link(self): return self.link
+    def set_link(self, link): self.link = link
+
+    def export(self, outfile, level, namespace_='', name_='docCopyType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='docCopyType')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docCopyType'):
+        if self.link is not None:
+            outfile.write(' link=%s' % (self.format_string(quote_attrib(
+                self.link).encode(ExternalEncoding), input_name='link'), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docCopyType'):
+        for para_ in self.para:
+            para_.export(outfile, level, namespace_, name_='para')
+        for sect1_ in self.sect1:
+            sect1_.export(outfile, level, namespace_, name_='sect1')
+        if self.internal:
+            self.internal.export(outfile, level, namespace_, name_='internal')
+
+    def hasContent_(self):
+        if (
+            self.para is not None or
+            self.sect1 is not None or
+            self.internal is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docCopyType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.link is not None:
+            showIndent(outfile, level)
+            outfile.write('link = %s,\n' % (self.link,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('para=[\n')
+        level += 1
+        for para in self.para:
+            showIndent(outfile, level)
+            outfile.write('model_.para(\n')
+            para.exportLiteral(outfile, level, name_='para')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        showIndent(outfile, level)
+        outfile.write('sect1=[\n')
+        level += 1
+        for sect1 in self.sect1:
+            showIndent(outfile, level)
+            outfile.write('model_.sect1(\n')
+            sect1.exportLiteral(outfile, level, name_='sect1')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+        if self.internal:
+            showIndent(outfile, level)
+            outfile.write('internal=model_.docInternalType(\n')
+            self.internal.exportLiteral(outfile, level, name_='internal')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('link'):
+            self.link = attrs.get('link').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'para':
+            obj_ = docParaType.factory()
+            obj_.build(child_)
+            self.para.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'sect1':
+            obj_ = docSect1Type.factory()
+            obj_.build(child_)
+            self.sect1.append(obj_)
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'internal':
+            obj_ = docInternalType.factory()
+            obj_.build(child_)
+            self.set_internal(obj_)
+# end class docCopyType
+
+
+class docCharType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, char=None, valueOf_=''):
+        self.char = char
+        self.valueOf_ = valueOf_
+
+    def factory(*args_, **kwargs_):
+        if docCharType.subclass:
+            return docCharType.subclass(*args_, **kwargs_)
+        else:
+            return docCharType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_char(self): return self.char
+    def set_char(self, char): self.char = char
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='docCharType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='docCharType')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docCharType'):
+        if self.char is not None:
+            outfile.write(' char=%s' % (quote_attrib(self.char), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docCharType'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docCharType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.char is not None:
+            showIndent(outfile, level)
+            outfile.write('char = "%s",\n' % (self.char,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('char'):
+            self.char = attrs.get('char').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class docCharType
+
+
+class docEmptyType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, valueOf_=''):
+        self.valueOf_ = valueOf_
+
+    def factory(*args_, **kwargs_):
+        if docEmptyType.subclass:
+            return docEmptyType.subclass(*args_, **kwargs_)
+        else:
+            return docEmptyType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def getValueOf_(self): return self.valueOf_
+    def setValueOf_(self, valueOf_): self.valueOf_ = valueOf_
+
+    def export(self, outfile, level, namespace_='', name_='docEmptyType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='docEmptyType')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='docEmptyType'):
+        pass
+
+    def exportChildren(self, outfile, level, namespace_='', name_='docEmptyType'):
+        if self.valueOf_.find('![CDATA') > -1:
+            value = quote_xml('%s' % self.valueOf_)
+            value = value.replace('![CDATA', '<![CDATA')
+            value = value.replace(']]', ']]>')
+            outfile.write(value)
+        else:
+            outfile.write(quote_xml('%s' % self.valueOf_))
+
+    def hasContent_(self):
+        if (
+            self.valueOf_ is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='docEmptyType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        pass
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('valueOf_ = "%s",\n' % (self.valueOf_,))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        self.valueOf_ = ''
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        pass
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.TEXT_NODE:
+            self.valueOf_ += child_.nodeValue
+        elif child_.nodeType == Node.CDATA_SECTION_NODE:
+            self.valueOf_ += '![CDATA[' + child_.nodeValue + ']]'
+# end class docEmptyType
+
+
+USAGE_TEXT = """
+Usage: python <Parser>.py [ -s ] <in_xml_file>
+Options:
+    -s        Use the SAX parser, not the minidom parser.
+"""
+
+
+def usage():
+    print(USAGE_TEXT)
+    sys.exit(1)
+
+
+def parse(inFileName):
+    doc = minidom.parse(inFileName)
+    rootNode = doc.documentElement
+    rootObj = DoxygenType.factory()
+    rootObj.build(rootNode)
+    # Enable Python to collect the space used by the DOM.
+    doc = None
+    sys.stdout.write('<?xml version="1.0" ?>\n')
+    rootObj.export(sys.stdout, 0, name_="doxygen",
+                   namespacedef_='')
+    return rootObj
+
+
+def parseString(inString):
+    doc = minidom.parseString(inString)
+    rootNode = doc.documentElement
+    rootObj = DoxygenType.factory()
+    rootObj.build(rootNode)
+    # Enable Python to collect the space used by the DOM.
+    doc = None
+    sys.stdout.write('<?xml version="1.0" ?>\n')
+    rootObj.export(sys.stdout, 0, name_="doxygen",
+                   namespacedef_='')
+    return rootObj
+
+
+def parseLiteral(inFileName):
+    doc = minidom.parse(inFileName)
+    rootNode = doc.documentElement
+    rootObj = DoxygenType.factory()
+    rootObj.build(rootNode)
+    # Enable Python to collect the space used by the DOM.
+    doc = None
+    sys.stdout.write('from compound import *\n\n')
+    sys.stdout.write('rootObj = doxygen(\n')
+    rootObj.exportLiteral(sys.stdout, 0, name_="doxygen")
+    sys.stdout.write(')\n')
+    return rootObj
+
+
+def main():
+    args = sys.argv[1:]
+    if len(args) == 1:
+        parse(args[0])
+    else:
+        usage()
+
+
+if __name__ == '__main__':
+    main()
+    #import pdb
+    # pdb.run('main()')
diff --git a/docs/doxygen/doxyxml/generated/index.py b/docs/doxygen/doxyxml/generated/index.py
new file mode 100644
index 0000000000000000000000000000000000000000..7ffbdf191aca8d45603e860a5d0f31f696f60ea0
--- /dev/null
+++ b/docs/doxygen/doxyxml/generated/index.py
@@ -0,0 +1,80 @@
+#!/usr/bin/env python
+
+"""
+Generated Mon Feb  9 19:08:05 2009 by generateDS.py.
+"""
+
+from xml.dom import minidom
+
+import os
+import sys
+from . import compound
+
+from . import indexsuper as supermod
+
+
+class DoxygenTypeSub(supermod.DoxygenType):
+    def __init__(self, version=None, compound=None):
+        supermod.DoxygenType.__init__(self, version, compound)
+
+    def find_compounds_and_members(self, details):
+        """
+        Returns a list of all compounds and their members which match details
+        """
+
+        results = []
+        for compound in self.compound:
+            members = compound.find_members(details)
+            if members:
+                results.append([compound, members])
+            else:
+                if details.match(compound):
+                    results.append([compound, []])
+
+        return results
+
+
+supermod.DoxygenType.subclass = DoxygenTypeSub
+# end class DoxygenTypeSub
+
+
+class CompoundTypeSub(supermod.CompoundType):
+    def __init__(self, kind=None, refid=None, name='', member=None):
+        supermod.CompoundType.__init__(self, kind, refid, name, member)
+
+    def find_members(self, details):
+        """
+        Returns a list of all members which match details
+        """
+
+        results = []
+
+        for member in self.member:
+            if details.match(member):
+                results.append(member)
+
+        return results
+
+
+supermod.CompoundType.subclass = CompoundTypeSub
+# end class CompoundTypeSub
+
+
+class MemberTypeSub(supermod.MemberType):
+
+    def __init__(self, kind=None, refid=None, name=''):
+        supermod.MemberType.__init__(self, kind, refid, name)
+
+
+supermod.MemberType.subclass = MemberTypeSub
+# end class MemberTypeSub
+
+
+def parse(inFilename):
+
+    doc = minidom.parse(inFilename)
+    rootNode = doc.documentElement
+    rootObj = supermod.DoxygenType.factory()
+    rootObj.build(rootNode)
+
+    return rootObj
diff --git a/docs/doxygen/doxyxml/generated/indexsuper.py b/docs/doxygen/doxyxml/generated/indexsuper.py
new file mode 100644
index 0000000000000000000000000000000000000000..b30e062ae7d9a9ed2fc72f9918663ea0f444708a
--- /dev/null
+++ b/docs/doxygen/doxyxml/generated/indexsuper.py
@@ -0,0 +1,581 @@
+#!/usr/bin/env python
+
+#
+# Generated Thu Jun 11 18:43:54 2009 by generateDS.py.
+#
+
+
+import sys
+
+from xml.dom import minidom
+from xml.dom import Node
+
+#
+# User methods
+#
+# Calls to the methods in these classes are generated by generateDS.py.
+# You can replace these methods by re-implementing the following class
+#   in a module named generatedssuper.py.
+
+try:
+    from generatedssuper import GeneratedsSuper
+except ImportError as exp:
+
+    class GeneratedsSuper(object):
+        def format_string(self, input_data, input_name=''):
+            return input_data
+
+        def format_integer(self, input_data, input_name=''):
+            return '%d' % input_data
+
+        def format_float(self, input_data, input_name=''):
+            return '%f' % input_data
+
+        def format_double(self, input_data, input_name=''):
+            return '%e' % input_data
+
+        def format_boolean(self, input_data, input_name=''):
+            return '%s' % input_data
+
+
+#
+# If you have installed IPython you can uncomment and use the following.
+# IPython is available from http://ipython.scipy.org/.
+#
+
+## from IPython.Shell import IPShellEmbed
+## args = ''
+# ipshell = IPShellEmbed(args,
+##     banner = 'Dropping into IPython',
+# exit_msg = 'Leaving Interpreter, back to program.')
+
+# Then use the following line where and when you want to drop into the
+# IPython shell:
+#    ipshell('<some message> -- Entering ipshell.\nHit Ctrl-D to exit')
+
+#
+# Globals
+#
+
+ExternalEncoding = 'ascii'
+
+#
+# Support/utility functions.
+#
+
+
+def showIndent(outfile, level):
+    for idx in range(level):
+        outfile.write('    ')
+
+
+def quote_xml(inStr):
+    s1 = (isinstance(inStr, str) and inStr or
+          '%s' % inStr)
+    s1 = s1.replace('&', '&amp;')
+    s1 = s1.replace('<', '&lt;')
+    s1 = s1.replace('>', '&gt;')
+    return s1
+
+
+def quote_attrib(inStr):
+    s1 = (isinstance(inStr, str) and inStr or
+          '%s' % inStr)
+    s1 = s1.replace('&', '&amp;')
+    s1 = s1.replace('<', '&lt;')
+    s1 = s1.replace('>', '&gt;')
+    if '"' in s1:
+        if "'" in s1:
+            s1 = '"%s"' % s1.replace('"', "&quot;")
+        else:
+            s1 = "'%s'" % s1
+    else:
+        s1 = '"%s"' % s1
+    return s1
+
+
+def quote_python(inStr):
+    s1 = inStr
+    if s1.find("'") == -1:
+        if s1.find('\n') == -1:
+            return "'%s'" % s1
+        else:
+            return "'''%s'''" % s1
+    else:
+        if s1.find('"') != -1:
+            s1 = s1.replace('"', '\\"')
+        if s1.find('\n') == -1:
+            return '"%s"' % s1
+        else:
+            return '"""%s"""' % s1
+
+
+class MixedContainer(object):
+    # Constants for category:
+    CategoryNone = 0
+    CategoryText = 1
+    CategorySimple = 2
+    CategoryComplex = 3
+    # Constants for content_type:
+    TypeNone = 0
+    TypeText = 1
+    TypeString = 2
+    TypeInteger = 3
+    TypeFloat = 4
+    TypeDecimal = 5
+    TypeDouble = 6
+    TypeBoolean = 7
+
+    def __init__(self, category, content_type, name, value):
+        self.category = category
+        self.content_type = content_type
+        self.name = name
+        self.value = value
+
+    def getCategory(self):
+        return self.category
+
+    def getContenttype(self, content_type):
+        return self.content_type
+
+    def getValue(self):
+        return self.value
+
+    def getName(self):
+        return self.name
+
+    def export(self, outfile, level, name, namespace):
+        if self.category == MixedContainer.CategoryText:
+            outfile.write(self.value)
+        elif self.category == MixedContainer.CategorySimple:
+            self.exportSimple(outfile, level, name)
+        else:    # category == MixedContainer.CategoryComplex
+            self.value.export(outfile, level, namespace, name)
+
+    def exportSimple(self, outfile, level, name):
+        if self.content_type == MixedContainer.TypeString:
+            outfile.write('<%s>%s</%s>' % (self.name, self.value, self.name))
+        elif self.content_type == MixedContainer.TypeInteger or \
+                self.content_type == MixedContainer.TypeBoolean:
+            outfile.write('<%s>%d</%s>' % (self.name, self.value, self.name))
+        elif self.content_type == MixedContainer.TypeFloat or \
+                self.content_type == MixedContainer.TypeDecimal:
+            outfile.write('<%s>%f</%s>' % (self.name, self.value, self.name))
+        elif self.content_type == MixedContainer.TypeDouble:
+            outfile.write('<%s>%g</%s>' % (self.name, self.value, self.name))
+
+    def exportLiteral(self, outfile, level, name):
+        if self.category == MixedContainer.CategoryText:
+            showIndent(outfile, level)
+            outfile.write('MixedContainer(%d, %d, "%s", "%s"),\n' %
+                          (self.category, self.content_type, self.name, self.value))
+        elif self.category == MixedContainer.CategorySimple:
+            showIndent(outfile, level)
+            outfile.write('MixedContainer(%d, %d, "%s", "%s"),\n' %
+                          (self.category, self.content_type, self.name, self.value))
+        else:    # category == MixedContainer.CategoryComplex
+            showIndent(outfile, level)
+            outfile.write('MixedContainer(%d, %d, "%s",\n' %
+                          (self.category, self.content_type, self.name,))
+            self.value.exportLiteral(outfile, level + 1)
+            showIndent(outfile, level)
+            outfile.write(')\n')
+
+
+class _MemberSpec(object):
+    def __init__(self, name='', data_type='', container=0):
+        self.name = name
+        self.data_type = data_type
+        self.container = container
+
+    def set_name(self, name): self.name = name
+    def get_name(self): return self.name
+    def set_data_type(self, data_type): self.data_type = data_type
+    def get_data_type(self): return self.data_type
+    def set_container(self, container): self.container = container
+    def get_container(self): return self.container
+
+
+#
+# Data representation classes.
+#
+
+class DoxygenType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, version=None, compound=None):
+        self.version = version
+        if compound is None:
+            self.compound = []
+        else:
+            self.compound = compound
+
+    def factory(*args_, **kwargs_):
+        if DoxygenType.subclass:
+            return DoxygenType.subclass(*args_, **kwargs_)
+        else:
+            return DoxygenType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_compound(self): return self.compound
+    def set_compound(self, compound): self.compound = compound
+    def add_compound(self, value): self.compound.append(value)
+    def insert_compound(self, index, value): self.compound[index] = value
+    def get_version(self): return self.version
+    def set_version(self, version): self.version = version
+
+    def export(self, outfile, level, namespace_='', name_='DoxygenType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='DoxygenType')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='DoxygenType'):
+        outfile.write(' version=%s' % (self.format_string(quote_attrib(
+            self.version).encode(ExternalEncoding), input_name='version'), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='DoxygenType'):
+        for compound_ in self.compound:
+            compound_.export(outfile, level, namespace_, name_='compound')
+
+    def hasContent_(self):
+        if (
+            self.compound is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='DoxygenType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.version is not None:
+            showIndent(outfile, level)
+            outfile.write('version = %s,\n' % (self.version,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('compound=[\n')
+        level += 1
+        for compound in self.compound:
+            showIndent(outfile, level)
+            outfile.write('model_.compound(\n')
+            compound.exportLiteral(outfile, level, name_='compound')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('version'):
+            self.version = attrs.get('version').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'compound':
+            obj_ = CompoundType.factory()
+            obj_.build(child_)
+            self.compound.append(obj_)
+# end class DoxygenType
+
+
+class CompoundType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, kind=None, refid=None, name=None, member=None):
+        self.kind = kind
+        self.refid = refid
+        self.name = name
+        if member is None:
+            self.member = []
+        else:
+            self.member = member
+
+    def factory(*args_, **kwargs_):
+        if CompoundType.subclass:
+            return CompoundType.subclass(*args_, **kwargs_)
+        else:
+            return CompoundType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_name(self): return self.name
+    def set_name(self, name): self.name = name
+    def get_member(self): return self.member
+    def set_member(self, member): self.member = member
+    def add_member(self, value): self.member.append(value)
+    def insert_member(self, index, value): self.member[index] = value
+    def get_kind(self): return self.kind
+    def set_kind(self, kind): self.kind = kind
+    def get_refid(self): return self.refid
+    def set_refid(self, refid): self.refid = refid
+
+    def export(self, outfile, level, namespace_='', name_='CompoundType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='CompoundType')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='CompoundType'):
+        outfile.write(' kind=%s' % (quote_attrib(self.kind), ))
+        outfile.write(' refid=%s' % (self.format_string(quote_attrib(
+            self.refid).encode(ExternalEncoding), input_name='refid'), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='CompoundType'):
+        if self.name is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sname>%s</%sname>\n' % (namespace_, self.format_string(
+                quote_xml(self.name).encode(ExternalEncoding), input_name='name'), namespace_))
+        for member_ in self.member:
+            member_.export(outfile, level, namespace_, name_='member')
+
+    def hasContent_(self):
+        if (
+            self.name is not None or
+            self.member is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='CompoundType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.kind is not None:
+            showIndent(outfile, level)
+            outfile.write('kind = "%s",\n' % (self.kind,))
+        if self.refid is not None:
+            showIndent(outfile, level)
+            outfile.write('refid = %s,\n' % (self.refid,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('name=%s,\n' % quote_python(
+            self.name).encode(ExternalEncoding))
+        showIndent(outfile, level)
+        outfile.write('member=[\n')
+        level += 1
+        for member in self.member:
+            showIndent(outfile, level)
+            outfile.write('model_.member(\n')
+            member.exportLiteral(outfile, level, name_='member')
+            showIndent(outfile, level)
+            outfile.write('),\n')
+        level -= 1
+        showIndent(outfile, level)
+        outfile.write('],\n')
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('kind'):
+            self.kind = attrs.get('kind').value
+        if attrs.get('refid'):
+            self.refid = attrs.get('refid').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'name':
+            name_ = ''
+            for text__content_ in child_.childNodes:
+                name_ += text__content_.nodeValue
+            self.name = name_
+        elif child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'member':
+            obj_ = MemberType.factory()
+            obj_.build(child_)
+            self.member.append(obj_)
+# end class CompoundType
+
+
+class MemberType(GeneratedsSuper):
+    subclass = None
+    superclass = None
+
+    def __init__(self, kind=None, refid=None, name=None):
+        self.kind = kind
+        self.refid = refid
+        self.name = name
+
+    def factory(*args_, **kwargs_):
+        if MemberType.subclass:
+            return MemberType.subclass(*args_, **kwargs_)
+        else:
+            return MemberType(*args_, **kwargs_)
+    factory = staticmethod(factory)
+    def get_name(self): return self.name
+    def set_name(self, name): self.name = name
+    def get_kind(self): return self.kind
+    def set_kind(self, kind): self.kind = kind
+    def get_refid(self): return self.refid
+    def set_refid(self, refid): self.refid = refid
+
+    def export(self, outfile, level, namespace_='', name_='MemberType', namespacedef_=''):
+        showIndent(outfile, level)
+        outfile.write('<%s%s %s' % (namespace_, name_, namespacedef_, ))
+        self.exportAttributes(outfile, level, namespace_, name_='MemberType')
+        if self.hasContent_():
+            outfile.write('>\n')
+            self.exportChildren(outfile, level + 1, namespace_, name_)
+            showIndent(outfile, level)
+            outfile.write('</%s%s>\n' % (namespace_, name_))
+        else:
+            outfile.write(' />\n')
+
+    def exportAttributes(self, outfile, level, namespace_='', name_='MemberType'):
+        outfile.write(' kind=%s' % (quote_attrib(self.kind), ))
+        outfile.write(' refid=%s' % (self.format_string(quote_attrib(
+            self.refid).encode(ExternalEncoding), input_name='refid'), ))
+
+    def exportChildren(self, outfile, level, namespace_='', name_='MemberType'):
+        if self.name is not None:
+            showIndent(outfile, level)
+            outfile.write('<%sname>%s</%sname>\n' % (namespace_, self.format_string(
+                quote_xml(self.name).encode(ExternalEncoding), input_name='name'), namespace_))
+
+    def hasContent_(self):
+        if (
+            self.name is not None
+        ):
+            return True
+        else:
+            return False
+
+    def exportLiteral(self, outfile, level, name_='MemberType'):
+        level += 1
+        self.exportLiteralAttributes(outfile, level, name_)
+        if self.hasContent_():
+            self.exportLiteralChildren(outfile, level, name_)
+
+    def exportLiteralAttributes(self, outfile, level, name_):
+        if self.kind is not None:
+            showIndent(outfile, level)
+            outfile.write('kind = "%s",\n' % (self.kind,))
+        if self.refid is not None:
+            showIndent(outfile, level)
+            outfile.write('refid = %s,\n' % (self.refid,))
+
+    def exportLiteralChildren(self, outfile, level, name_):
+        showIndent(outfile, level)
+        outfile.write('name=%s,\n' % quote_python(
+            self.name).encode(ExternalEncoding))
+
+    def build(self, node_):
+        attrs = node_.attributes
+        self.buildAttributes(attrs)
+        for child_ in node_.childNodes:
+            nodeName_ = child_.nodeName.split(':')[-1]
+            self.buildChildren(child_, nodeName_)
+
+    def buildAttributes(self, attrs):
+        if attrs.get('kind'):
+            self.kind = attrs.get('kind').value
+        if attrs.get('refid'):
+            self.refid = attrs.get('refid').value
+
+    def buildChildren(self, child_, nodeName_):
+        if child_.nodeType == Node.ELEMENT_NODE and \
+                nodeName_ == 'name':
+            name_ = ''
+            for text__content_ in child_.childNodes:
+                name_ += text__content_.nodeValue
+            self.name = name_
+# end class MemberType
+
+
+USAGE_TEXT = """
+Usage: python <Parser>.py [ -s ] <in_xml_file>
+Options:
+    -s        Use the SAX parser, not the minidom parser.
+"""
+
+
+def usage():
+    print(USAGE_TEXT)
+    sys.exit(1)
+
+
+def parse(inFileName):
+    doc = minidom.parse(inFileName)
+    rootNode = doc.documentElement
+    rootObj = DoxygenType.factory()
+    rootObj.build(rootNode)
+    # Enable Python to collect the space used by the DOM.
+    doc = None
+    sys.stdout.write('<?xml version="1.0" ?>\n')
+    rootObj.export(sys.stdout, 0, name_="doxygenindex",
+                   namespacedef_='')
+    return rootObj
+
+
+def parseString(inString):
+    doc = minidom.parseString(inString)
+    rootNode = doc.documentElement
+    rootObj = DoxygenType.factory()
+    rootObj.build(rootNode)
+    # Enable Python to collect the space used by the DOM.
+    doc = None
+    sys.stdout.write('<?xml version="1.0" ?>\n')
+    rootObj.export(sys.stdout, 0, name_="doxygenindex",
+                   namespacedef_='')
+    return rootObj
+
+
+def parseLiteral(inFileName):
+    doc = minidom.parse(inFileName)
+    rootNode = doc.documentElement
+    rootObj = DoxygenType.factory()
+    rootObj.build(rootNode)
+    # Enable Python to collect the space used by the DOM.
+    doc = None
+    sys.stdout.write('from index import *\n\n')
+    sys.stdout.write('rootObj = doxygenindex(\n')
+    rootObj.exportLiteral(sys.stdout, 0, name_="doxygenindex")
+    sys.stdout.write(')\n')
+    return rootObj
+
+
+def main():
+    args = sys.argv[1:]
+    if len(args) == 1:
+        parse(args[0])
+    else:
+        usage()
+
+
+if __name__ == '__main__':
+    main()
+    #import pdb
+    # pdb.run('main()')
diff --git a/docs/doxygen/doxyxml/text.py b/docs/doxygen/doxyxml/text.py
new file mode 100644
index 0000000000000000000000000000000000000000..692ebe9e27848e1c1800173c3b4454bf2830f24b
--- /dev/null
+++ b/docs/doxygen/doxyxml/text.py
@@ -0,0 +1,49 @@
+#
+# Copyright 2010 Free Software Foundation, Inc.
+#
+# This file was generated by gr_modtool, a tool from the GNU Radio framework
+# This file is a part of gr-cdc
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+#
+"""
+Utilities for extracting text from generated classes.
+"""
+
+
+def is_string(txt):
+    if isinstance(txt, str):
+        return True
+    try:
+        if isinstance(txt, str):
+            return True
+    except NameError:
+        pass
+    return False
+
+
+def description(obj):
+    if obj is None:
+        return None
+    return description_bit(obj).strip()
+
+
+def description_bit(obj):
+    if hasattr(obj, 'content'):
+        contents = [description_bit(item) for item in obj.content]
+        result = ''.join(contents)
+    elif hasattr(obj, 'content_'):
+        contents = [description_bit(item) for item in obj.content_]
+        result = ''.join(contents)
+    elif hasattr(obj, 'value'):
+        result = description_bit(obj.value)
+    elif is_string(obj):
+        return obj
+    else:
+        raise Exception(
+            'Expecting a string or something with content, content_ or value attribute')
+    # If this bit is a paragraph then add one some line breaks.
+    if hasattr(obj, 'name') and obj.name == 'para':
+        result += "\n\n"
+    return result
diff --git a/docs/doxygen/other/doxypy.py b/docs/doxygen/other/doxypy.py
new file mode 100644
index 0000000000000000000000000000000000000000..28b166440f3f6c4462d5c7120bea1e8b672587a5
--- /dev/null
+++ b/docs/doxygen/other/doxypy.py
@@ -0,0 +1,446 @@
+#!/usr/bin/env python
+
+
+__applicationName__ = "doxypy"
+__blurb__ = """
+doxypy is an input filter for Doxygen. It preprocesses python
+files so that docstrings of classes and functions are reformatted
+into Doxygen-conform documentation blocks.
+"""
+
+__doc__ = __blurb__ + \
+    """
+In order to make Doxygen preprocess files through doxypy, simply
+add the following lines to your Doxyfile:
+    FILTER_SOURCE_FILES = YES
+    INPUT_FILTER = "python /path/to/doxypy.py"
+"""
+
+__version__ = "0.4.2"
+__date__ = "5th December 2008"
+__website__ = "http://code.foosel.org/doxypy"
+
+__author__ = (
+    "Philippe 'demod' Neumann (doxypy at demod dot org)",
+    "Gina 'foosel' Haeussge (gina at foosel dot net)"
+)
+
+__licenseName__ = "GPL v2"
+__license__ = """This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+"""
+
+import sys
+import re
+
+from argparse import ArgumentParser
+
+
+class FSM(object):
+    """Implements a finite state machine.
+
+    Transitions are given as 4-tuples, consisting of an origin state, a target
+    state, a condition for the transition (given as a reference to a function
+    which gets called with a given piece of input) and a pointer to a function
+    to be called upon the execution of the given transition.
+    """
+
+    """
+    @var transitions holds the transitions
+    @var current_state holds the current state
+    @var current_input holds the current input
+    @var current_transition hold the currently active transition
+    """
+
+    def __init__(self, start_state=None, transitions=[]):
+        self.transitions = transitions
+        self.current_state = start_state
+        self.current_input = None
+        self.current_transition = None
+
+    def setStartState(self, state):
+        self.current_state = state
+
+    def addTransition(self, from_state, to_state, condition, callback):
+        self.transitions.append([from_state, to_state, condition, callback])
+
+    def makeTransition(self, input):
+        """ Makes a transition based on the given input.
+
+        @param    input    input to parse by the FSM
+        """
+        for transition in self.transitions:
+            [from_state, to_state, condition, callback] = transition
+            if from_state == self.current_state:
+                match = condition(input)
+                if match:
+                    self.current_state = to_state
+                    self.current_input = input
+                    self.current_transition = transition
+                    if args.debug:
+                        print("# FSM: executing (%s -> %s) for line '%s'" %
+                              (from_state, to_state, input), file=sys.stderr)
+                    callback(match)
+                    return
+
+
+class Doxypy(object):
+    def __init__(self):
+        string_prefixes = "[uU]?[rR]?"
+
+        self.start_single_comment_re = re.compile(
+            r"^\s*%s(''')" % string_prefixes)
+        self.end_single_comment_re = re.compile(r"(''')\s*$")
+
+        self.start_double_comment_re = re.compile(
+            r'^\s*%s(""")' % string_prefixes)
+        self.end_double_comment_re = re.compile(r'(""")\s*$')
+
+        self.single_comment_re = re.compile(
+            r"^\s*%s(''').*(''')\s*$" % string_prefixes)
+        self.double_comment_re = re.compile(
+            r'^\s*%s(""").*(""")\s*$' % string_prefixes)
+
+        self.defclass_re = re.compile(r"^(\s*)(def .+:|class .+:)")
+        self.empty_re = re.compile(r"^\s*$")
+        self.hashline_re = re.compile(r"^\s*#.*$")
+        self.importline_re = re.compile(r"^\s*(import |from .+ import)")
+
+        self.multiline_defclass_start_re = re.compile(
+            r"^(\s*)(def|class)(\s.*)?$")
+        self.multiline_defclass_end_re = re.compile(r":\s*$")
+
+        # Transition list format
+        #  ["FROM", "TO", condition, action]
+        transitions = [
+            # FILEHEAD
+
+            # single line comments
+            ["FILEHEAD", "FILEHEAD", self.single_comment_re.search,
+                self.appendCommentLine],
+            ["FILEHEAD", "FILEHEAD", self.double_comment_re.search,
+                self.appendCommentLine],
+
+            # multiline comments
+            ["FILEHEAD", "FILEHEAD_COMMENT_SINGLE",
+                self.start_single_comment_re.search, self.appendCommentLine],
+            ["FILEHEAD_COMMENT_SINGLE", "FILEHEAD",
+                self.end_single_comment_re.search, self.appendCommentLine],
+            ["FILEHEAD_COMMENT_SINGLE", "FILEHEAD_COMMENT_SINGLE",
+                self.catchall, self.appendCommentLine],
+            ["FILEHEAD", "FILEHEAD_COMMENT_DOUBLE",
+                self.start_double_comment_re.search, self.appendCommentLine],
+            ["FILEHEAD_COMMENT_DOUBLE", "FILEHEAD",
+                self.end_double_comment_re.search, self.appendCommentLine],
+            ["FILEHEAD_COMMENT_DOUBLE", "FILEHEAD_COMMENT_DOUBLE",
+                self.catchall, self.appendCommentLine],
+
+            # other lines
+            ["FILEHEAD", "FILEHEAD", self.empty_re.search, self.appendFileheadLine],
+            ["FILEHEAD", "FILEHEAD", self.hashline_re.search, self.appendFileheadLine],
+            ["FILEHEAD", "FILEHEAD", self.importline_re.search,
+                self.appendFileheadLine],
+            ["FILEHEAD", "DEFCLASS", self.defclass_re.search, self.resetCommentSearch],
+            ["FILEHEAD", "DEFCLASS_MULTI",
+                self.multiline_defclass_start_re.search, self.resetCommentSearch],
+            ["FILEHEAD", "DEFCLASS_BODY", self.catchall, self.appendFileheadLine],
+
+            # DEFCLASS
+
+            # single line comments
+            ["DEFCLASS", "DEFCLASS_BODY",
+                self.single_comment_re.search, self.appendCommentLine],
+            ["DEFCLASS", "DEFCLASS_BODY",
+                self.double_comment_re.search, self.appendCommentLine],
+
+            # multiline comments
+            ["DEFCLASS", "COMMENT_SINGLE",
+                self.start_single_comment_re.search, self.appendCommentLine],
+            ["COMMENT_SINGLE", "DEFCLASS_BODY",
+                self.end_single_comment_re.search, self.appendCommentLine],
+            ["COMMENT_SINGLE", "COMMENT_SINGLE",
+                self.catchall, self.appendCommentLine],
+            ["DEFCLASS", "COMMENT_DOUBLE",
+                self.start_double_comment_re.search, self.appendCommentLine],
+            ["COMMENT_DOUBLE", "DEFCLASS_BODY",
+                self.end_double_comment_re.search, self.appendCommentLine],
+            ["COMMENT_DOUBLE", "COMMENT_DOUBLE",
+                self.catchall, self.appendCommentLine],
+
+            # other lines
+            ["DEFCLASS", "DEFCLASS", self.empty_re.search, self.appendDefclassLine],
+            ["DEFCLASS", "DEFCLASS", self.defclass_re.search, self.resetCommentSearch],
+            ["DEFCLASS", "DEFCLASS_MULTI",
+                self.multiline_defclass_start_re.search, self.resetCommentSearch],
+            ["DEFCLASS", "DEFCLASS_BODY", self.catchall, self.stopCommentSearch],
+
+            # DEFCLASS_BODY
+
+            ["DEFCLASS_BODY", "DEFCLASS",
+                self.defclass_re.search, self.startCommentSearch],
+            ["DEFCLASS_BODY", "DEFCLASS_MULTI",
+                self.multiline_defclass_start_re.search, self.startCommentSearch],
+            ["DEFCLASS_BODY", "DEFCLASS_BODY", self.catchall, self.appendNormalLine],
+
+            # DEFCLASS_MULTI
+            ["DEFCLASS_MULTI", "DEFCLASS",
+                self.multiline_defclass_end_re.search, self.appendDefclassLine],
+            ["DEFCLASS_MULTI", "DEFCLASS_MULTI",
+                self.catchall, self.appendDefclassLine],
+        ]
+
+        self.fsm = FSM("FILEHEAD", transitions)
+        self.outstream = sys.stdout
+
+        self.output = []
+        self.comment = []
+        self.filehead = []
+        self.defclass = []
+        self.indent = ""
+
+    def __closeComment(self):
+        """Appends any open comment block and triggering block to the output."""
+
+        if args.autobrief:
+            if len(self.comment) == 1 \
+                    or (len(self.comment) > 2 and self.comment[1].strip() == ''):
+                self.comment[0] = self.__docstringSummaryToBrief(
+                    self.comment[0])
+
+        if self.comment:
+            block = self.makeCommentBlock()
+            self.output.extend(block)
+
+        if self.defclass:
+            self.output.extend(self.defclass)
+
+    def __docstringSummaryToBrief(self, line):
+        """Adds \\brief to the docstrings summary line.
+
+        A \\brief is prepended, provided no other doxygen command is at the
+        start of the line.
+        """
+        stripped = line.strip()
+        if stripped and not stripped[0] in ('@', '\\'):
+            return "\\brief " + line
+        else:
+            return line
+
+    def __flushBuffer(self):
+        """Flushes the current outputbuffer to the outstream."""
+        if self.output:
+            try:
+                if args.debug:
+                    print("# OUTPUT: ", self.output, file=sys.stderr)
+                print("\n".join(self.output), file=self.outstream)
+                self.outstream.flush()
+            except IOError:
+                # Fix for FS#33. Catches "broken pipe" when doxygen closes
+                # stdout prematurely upon usage of INPUT_FILTER, INLINE_SOURCES
+                # and FILTER_SOURCE_FILES.
+                pass
+        self.output = []
+
+    def catchall(self, input):
+        """The catchall-condition, always returns true."""
+        return True
+
+    def resetCommentSearch(self, match):
+        """Restarts a new comment search for a different triggering line.
+
+        Closes the current commentblock and starts a new comment search.
+        """
+        if args.debug:
+            print("# CALLBACK: resetCommentSearch", file=sys.stderr)
+        self.__closeComment()
+        self.startCommentSearch(match)
+
+    def startCommentSearch(self, match):
+        """Starts a new comment search.
+
+        Saves the triggering line, resets the current comment and saves
+        the current indentation.
+        """
+        if args.debug:
+            print("# CALLBACK: startCommentSearch", file=sys.stderr)
+        self.defclass = [self.fsm.current_input]
+        self.comment = []
+        self.indent = match.group(1)
+
+    def stopCommentSearch(self, match):
+        """Stops a comment search.
+
+        Closes the current commentblock, resets    the triggering line and
+        appends the current line to the output.
+        """
+        if args.debug:
+            print("# CALLBACK: stopCommentSearch", file=sys.stderr)
+        self.__closeComment()
+
+        self.defclass = []
+        self.output.append(self.fsm.current_input)
+
+    def appendFileheadLine(self, match):
+        """Appends a line in the FILEHEAD state.
+
+        Closes the open comment    block, resets it and appends the current line.
+        """
+        if args.debug:
+            print("# CALLBACK: appendFileheadLine", file=sys.stderr)
+        self.__closeComment()
+        self.comment = []
+        self.output.append(self.fsm.current_input)
+
+    def appendCommentLine(self, match):
+        """Appends a comment line.
+
+        The comment delimiter is removed from multiline start and ends as
+        well as singleline comments.
+        """
+        if args.debug:
+            print("# CALLBACK: appendCommentLine", file=sys.stderr)
+        (from_state, to_state, condition, callback) = self.fsm.current_transition
+
+        # single line comment
+        if (from_state == "DEFCLASS" and to_state == "DEFCLASS_BODY") \
+                or (from_state == "FILEHEAD" and to_state == "FILEHEAD"):
+            # remove comment delimiter from begin and end of the line
+            activeCommentDelim = match.group(1)
+            line = self.fsm.current_input
+            self.comment.append(line[line.find(
+                activeCommentDelim) + len(activeCommentDelim):line.rfind(activeCommentDelim)])
+
+            if (to_state == "DEFCLASS_BODY"):
+                self.__closeComment()
+                self.defclass = []
+        # multiline start
+        elif from_state == "DEFCLASS" or from_state == "FILEHEAD":
+            # remove comment delimiter from begin of the line
+            activeCommentDelim = match.group(1)
+            line = self.fsm.current_input
+            self.comment.append(
+                line[line.find(activeCommentDelim) + len(activeCommentDelim):])
+        # multiline end
+        elif to_state == "DEFCLASS_BODY" or to_state == "FILEHEAD":
+            # remove comment delimiter from end of the line
+            activeCommentDelim = match.group(1)
+            line = self.fsm.current_input
+            self.comment.append(line[0:line.rfind(activeCommentDelim)])
+            if (to_state == "DEFCLASS_BODY"):
+                self.__closeComment()
+                self.defclass = []
+        # in multiline comment
+        else:
+            # just append the comment line
+            self.comment.append(self.fsm.current_input)
+
+    def appendNormalLine(self, match):
+        """Appends a line to the output."""
+        if args.debug:
+            print("# CALLBACK: appendNormalLine", file=sys.stderr)
+        self.output.append(self.fsm.current_input)
+
+    def appendDefclassLine(self, match):
+        """Appends a line to the triggering block."""
+        if args.debug:
+            print("# CALLBACK: appendDefclassLine", file=sys.stderr)
+        self.defclass.append(self.fsm.current_input)
+
+    def makeCommentBlock(self):
+        """Indents the current comment block with respect to the current
+        indentation level.
+
+        @returns a list of indented comment lines
+        """
+        doxyStart = "##"
+        commentLines = self.comment
+
+        commentLines = ["%s# %s" % (self.indent, x) for x in commentLines]
+        l = [self.indent + doxyStart]
+        l.extend(commentLines)
+
+        return l
+
+    def parse(self, input):
+        """Parses a python file given as input string and returns the doxygen-
+        compatible representation.
+
+        @param    input    the python code to parse
+        @returns the modified python code
+        """
+        lines = input.split("\n")
+
+        for line in lines:
+            self.fsm.makeTransition(line)
+
+        if self.fsm.current_state == "DEFCLASS":
+            self.__closeComment()
+
+        return "\n".join(self.output)
+
+    def parseFile(self, filename):
+        """Parses a python file given as input string and returns the doxygen-
+        compatible representation.
+
+        @param    input    the python code to parse
+        @returns the modified python code
+        """
+        f = open(filename, 'r')
+
+        for line in f:
+            self.parseLine(line.rstrip('\r\n'))
+        if self.fsm.current_state == "DEFCLASS":
+            self.__closeComment()
+            self.__flushBuffer()
+        f.close()
+
+    def parseLine(self, line):
+        """Parse one line of python and flush the resulting output to the
+        outstream.
+
+        @param    line    the python code line to parse
+        """
+        self.fsm.makeTransition(line)
+        self.__flushBuffer()
+
+
+def argParse():
+    """Parses commandline args."""
+    parser = ArgumentParser(prog=__applicationName__)
+
+    parser.add_argument("--version", action="version",
+                        version="%(prog)s " + __version__
+                        )
+    parser.add_argument("--autobrief", action="store_true",
+                        help="use the docstring summary line as \\brief description"
+                        )
+    parser.add_argument("--debug", action="store_true",
+                        help="enable debug output on stderr"
+                        )
+    parser.add_argument("filename", metavar="FILENAME")
+
+    return parser.parse_args()
+
+
+def main():
+    """Starts the parser on the file given by the filename as the first
+    argument on the commandline.
+    """
+    global args
+    args = argParse()
+    fsm = Doxypy()
+    fsm.parseFile(args.filename)
+
+
+if __name__ == "__main__":
+    main()
diff --git a/docs/doxygen/other/group_defs.dox b/docs/doxygen/other/group_defs.dox
new file mode 100644
index 0000000000000000000000000000000000000000..21bf468c86995457af72c5ac93930ec73fa0f9d6
--- /dev/null
+++ b/docs/doxygen/other/group_defs.dox
@@ -0,0 +1,6 @@
+/*!
+ * \defgroup block GNU Radio CDC C++ Signal Processing Blocks
+ * \brief All C++ blocks that can be used from the CDC GNU Radio
+ *        module are listed here or in the subcategories below.
+ *
+ */
diff --git a/docs/doxygen/other/main_page.dox b/docs/doxygen/other/main_page.dox
new file mode 100644
index 0000000000000000000000000000000000000000..4d59d68b8d8ba644467efa81e6d848eebc8012f4
--- /dev/null
+++ b/docs/doxygen/other/main_page.dox
@@ -0,0 +1,10 @@
+/*! \mainpage
+
+Welcome to the GNU Radio CDC Block
+
+This is the intro page for the Doxygen manual generated for the CDC
+block (docs/doxygen/other/main_page.dox). Edit it to add more detailed
+documentation about the new GNU Radio modules contained in this
+project.
+
+*/
diff --git a/docs/doxygen/pydoc_macros.h b/docs/doxygen/pydoc_macros.h
new file mode 100644
index 0000000000000000000000000000000000000000..fb3954bc87e9e8ac40141400f90bbdf14dda6021
--- /dev/null
+++ b/docs/doxygen/pydoc_macros.h
@@ -0,0 +1,19 @@
+#ifndef PYDOC_MACROS_H
+#define PYDOC_MACROS_H
+
+#define __EXPAND(x) x
+#define __COUNT(_1, _2, _3, _4, _5, _6, _7, COUNT, ...) COUNT
+#define __VA_SIZE(...) __EXPAND(__COUNT(__VA_ARGS__, 7, 6, 5, 4, 3, 2, 1))
+#define __CAT1(a, b) a##b
+#define __CAT2(a, b) __CAT1(a, b)
+#define __DOC1(n1) __doc_##n1
+#define __DOC2(n1, n2) __doc_##n1##_##n2
+#define __DOC3(n1, n2, n3) __doc_##n1##_##n2##_##n3
+#define __DOC4(n1, n2, n3, n4) __doc_##n1##_##n2##_##n3##_##n4
+#define __DOC5(n1, n2, n3, n4, n5) __doc_##n1##_##n2##_##n3##_##n4##_##n5
+#define __DOC6(n1, n2, n3, n4, n5, n6) __doc_##n1##_##n2##_##n3##_##n4##_##n5##_##n6
+#define __DOC7(n1, n2, n3, n4, n5, n6, n7) \
+    __doc_##n1##_##n2##_##n3##_##n4##_##n5##_##n6##_##n7
+#define DOC(...) __EXPAND(__EXPAND(__CAT2(__DOC, __VA_SIZE(__VA_ARGS__)))(__VA_ARGS__))
+
+#endif // PYDOC_MACROS_H
diff --git a/docs/doxygen/update_pydoc.py b/docs/doxygen/update_pydoc.py
new file mode 100644
index 0000000000000000000000000000000000000000..b65e168ae53b59608443b58c6a1473c3a4836721
--- /dev/null
+++ b/docs/doxygen/update_pydoc.py
@@ -0,0 +1,372 @@
+#
+# Copyright 2010-2012 Free Software Foundation, Inc.
+#
+# This file was generated by gr_modtool, a tool from the GNU Radio framework
+# This file is a part of gnuradio
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+#
+"""
+Updates the *pydoc_h files for a module
+Execute using: python update_pydoc.py xml_path outputfilename
+
+The file instructs Pybind11 to transfer the doxygen comments into the
+python docstrings.
+
+"""
+
+import os
+import sys
+import time
+import glob
+import re
+import json
+from argparse import ArgumentParser
+
+from doxyxml import DoxyIndex, DoxyClass, DoxyFriend, DoxyFunction, DoxyFile
+from doxyxml import DoxyOther, base
+
+
+def py_name(name):
+    bits = name.split('_')
+    return '_'.join(bits[1:])
+
+
+def make_name(name):
+    bits = name.split('_')
+    return bits[0] + '_make_' + '_'.join(bits[1:])
+
+
+class Block(object):
+    """
+    Checks if doxyxml produced objects correspond to a gnuradio block.
+    """
+
+    @classmethod
+    def includes(cls, item):
+        if not isinstance(item, DoxyClass):
+            return False
+        # Check for a parsing error.
+        if item.error():
+            return False
+        friendname = make_name(item.name())
+        is_a_block = item.has_member(friendname, DoxyFriend)
+        # But now sometimes the make function isn't a friend so check again.
+        if not is_a_block:
+            is_a_block = di.has_member(friendname, DoxyFunction)
+        return is_a_block
+
+
+class Block2(object):
+    """
+    Checks if doxyxml produced objects correspond to a new style
+    gnuradio block.
+    """
+
+    @classmethod
+    def includes(cls, item):
+        if not isinstance(item, DoxyClass):
+            return False
+        # Check for a parsing error.
+        if item.error():
+            return False
+        is_a_block2 = item.has_member(
+            'make', DoxyFunction) and item.has_member('sptr', DoxyOther)
+        return is_a_block2
+
+
+def utoascii(text):
+    """
+    Convert unicode text into ascii and escape quotes and backslashes.
+    """
+    if text is None:
+        return ''
+    out = text.encode('ascii', 'replace')
+    # swig will require us to replace blackslash with 4 backslashes
+    # TODO: evaluate what this should be for pybind11
+    out = out.replace(b'\\', b'\\\\\\\\')
+    out = out.replace(b'"', b'\\"').decode('ascii')
+    return str(out)
+
+
+def combine_descriptions(obj):
+    """
+    Combines the brief and detailed descriptions of an object together.
+    """
+    description = []
+    bd = obj.brief_description.strip()
+    dd = obj.detailed_description.strip()
+    if bd:
+        description.append(bd)
+    if dd:
+        description.append(dd)
+    return utoascii('\n\n'.join(description)).strip()
+
+
+def format_params(parameteritems):
+    output = ['Args:']
+    template = '    {0} : {1}'
+    for pi in parameteritems:
+        output.append(template.format(pi.name, pi.description))
+    return '\n'.join(output)
+
+
+entry_templ = '%feature("docstring") {name} "{docstring}"'
+
+
+def make_entry(obj, name=None, templ="{description}", description=None, params=[]):
+    """
+    Create a docstring key/value pair, where the key is the object name.
+
+    obj - a doxyxml object from which documentation will be extracted.
+    name - the name of the C object (defaults to obj.name())
+    templ - an optional template for the docstring containing only one
+            variable named 'description'.
+    description - if this optional variable is set then it's value is
+            used as the description instead of extracting it from obj.
+    """
+    if name is None:
+        name = obj.name()
+        if hasattr(obj, '_parse_data') and hasattr(obj._parse_data, 'definition'):
+            name = obj._parse_data.definition.split(' ')[-1]
+    if "operator " in name:
+        return ''
+    if description is None:
+        description = combine_descriptions(obj)
+    if params:
+        description += '\n\n'
+        description += utoascii(format_params(params))
+    docstring = templ.format(description=description)
+
+    return {name: docstring}
+
+
+def make_class_entry(klass, description=None, ignored_methods=[], params=None):
+    """
+    Create a class docstring key/value pair.
+    """
+    if params is None:
+        params = klass.params
+    output = {}
+    output.update(make_entry(klass, description=description, params=params))
+    for func in klass.in_category(DoxyFunction):
+        if func.name() not in ignored_methods:
+            name = klass.name() + '::' + func.name()
+            output.update(make_entry(func, name=name))
+    return output
+
+
+def make_block_entry(di, block):
+    """
+    Create class and function docstrings of a gnuradio block
+    """
+    descriptions = []
+    # Get the documentation associated with the class.
+    class_desc = combine_descriptions(block)
+    if class_desc:
+        descriptions.append(class_desc)
+    # Get the documentation associated with the make function
+    make_func = di.get_member(make_name(block.name()), DoxyFunction)
+    make_func_desc = combine_descriptions(make_func)
+    if make_func_desc:
+        descriptions.append(make_func_desc)
+    # Get the documentation associated with the file
+    try:
+        block_file = di.get_member(block.name() + ".h", DoxyFile)
+        file_desc = combine_descriptions(block_file)
+        if file_desc:
+            descriptions.append(file_desc)
+    except base.Base.NoSuchMember:
+        # Don't worry if we can't find a matching file.
+        pass
+    # And join them all together to make a super duper description.
+    super_description = "\n\n".join(descriptions)
+    # Associate the combined description with the class and
+    # the make function.
+    output = {}
+    output.update(make_class_entry(block, description=super_description))
+    output.update(make_entry(make_func, description=super_description,
+                             params=block.params))
+    return output
+
+
+def make_block2_entry(di, block):
+    """
+    Create class and function docstrings of a new style gnuradio block
+    """
+    # For new style blocks all the relevant documentation should be
+    # associated with the 'make' method.
+    class_description = combine_descriptions(block)
+    make_func = block.get_member('make', DoxyFunction)
+    make_description = combine_descriptions(make_func)
+    description = class_description + \
+        "\n\nConstructor Specific Documentation:\n\n" + make_description
+    # Associate the combined description with the class and
+    # the make function.
+    output = {}
+    output.update(make_class_entry(
+        block, description=description,
+        ignored_methods=['make'], params=make_func.params))
+    makename = block.name() + '::make'
+    output.update(make_entry(
+        make_func, name=makename, description=description,
+        params=make_func.params))
+    return output
+
+
+def get_docstrings_dict(di, custom_output=None):
+
+    output = {}
+    if custom_output:
+        output.update(custom_output)
+
+    # Create docstrings for the blocks.
+    blocks = di.in_category(Block)
+    blocks2 = di.in_category(Block2)
+
+    make_funcs = set([])
+    for block in blocks:
+        try:
+            make_func = di.get_member(make_name(block.name()), DoxyFunction)
+            # Don't want to risk writing to output twice.
+            if make_func.name() not in make_funcs:
+                make_funcs.add(make_func.name())
+                output.update(make_block_entry(di, block))
+        except block.ParsingError:
+            sys.stderr.write(
+                'Parsing error for block {0}\n'.format(block.name()))
+            raise
+
+    for block in blocks2:
+        try:
+            make_func = block.get_member('make', DoxyFunction)
+            make_func_name = block.name() + '::make'
+            # Don't want to risk writing to output twice.
+            if make_func_name not in make_funcs:
+                make_funcs.add(make_func_name)
+                output.update(make_block2_entry(di, block))
+        except block.ParsingError:
+            sys.stderr.write(
+                'Parsing error for block {0}\n'.format(block.name()))
+            raise
+
+    # Create docstrings for functions
+    # Don't include the make functions since they have already been dealt with.
+    funcs = [f for f in di.in_category(DoxyFunction)
+             if f.name() not in make_funcs and not f.name().startswith('std::')]
+    for f in funcs:
+        try:
+            output.update(make_entry(f))
+        except f.ParsingError:
+            sys.stderr.write(
+                'Parsing error for function {0}\n'.format(f.name()))
+
+    # Create docstrings for classes
+    block_names = [block.name() for block in blocks]
+    block_names += [block.name() for block in blocks2]
+    klasses = [k for k in di.in_category(DoxyClass)
+               if k.name() not in block_names and not k.name().startswith('std::')]
+    for k in klasses:
+        try:
+            output.update(make_class_entry(k))
+        except k.ParsingError:
+            sys.stderr.write('Parsing error for class {0}\n'.format(k.name()))
+
+    # Docstrings are not created for anything that is not a function or a class.
+    # If this excludes anything important please add it here.
+
+    return output
+
+
+def sub_docstring_in_pydoc_h(pydoc_files, docstrings_dict, output_dir, filter_str=None):
+    if filter_str:
+        docstrings_dict = {
+            k: v for k, v in docstrings_dict.items() if k.startswith(filter_str)}
+
+    with open(os.path.join(output_dir, 'docstring_status'), 'w') as status_file:
+
+        for pydoc_file in pydoc_files:
+            if filter_str:
+                filter_str2 = "::".join((filter_str, os.path.split(
+                    pydoc_file)[-1].split('_pydoc_template.h')[0]))
+                docstrings_dict2 = {
+                    k: v for k, v in docstrings_dict.items() if k.startswith(filter_str2)}
+            else:
+                docstrings_dict2 = docstrings_dict
+
+            file_in = open(pydoc_file, 'r').read()
+            for key, value in docstrings_dict2.items():
+                file_in_tmp = file_in
+                try:
+                    doc_key = key.split("::")
+                    # if 'gr' in doc_key:
+                    #     doc_key.remove('gr')
+                    doc_key = '_'.join(doc_key)
+                    regexp = r'(__doc_{} =\sR\"doc\()[^)]*(\)doc\")'.format(
+                        doc_key)
+                    regexp = re.compile(regexp, re.MULTILINE)
+
+                    (file_in, nsubs) = regexp.subn(
+                        r'\1' + value + r'\2', file_in, count=1)
+                    if nsubs == 1:
+                        status_file.write("PASS: " + pydoc_file + "\n")
+                except KeyboardInterrupt:
+                    raise KeyboardInterrupt
+                except:  # be permissive, TODO log, but just leave the docstring blank
+                    status_file.write("FAIL: " + pydoc_file + "\n")
+                    file_in = file_in_tmp
+
+            output_pathname = os.path.join(output_dir, os.path.basename(
+                pydoc_file).replace('_template.h', '.h'))
+            with open(output_pathname, 'w') as file_out:
+                file_out.write(file_in)
+
+
+def copy_docstring_templates(pydoc_files, output_dir):
+    with open(os.path.join(output_dir, 'docstring_status'), 'w') as status_file:
+        for pydoc_file in pydoc_files:
+            file_in = open(pydoc_file, 'r').read()
+            output_pathname = os.path.join(output_dir, os.path.basename(
+                pydoc_file).replace('_template.h', '.h'))
+            with open(output_pathname, 'w') as file_out:
+                file_out.write(file_in)
+        status_file.write("DONE")
+
+
+def argParse():
+    """Parses commandline args."""
+    desc = 'Scrape the doxygen generated xml for docstrings to insert into python bindings'
+    parser = ArgumentParser(description=desc)
+
+    parser.add_argument("function", help="Operation to perform on docstrings", choices=[
+                        "scrape", "sub", "copy"])
+
+    parser.add_argument("--xml_path")
+    parser.add_argument("--bindings_dir")
+    parser.add_argument("--output_dir")
+    parser.add_argument("--json_path")
+    parser.add_argument("--filter", default=None)
+
+    return parser.parse_args()
+
+
+if __name__ == "__main__":
+    # Parse command line options and set up doxyxml.
+    args = argParse()
+    if args.function.lower() == 'scrape':
+        di = DoxyIndex(args.xml_path)
+        docstrings_dict = get_docstrings_dict(di)
+        with open(args.json_path, 'w') as fp:
+            json.dump(docstrings_dict, fp)
+    elif args.function.lower() == 'sub':
+        with open(args.json_path, 'r') as fp:
+            docstrings_dict = json.load(fp)
+        pydoc_files = glob.glob(os.path.join(
+            args.bindings_dir, '*_pydoc_template.h'))
+        sub_docstring_in_pydoc_h(
+            pydoc_files, docstrings_dict, args.output_dir, args.filter)
+    elif args.function.lower() == 'copy':
+        pydoc_files = glob.glob(os.path.join(
+            args.bindings_dir, '*_pydoc_template.h'))
+        copy_docstring_templates(pydoc_files, args.output_dir)
diff --git a/examples/README b/examples/README
new file mode 100644
index 0000000000000000000000000000000000000000..d7a3359d93e38352a6c2c4ff00b3faf3c3cf8733
--- /dev/null
+++ b/examples/README
@@ -0,0 +1,3 @@
+It is considered good practice to add examples in here to demonstrate the
+functionality of your OOT module. Python scripts, GRC flow graphs or other
+code can go here.
diff --git a/grc/CMakeLists.txt b/grc/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..49a597df0d6617ad013021f3f8579a993c6aa5bf
--- /dev/null
+++ b/grc/CMakeLists.txt
@@ -0,0 +1,11 @@
+# Copyright 2011 Free Software Foundation, Inc.
+#
+# This file was generated by gr_modtool, a tool from the GNU Radio framework
+# This file is a part of gr-cdc
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+
+install(FILES
+    DESTINATION share/gnuradio/grc/blocks
+)
diff --git a/include/gnuradio/cdc/CMakeLists.txt b/include/gnuradio/cdc/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..864df4f841a39a4a1ef6051922c69d8a9a967f94
--- /dev/null
+++ b/include/gnuradio/cdc/CMakeLists.txt
@@ -0,0 +1,15 @@
+# Copyright 2011,2012 Free Software Foundation, Inc.
+#
+# This file was generated by gr_modtool, a tool from the GNU Radio framework
+# This file is a part of gr-cdc
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+
+########################################################################
+# Install public header files
+########################################################################
+install(FILES
+    api.h
+    DESTINATION include/gnuradio/cdc
+)
diff --git a/include/gnuradio/cdc/api.h b/include/gnuradio/cdc/api.h
new file mode 100644
index 0000000000000000000000000000000000000000..47d7119d1955a48b24a8b9f3eb849d8069b5b7f6
--- /dev/null
+++ b/include/gnuradio/cdc/api.h
@@ -0,0 +1,22 @@
+/*
+ * Copyright 2011 Free Software Foundation, Inc.
+ *
+ * This file was generated by gr_modtool, a tool from the GNU Radio framework
+ * This file is a part of gr-cdc
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+#ifndef INCLUDED_CDC_API_H
+#define INCLUDED_CDC_API_H
+
+#include <gnuradio/attributes.h>
+
+#ifdef gnuradio_cdc_EXPORTS
+#define CDC_API __GR_ATTR_EXPORT
+#else
+#define CDC_API __GR_ATTR_IMPORT
+#endif
+
+#endif /* INCLUDED_CDC_API_H */
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..77cfc1ecf2430bb3ca79afb3ed5d82d6609beba3
--- /dev/null
+++ b/lib/CMakeLists.txt
@@ -0,0 +1,71 @@
+# Copyright 2011,2012,2016,2018,2019 Free Software Foundation, Inc.
+#
+# This file was generated by gr_modtool, a tool from the GNU Radio framework
+# This file is a part of gr-cdc
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+
+########################################################################
+# Setup library
+########################################################################
+include(GrPlatform) #define LIB_SUFFIX
+
+list(APPEND cdc_sources
+)
+
+set(cdc_sources "${cdc_sources}" PARENT_SCOPE)
+if(NOT cdc_sources)
+    MESSAGE(STATUS "No C++ sources... skipping lib/")
+    return()
+endif(NOT cdc_sources)
+
+add_library(gnuradio-cdc SHARED ${cdc_sources})
+target_link_libraries(gnuradio-cdc gnuradio::gnuradio-runtime)
+target_include_directories(gnuradio-cdc
+    PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../include>
+    PUBLIC $<INSTALL_INTERFACE:include>
+  )
+set_target_properties(gnuradio-cdc PROPERTIES DEFINE_SYMBOL "gnuradio_cdc_EXPORTS")
+
+if(APPLE)
+    set_target_properties(gnuradio-cdc PROPERTIES
+        INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib"
+    )
+endif(APPLE)
+
+########################################################################
+# Install built library files
+########################################################################
+include(GrMiscUtils)
+GR_LIBRARY_FOO(gnuradio-cdc)
+
+########################################################################
+# Print summary
+########################################################################
+message(STATUS "Using install prefix: ${CMAKE_INSTALL_PREFIX}")
+message(STATUS "Building for version: ${VERSION} / ${LIBVER}")
+
+########################################################################
+# Build and register unit test
+########################################################################
+include(GrTest)
+
+# If your unit tests require special include paths, add them here
+#include_directories()
+# List all files that contain Boost.UTF unit tests here
+list(APPEND test_cdc_sources
+)
+# Anything we need to link to for the unit tests go here
+list(APPEND GR_TEST_TARGET_DEPS gnuradio-cdc)
+
+if(NOT test_cdc_sources)
+    MESSAGE(STATUS "No C++ unit tests... skipping")
+    return()
+endif(NOT test_cdc_sources)
+
+foreach(qa_file ${test_cdc_sources})
+    GR_ADD_CPP_TEST("cdc_${qa_file}"
+        ${CMAKE_CURRENT_SOURCE_DIR}/${qa_file}
+    )
+endforeach(qa_file)
diff --git a/python/cdc/.gitignore b/python/cdc/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..85c92e8d3a6017270e561d5fd68053776d73ceaa
--- /dev/null
+++ b/python/cdc/.gitignore
@@ -0,0 +1,5 @@
+*~
+*.pyc
+*.pyo
+build*/
+examples/grc/*.py
diff --git a/python/cdc/CMakeLists.txt b/python/cdc/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..b7f3145e17e21d04627ac2200752fde58dcede40
--- /dev/null
+++ b/python/cdc/CMakeLists.txt
@@ -0,0 +1,41 @@
+# Copyright 2011 Free Software Foundation, Inc.
+#
+# This file was generated by gr_modtool, a tool from the GNU Radio framework
+# This file is a part of gr-cdc
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+
+########################################################################
+# Include python install macros
+########################################################################
+include(GrPython)
+if(NOT PYTHONINTERP_FOUND)
+    return()
+endif()
+
+add_subdirectory(bindings)
+
+########################################################################
+# Install python sources
+########################################################################
+GR_PYTHON_INSTALL(
+    FILES
+    __init__.py
+    DESTINATION ${GR_PYTHON_DIR}/gnuradio/cdc
+)
+
+########################################################################
+# Handle the unit tests
+########################################################################
+include(GrTest)
+
+set(GR_TEST_TARGET_DEPS gnuradio-cdc)
+
+# Create a package directory that tests can import. It includes everything
+# from `python/`.
+add_custom_target(
+  copy_module_for_tests ALL
+  COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}
+          ${CMAKE_BINARY_DIR}/test_modules/gnuradio/cdc/
+)
diff --git a/python/cdc/__init__.py b/python/cdc/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..8271f599c3eb6962efb61429f50b6ec2d303a42b
--- /dev/null
+++ b/python/cdc/__init__.py
@@ -0,0 +1,23 @@
+#
+# Copyright 2008,2009 Free Software Foundation, Inc.
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+
+# The presence of this file turns this directory into a Python package
+
+'''
+This is the GNU Radio CDC module. Place your Python package
+description here (python/__init__.py).
+'''
+import os
+
+# import pybind11 generated symbols into the cdc namespace
+try:
+    # this might fail if the module is python-only
+    from .cdc_python import *
+except ModuleNotFoundError:
+    pass
+
+# import any pure python here
+#
diff --git a/python/cdc/bindings/CMakeLists.txt b/python/cdc/bindings/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..607a20f93ea348f644015e0dacb7dad7ae5ad34a
--- /dev/null
+++ b/python/cdc/bindings/CMakeLists.txt
@@ -0,0 +1,47 @@
+# Copyright 2020 Free Software Foundation, Inc.
+#
+# This file is part of GNU Radio
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+
+########################################################################
+# Check if there is C++ code at all
+########################################################################
+if(NOT cdc_sources)
+    MESSAGE(STATUS "No C++ sources... skipping python bindings")
+    return()
+endif(NOT cdc_sources)
+
+########################################################################
+# Check for pygccxml
+########################################################################
+GR_PYTHON_CHECK_MODULE_RAW(
+    "pygccxml"
+    "import pygccxml"
+    PYGCCXML_FOUND
+    )
+
+include(GrPybind)
+
+########################################################################
+# Python Bindings
+########################################################################
+
+list(APPEND cdc_python_files
+    python_bindings.cc)
+
+GR_PYBIND_MAKE_OOT(cdc
+   ../../..
+   gr::cdc
+   "${cdc_python_files}")
+
+# copy in bindings .so file for use in QA test module
+add_custom_target(
+  copy_bindings_for_tests ALL
+  COMMAND
+    ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_BINARY_DIR}/*.so"
+    ${CMAKE_BINARY_DIR}/test_modules/gnuradio/cdc/
+  DEPENDS cdc_python)
+
+install(TARGETS cdc_python DESTINATION ${GR_PYTHON_DIR}/gnuradio/cdc COMPONENT pythonapi)
diff --git a/python/cdc/bindings/README.md b/python/cdc/bindings/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/python/cdc/bindings/bind_oot_file.py b/python/cdc/bindings/bind_oot_file.py
new file mode 100644
index 0000000000000000000000000000000000000000..5bc3ff63e2418cc75fb93664ef714dc325167a85
--- /dev/null
+++ b/python/cdc/bindings/bind_oot_file.py
@@ -0,0 +1,58 @@
+import warnings
+import argparse
+import os
+from gnuradio.bindtool import BindingGenerator
+import pathlib
+import sys
+import tempfile
+
+parser = argparse.ArgumentParser(description='Bind a GR Out of Tree Block')
+parser.add_argument('--module', type=str,
+                    help='Name of gr module containing file to bind (e.g. fft digital analog)')
+
+parser.add_argument('--output_dir', default=tempfile.gettempdir(),
+                    help='Output directory of generated bindings')
+parser.add_argument('--prefix', help='Prefix of Installed GNU Radio')
+parser.add_argument('--src', help='Directory of gnuradio source tree',
+                    default=os.path.dirname(os.path.abspath(__file__)) + '/../../..')
+
+parser.add_argument(
+    '--filename', help="File to be parsed")
+
+parser.add_argument(
+    '--defines', help='Set additional defines for precompiler', default=(), nargs='*')
+parser.add_argument(
+    '--include', help='Additional Include Dirs, separated', default=(), nargs='*')
+
+parser.add_argument(
+    '--status', help='Location of output file for general status (used during cmake)', default=None
+)
+parser.add_argument(
+    '--flag_automatic', default='0'
+)
+parser.add_argument(
+    '--flag_pygccxml', default='0'
+)
+
+args = parser.parse_args()
+
+prefix = args.prefix
+output_dir = args.output_dir
+defines = tuple(','.join(args.defines).split(','))
+includes = ','.join(args.include)
+name = args.module
+
+namespace = ['gr', name]
+prefix_include_root = name
+
+
+with warnings.catch_warnings():
+    warnings.filterwarnings("ignore", category=DeprecationWarning)
+
+    bg = BindingGenerator(prefix, namespace,
+                          prefix_include_root, output_dir, define_symbols=defines, addl_includes=includes,
+                          catch_exceptions=False, write_json_output=False, status_output=args.status,
+                          flag_automatic=True if args.flag_automatic.lower() in [
+                              '1', 'true'] else False,
+                          flag_pygccxml=True if args.flag_pygccxml.lower() in ['1', 'true'] else False)
+    bg.gen_file_binding(args.filename)
diff --git a/python/cdc/bindings/docstrings/README.md b/python/cdc/bindings/docstrings/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..a506c22aa86f59799728f14042cebd14b072faec
--- /dev/null
+++ b/python/cdc/bindings/docstrings/README.md
@@ -0,0 +1 @@
+This directory stores templates for docstrings that are scraped from the include header files for each block
diff --git a/python/cdc/bindings/header_utils.py b/python/cdc/bindings/header_utils.py
new file mode 100644
index 0000000000000000000000000000000000000000..7c26fe022b3d610519c585a5b4b0f61469d6724e
--- /dev/null
+++ b/python/cdc/bindings/header_utils.py
@@ -0,0 +1,80 @@
+# Utilities for reading values in header files
+
+from argparse import ArgumentParser
+import re
+
+
+class PybindHeaderParser:
+    def __init__(self, pathname):
+        with open(pathname, 'r') as f:
+            self.file_txt = f.read()
+
+    def get_flag_automatic(self):
+        # p = re.compile(r'BINDTOOL_GEN_AUTOMATIC\(([^\s])\)')
+        # m = p.search(self.file_txt)
+        m = re.search(r'BINDTOOL_GEN_AUTOMATIC\(([^\s])\)', self.file_txt)
+        if (m and m.group(1) == '1'):
+            return True
+        else:
+            return False
+
+    def get_flag_pygccxml(self):
+        # p = re.compile(r'BINDTOOL_USE_PYGCCXML\(([^\s])\)')
+        # m = p.search(self.file_txt)
+        m = re.search(r'BINDTOOL_USE_PYGCCXML\(([^\s])\)', self.file_txt)
+        if (m and m.group(1) == '1'):
+            return True
+        else:
+            return False
+
+    def get_header_filename(self):
+        # p = re.compile(r'BINDTOOL_HEADER_FILE\(([^\s]*)\)')
+        # m = p.search(self.file_txt)
+        m = re.search(r'BINDTOOL_HEADER_FILE\(([^\s]*)\)', self.file_txt)
+        if (m):
+            return m.group(1)
+        else:
+            return None
+
+    def get_header_file_hash(self):
+        # p = re.compile(r'BINDTOOL_HEADER_FILE_HASH\(([^\s]*)\)')
+        # m = p.search(self.file_txt)
+        m = re.search(r'BINDTOOL_HEADER_FILE_HASH\(([^\s]*)\)', self.file_txt)
+        if (m):
+            return m.group(1)
+        else:
+            return None
+
+    def get_flags(self):
+        return f'{self.get_flag_automatic()};{self.get_flag_pygccxml()};{self.get_header_filename()};{self.get_header_file_hash()};'
+
+
+def argParse():
+    """Parses commandline args."""
+    desc = 'Reads the parameters from the comment block in the pybind files'
+    parser = ArgumentParser(description=desc)
+
+    parser.add_argument("function", help="Operation to perform on comment block of pybind file", choices=[
+                        "flag_auto", "flag_pygccxml", "header_filename", "header_file_hash", "all"])
+    parser.add_argument(
+        "pathname", help="Pathname of pybind c++ file to read, e.g. blockname_python.cc")
+
+    return parser.parse_args()
+
+
+if __name__ == "__main__":
+    # Parse command line options and set up doxyxml.
+    args = argParse()
+
+    pbhp = PybindHeaderParser(args.pathname)
+
+    if args.function == "flag_auto":
+        print(pbhp.get_flag_automatic())
+    elif args.function == "flag_pygccxml":
+        print(pbhp.get_flag_pygccxml())
+    elif args.function == "header_filename":
+        print(pbhp.get_header_filename())
+    elif args.function == "header_file_hash":
+        print(pbhp.get_header_file_hash())
+    elif args.function == "all":
+        print(pbhp.get_flags())
diff --git a/python/cdc/bindings/python_bindings.cc b/python/cdc/bindings/python_bindings.cc
new file mode 100644
index 0000000000000000000000000000000000000000..3e8d87ca128146499ffa16fa9eedd83766ee7579
--- /dev/null
+++ b/python/cdc/bindings/python_bindings.cc
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+#include <pybind11/pybind11.h>
+
+#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
+#include <numpy/arrayobject.h>
+
+namespace py = pybind11;
+
+// Headers for binding functions
+/**************************************/
+// The following comment block is used for
+// gr_modtool to insert function prototypes
+// Please do not delete
+/**************************************/
+// BINDING_FUNCTION_PROTOTYPES(
+// ) END BINDING_FUNCTION_PROTOTYPES
+
+
+// We need this hack because import_array() returns NULL
+// for newer Python versions.
+// This function is also necessary because it ensures access to the C API
+// and removes a warning.
+void* init_numpy()
+{
+    import_array();
+    return NULL;
+}
+
+PYBIND11_MODULE(cdc_python, m)
+{
+    // Initialize the numpy C API
+    // (otherwise we will see segmentation faults)
+    init_numpy();
+
+    // Allow access to base block methods
+    py::module::import("gnuradio.gr");
+
+    /**************************************/
+    // The following comment block is used for
+    // gr_modtool to insert binding function calls
+    // Please do not delete
+    /**************************************/
+    // BINDING_FUNCTION_CALLS(
+    // ) END BINDING_FUNCTION_CALLS
+}