When an attribute has a specific default value in the ODD source, and the user attempts to change the value list for it using web roma, the form does not display the existing default value. Consequently, the user has no way of knowing that it exists, and may easily supply a list of attribute values which do not include it, thus generating an invalid DTD or XSD schema. Tested this with <list> which retains the default "simple" even though it does not appear on the screen.
does this equally apply when you construct an ODD by hand? that is, if you
provide a list of allowed values, should the defaultVal always be discarded by the ODD processor? I can't fix Roma this side of hell freezing over, but if odd2dtd is wrong, that should be fixed.
A hand-written ODD in which no new <defaultVal> is specified to replace an existing one should reasonably expect the existing default to continue to apply, if the parent <attDef> is being processed in mode CHANGE. The bug I am reporting here is that web roma does not display an existing defaultVal so the user has no way of telling they are about to shoot themselves in the foot. In the long term of course the correct solution is to deprecate and remove <defaultVal> passim as previously noted.