Let me try and explain why <define pattern="..."> does not work for me.
Consider <attribute name="..."/>. Here the "name" attribute of the
"attribute" element gives the name of the attribute. That's what I regard as
an appropriate semantic relationship between the name of an element and the
name of one of its attributes.
Now compare <define pattern="..."/>. Here the "pattern" attribute of the
"define" attribute gives the ***name*** being defined. A definition binds a
name to a pattern. Thus we can consider a definition to have two
components: a name and a pattern. What you are proposing is that the
"pattern" attribute be used to specify not the component that is a pattern
but rather the component that is a name.
James