SHALL/SHOULD/MAY vs. R/R2 vs. Required/Mandatory [see: http://www.hl7.org/v3ballot/html/help/pfg/pfg.html#shall_should_usage]
SHALL: Corresponds to HMD "Required" if on XML element (i.e. the element is there, but can be NULL); Corresponds to HMD "Mandatory" if on XML attribute. Corresponds to IHE "R".
SHOULD: Corresponds to IHE "R2".
Where necessary to explicitly preclude NULL (e.g. where you want to preclude NULL on observation/value), can include something like "SHALL NOT include nullFlavor".