Message text written by John Cowan
>
And contrariwise: if you cannot specify hardwired constraints, you
may break rigid downstream systems that *know* that there are 28, 30,
or 31 days in a Gregorian month:
element month {
repeat 28 { day } | repeat 30 31 { day }
}
<<<<
John,
I'm not saying exclude #'s - just the default should encourage people
to build software that works regardless. Notice the +, * and limit=n
mechanism allows you cover off all value combos that min=, max=
does - BUT - forces them to think open - so I'd design something :
year [ month(month_number, month_days) ]
as a memory structure I can just assert facts into, rather than hardwiring
limits into a static array (did I mention arrays are another of my pet
peeves?).
BTW the month is a good example since Hegira calendars
have 29 or 30 day months depending on the phase of the moon.... ; -)
Cheers, DW.