The Java implementation allows unions with just one branch. But C++ implementation doesn't. The spec is silent in this respect.
Is there a need for single-branch unions? There could be an argument that single-branch unions can be used for future extensions. But I don't think it is needed because our resolution spec allows matching standalone entities with unions as long as the entity's type is one of the branches in the union. Another argument could be that data written using single-branch union can be read by multi-branch union without using schema resolution. But we do not want to encourage such usage. If the schemas for reader and writer are different (in whatever way) we want people to use schema resolution. The only valid argument I could think of is that someone may already be using single-branch unions. Tightening the spec will break their code. Tightening spec will also means that all language implementations should fix the problem, if they haven't already. In any case we need to make the implementations consistent and make the specification explicit in this regard. Any thoughts? Thanks Thiru
