MusicXML 3.1 gives many elements an optional id attribute. mx::api exposes the id of elements that have a matching mx::api type (#399). <notations>, <articulations>, <ornaments>, <technical> and <direction-type> were left out.
Today the value is dropped. Reading a file loses it, and there is no way to author one.
None of these five elements has its own type in mx::api. They hold other elements, and mx::impl builds each one on write out of several mx::api objects:
NotationsWriter writes one <notations> for a note's marks, curves and tuplets.
ArticulationsFunctions, OrnamentsFunctions and TechnicalFunctions write one element for a run of MarkData.
DirectionChoice (src/include/mx/api/DirectionChoice.h) models the child of a <direction-type>, not the <direction-type> itself. One <direction-type> can hold more than one child.
Because several mx::api objects share one written element, no mx::api object owns that element's id.
MusicXML 3.1 gives many elements an optional
idattribute.mx::apiexposes theidof elements that have a matchingmx::apitype (#399).<notations>,<articulations>,<ornaments>,<technical>and<direction-type>were left out.Today the value is dropped. Reading a file loses it, and there is no way to author one.
None of these five elements has its own type in
mx::api. They hold other elements, andmx::implbuilds each one on write out of severalmx::apiobjects:NotationsWriterwrites one<notations>for a note's marks, curves and tuplets.ArticulationsFunctions,OrnamentsFunctionsandTechnicalFunctionswrite one element for a run ofMarkData.DirectionChoice(src/include/mx/api/DirectionChoice.h) models the child of a<direction-type>, not the<direction-type>itself. One<direction-type>can hold more than one child.Because several
mx::apiobjects share one written element, nomx::apiobject owns that element'sid.