Thanks for the examples. I understand the point you are making much better
now. To reinforce your point, HTML input isn't very much like namespace
usage, but here is an example that is: The Eclipse IDE allows plugins to
communicate with each other in their respective "plugin.xml" files via
plugin-defined extension points. The offerer of the service in plugin
"com.example.plugin" declares it with an element of the form:
<extension-point id="myextension" ...>
And the user of the service hooks up to it using an element of the form:
<extension point="com.example.plugin.myextension"
{extension-defined-attributes}>
{extension-defined-elements}
</extension>
No namespace, no prefixes, no colons; same effect. One bumps into this kind
of usage all over the place (perhaps that's why RELAX NG caters to it so
well).
However, back to my original use case. A document designer wants to allow
foreign attributes and elements to be freely intermixed with those of the
document type, as, for example, foreign elements and attributes are allowed
in XML Schema and RELAX NG. These foreign items are ignored by "normal"
document processing, but may be used by other processors, like Schematron
annotations to the aforemention schema languages are used to provide
additional validation. Some convention needs to be established that will
allow foreign items to be distinguished from any current or future
"domestic" items, and to prevent name collisions among foreign annotations
from different domains. Both XML Schema and RELAX NG currently use
namespaces as this convention. Can you suggest a better one?
Bob