RE: Thoughts on namespaces--No ambiguity

	I have not been following the discussion on XML-LINK carefully,
but there is one aspect of namespaces that I believe will affect links.
That is, the names of elements must not be ambiguous.

	What I have in mind is that some namespace proposals have
suggested that namespace qualifiers would be used or required only when
two simultaneously active namespaces had the same name.  That is, only
if there is an actual conflict would you use a qualifier.  That is too
loose.

	If somebody built a path to an element based on a non-qualified
name, but the name were later qualified in the target document, then the
path could be broken. Similarly if something were originally qualified
then became non-qualified. Etc.

	There needs to be a simple rule for when qualification is
required, it must be as compatible as possible with existing documents,
and it must be independent of the presence or absence of other
namespaces.

	I suggest the following rule: Every element comes from some
namespace. That becomes the default namespace for all sub-elements,
attributes, etc. within. This namespace, and only this namespace, can be
used without qualification.  All others require qualification.

	To illustrate:

> <CAR>
> 	<SEATS>6</SEATS>
> 	<ENGINE>
> 		<CYLINDERS>6</CYLINDERS><DISPLACEMENT>4</DISPLACEMENT>
> 	</ENGINE>
> 	<a:COLOR>LIGHT CORAL<a:COLOR>
> 	<b:DSIG><SUM>123456</SUM><WHO>Andrew</WHO></b:DSIG>
> 	<BUYER>
> 		<ssa:SSN>123456789</ssa:SSN>
> 		<tei:XREF>http://ssa.gov</tei:XREF>
> 	</BUYER>
> </CAR>
> 
> This has five namespaces running within CAR: The one from which CAR
> comes, and also "a", "b", "ssa" and "tei". Presumably SEATS, ENGINE
> and BUYER come from the same space as CAR.  CYLINDERS and DISPLACEMENT
> come from the same space as ENGINE.  SUM and WHO come from the same
> space as b:DSIG. 
> 
	(I have omitted all reference to how the namespaces are
imported, that being a different issue.)

	--Andrew Layman
	  AndrewL@microsoft.com

Received on Thursday, 22 May 1997 17:25:38 UTC