I think
<attDef ident="sonOfODD">
<datatype minOccurs="1" maxOccurs="2">
</datatype>
<valList type="closed">
<valItem ident="one"/>
<valItem ident="two"/>
<valItem ident="three"/>
<valItem ident="four"/>
</valList>
</attDef>
<attDef ident="pureODD">
<datatype minOccurs="1" maxOccurs="2">
<dataRef key="myValList"/>
</datatype>
</attDef>
</attList>
<dataSpec ident="myValList">
<valList type="closed">
<valItem ident="a"/>
<valItem ident="b"/>
<valItem ident="c"/>
<valItem ident="d"/>
</valList>
</dataSpec>
Although I'm not sure why a <valList> can't go directly in a
<datatype> now that we let TEI namespaced things in there.
Can someone please remind me how to declare an attribute such that
its content can be one or more of a set of values drawn from a
fixed list? In other words, a closed valList, but allowing more
than one item from the list.
I'm sure I must have done this before, but I can't remember it.