[XML-SIG] namespace/localpart tuples (was: Future plans)
Wed, 05 Jan 2000 16:13:46 -0700
> > > I've also been thinking that we may want
> > > qualified names to be represented as tuples, either
> > >
> > > (namespace name (URI), localpart (element type name), prefix)
> > >
> > > or
> > >
> > > (namespace name (URI), localpart (element type name))
> > I think it might be more natural to always make it a triple, and simply have
> > '' as the third item when there is no namespace.
> At processing time, the prefix that was used is irrelevant. It shouldn't
> be preserved.
The prefix has no semantic value: it is indeed syntactic sugar. However, it
is very important to maintain the "principle of least surprise" for users.
If a user runs his XSLT stylesheet through a SAX processor and finds that all
his "xsl:template" elements have been renamed to "prefix00001:template", he
might be very confused indeed.
Note that there is at least one case in which the prefix does matter: XSLT
uses the prefix to match declared namespaces in the stylesheet to namespaces
in the source document. Now many people have already railed against this
violation of the spirit of XML Namespaces 1.0, but there is no srguing that it
was the most elegant solution to a difficult problem that the XSLT WG faced in
dealing with namespaces.
So, in short, though prefixes are not technically part of the document, there
are good arguments for including them in the SAX binding.
> You could end up in a situation where a client thinks that prefix "should"
> be used when regenerating XML output... the problem is that it may
> conflict (say, if you combined a couple XML docs) or not be defined in the
> (new) output (if you dropped some portion that defined the namespace).
The best solution to this is education. If the interface documentation
clearly states that prefixes are not technically part of the document,
hopefully users will avoid mis-using them. This is not ideal, but there's not
much better to do given the practical issues involved.
> IMO, it is much better to regenerate a new set of prefixes for the set of
> namespace URIs that are present in an XML document.
Even as a user who knows better about the meaning of prefixes, I would be very
annoyed at a processor that did this. I often deal with documented with 4 or
more namespaces (this is not too unusual: very common in RDF) and I give my
prefixes mnemonic names to help sort things out. I don't want processors
renaming them to "p01a3", etc.
FourThought LLC, IT Consultants
Software engineering, project management, Intranets and Extranets