Marcus R brought up this blog recently:Here is a summary of the various POVs.
James C: Capability is occasionally useful, but not that useful. prefix/namespace disutiliy outweighs utility.
Using URIs was not necessary and uncritically adopted. But good for RDF.
Nesting declarations seemed reasonable at the time, but ....
Michael K: Should be built in, not layered. Using URIs is a misguided. URIs don't get dereferenced to get the schemaetc anyway. Unclarity about infoset status of prefixes.
I like the idea of dispensing with URIs in namespaces as well. The simplest idea I can come up with is using inverse domain names as fully qualified names and having children inherit the namespace of their parent if they aren't fully qualified.
So you might have:
<com.example.myvocabulary.top>
<middle />
</com.example.myvocabulary.top>
which would be equivalent to:
<com.example.myvocabulary.top>
<com.example.myvocabulary.middle />
</com.example.myvocabulary.top>
(For a new syntax you could even say that an end tag adopts the
namespace of its start tag if it is not fully qualified, for
example:
<com.example.myvocabulary.top>
<middle />
</top>
)
You could either rely on search engines to find out more details about the com.example.myvocabulary vocabulary, or have an algorithm such that you first query http://example.com/myvocabulary and if that doesn't yield anything, you look up http://myvocabulary.example.com/
This would also work with JSON.
Cheers,
Pete. -- --------------------------------------------------------------------- Pete Cordell Codalogic Ltd Read & write XML in C++, http://www.xml2cpp.com ---------------------------------------------------------------------