MUSX Document Model
|
Welcome to the Musx Document Model.
Use the navigation buttons at the top of this page to browse through the framework documentation.
The Musx Document Model is a C++ class framework around the EnigmaXml format embedded in .musx
files generated by Finale music software. It requires the C++17 standard.
Features include:
The following macro definitions are available to modify behavior of the library.
MUSX_DISPLAY_NODE_NAMES
: Log each node name that is processed in the order found. (When verbose logging is specified.)MUSX_THROW_ON_UNKNOWN_XML
: Throws musx::factory::unknown_xml_error
if an unknown child node is encountered. Otherwise it logs the message, which by default sends it to std::cerr
. This macro does not affect unknown top-level nodes, which are always silently skipped.MUSX_THROW_ON_INTEGRITY_CHECK_FAIL
: Throws musx::dom::integrity_error
if a class fails its integrity check. Otherwise it it logs the message, which by default sends it to std::cerr
.The recommended way to define these macros is from your make file or build project. They are primarily intended for debugging.
The EnigmaXml that is extracted from a .musx
file follows the pattern that any missing node receives the default value. This is mainly interesting for booleans and enums. The xml nodes for booleans only show up if they are true
. The default values for enums do not show up either, which means it is frequently difficult to know what their string values might be. For this reason, default enum values are usually omitted from the XmlEnumMapping
tables.
The Musx Document Model project is not affiliated with or endorsed by Finale or its parent company.
(This reference web-site is generated directly from the source code by the Doxygen application.)