Namespaces

I have long wondered what is the correct way to extract a namespace and
local name from arbitrary resources. This is what I am doing, currently:

if protocol is urn:
  split at last ':'
else
  if there is a '#':
    split at '#'
  else if there is a '/' in the path
    split at last '/'

e.g.
http://test.org/schema#Foo -> {http://test.org/schema#}Foo
http://test.org/schema/Foo -> {http://test.org/schema/}Foo
urn:isbn:12345 -> {urn:isbn:}12345

I suspect this approach is broken (for example, there is no requirement
that the last part of a path be a valid QName etc.). So how are other
people handling this? Any relevant W3C documents?

Received on Friday, 26 March 2004 10:52:33 UTC