Hello, I think this is mostly a question for Lou, and any other who was
involved in getting PureODD together.
I've started converting the MEI ODD to PureODD, so I expect to find a few
issues, most of which will likely be caused by my ineptitude, so apologies
in advance.
Here's the first obstacle I found:
In MEI the datatypes of some attributes are defined in <datatype> itself.
There a few cases for this:
1. the datatype is very specific to the element and it doesn't need to be
re-used.
Example:
<attDef ident="tab.strings" usage="opt">
<desc>Provides a *written* pitch and octave for each open string or
course of
strings.</desc>
<datatype>
rng:list
rng:oneOrMore
[a-g][0-9](s|f|ss|x|ff|xs|sx|ts|tf|n|nf|ns|su|sd|fu|fd|nu|nd|1qf|3qf|1qs|3qs)?([a-g][0-9](s|f|ss|x|ff|xs|sx|ts|tf|n|nf|ns|su|sd|fu|fd|nu|nd|1qf|3qf|1qs|3qs)?)*
Solution: bite the bullet and move it to a dedicated <dataSpec>
2. The datatype combines a number of pre-defined datatypes
Example:
<datatype>
rng:list
rng:oneOrMore