I haven't been following the progress of BeerXML 2.0 for a while, but just regained an interest as I'm currently working on related things...so forgive me if this seems like a belated comment...
Looking through the BeerXML v2.01 document, I notice that units seem to be dealt with a bit inconsistently.... For example, looking at how styles are stored:
<final_gravity>
<minimum density="sg">1.013</minimum>
<maximum density="sg">1.017</maximum>
</final_gravity>
<international_bitterness_units>
<minimum>35.0</minimum>
<maximum>45.0</maximum>
</international_bitterness_units>
<color>
<minimum scale="SRM">3.0</minimum>
<maximum scale="SRM">5.0</maximum>
</color>
It seems that it would make more sense to just designate a "units" attribute for each tag, instead of using "density" and "scale". And then for bitterness, the units value is implicit in the element and not an attribute. Wouldn't it be more consistent to use:
<final_gravity>
<minimum unit="sg">1.013</minimum>
<maximum unit="sg">1.017</maximum>
</final_gravity>
<bitterness>
<minimum unit="ibu">35.0</minimum>
<maximum unit="ibu">45.0</maximum>
</bitterness>
<color>
<minimum unit="srm">3.0</minimum>
<maximum unit="srm">5.0</maximum>
</color>
This way, units are dealt with in a very consistent way, bitterness can now be stored as ibu, or ebu, etc (yes, I know ibu == ebu, but flexibility is always good) and srm is not needlessly capitalized.
Is there an advantage to not using the same attribute name (i.e. "unit") across several elements? I'm not an XML whiz, so...