From my understanding, `group` is used to create named sequences (choice, sequence, all) that can later be referenced.

However, why is this even necessary when `complexType` can be used to accomplish the same thing and is, in addition, much more powerful? Isn't this very un-DRY? Not to mention that the `group` tag essentially acts as both a definition of a type, and at the same time, can be a reference to that type, depending on whether you use `ref` or `name` attribute. Isn't this terribly confusing and unnecessary? Or am I missing something important?