Ever since I started talking about problems with doing versioning of vocabularies with wildcards and others, and offering a specific technique for doing versioning with wildcards, I've had questions about what's the real problem. I've tried to come up with the definitive problem statement for what's wrong with schemas the pattern of:
<element name="foo" .../>
<any namespace="##other" ../>
The problem is that the schema author has only 3 bad options when the do any extension:
- be unable to constrain where the extensions can't occur if they don't update the schema,
- lose any extensibility beyond what they have defined if they add an optional element to the schema, or
- lose backwards compatibility if they add a mandatory element to the schema.
The extended version of this discussion is in examining elements and wildcards as siblings.
This is also an experiment to see how blogging and iteration work together.
I've posted some of my thoughts on this matter in my blog.