token and normalizedString hacks are no longer needed
implement <choice> element