[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
RE: [xml-dev] The purpose of a namespace URI is ...
- From: "G. Ken Holman" <gkholman@CraneSoftwrights.com>
- To: "xml-dev@lists.xml.org" <xml-dev@lists.xml.org>
- Date: Fri, 30 Nov 2012 10:52:33 -0500
At 2012-11-30 15:06 +0000, Costello, Roger L. wrote:
>Hello Ken,
>
>At 2012-11-30 12:35 +0000, Costello, Roger L. wrote:
> >> A namespace URI conventionally identifies
> >> the component, subsystem, or authority
> >> responsible for defining the meaning of
> >> an XML vocabulary.
> >>
> >>Do you agree?
>
>Ken responded:
> >A namespace URI only distinguishes one XML vocabulary
> > from another in a single XML document.
> > ... snip ...
>
> In the XPath and XQuery Functions and Operators document [1] it
> defines the error() function: the first argument is "code" which is
> an xs:QName value. An xs:QName, of course has two parts: a
> namespace part and a local part. The document says that the purpose
> of the namespace part is to indicate who -- a component, a
> subsystem, or an authority -- is responsible for the meaning of the
> local part (the "local part" is, of course, the markup -- the XML vocabulary):
>
> The $code is an error code that distinguishes this
> error from others. It is an xs:QName; the namespace
> URI conventionally identifies the component, subsystem,
> or authority responsible for defining the meaning of the
> error code, while the local part identifies the specific
> error condition.
>
>This suggests to me that the W3C (or at least the XPath and XQuery
>portion of the W3C) does not see namespaces as "only distinguishes
>one XML vocabulary from another." Indeed not. It suggests to me that
>they regard a namespace as identifying an entity that is responsible
>for providing the meaning of the XML vocabulary.
>
>Has the XPath and XQuery working group assigned to "namespaces" a
>radical and incorrect purpose?
Not at all.
You've caught me out on my use of the word "only", but I thought
based on your original post that you were framing the discussion with
respect to XML vocabularies and not other assets.
Given that the namespace URI mechanism can create globally-unique
identifiers (when used properly), why not use such a mechanism
anywhere where you need that property?
Since the beginning of both XSLT and XSL-FO, namespace URI strings
have been used to identify extensions to the standard: for extension
functions, extension elements and extension attributes. The
properties of distinction and global identification help in those cases.
That they also help in identifying error codes is not at all radical,
and it makes sense to exploit a known mechanism for error codes since
we have the QName datatype at hand. I can see error codes being
categorized by component, subsystem or authority much more easily
than I can see XML vocabularies similarly categorized. But it all
comes down to what (who) is being identified.
As for "identifying an entity that is responsible", yes I suppose
that there is some "ownership" reflected in the URI string. But if I use:
xmlns:x="mailto:anonymous@gmail.com"
... then I guess I kind of know who is responsible, but it doesn't
get me very far.
Actually, this valid namespace URI tells me nothing at all about
responsibility:
xmlns:y="urn:X-hidden"
You asked me if I agreed with another one of your blanket comments or
definitions, and I guess I don't because, again, it is far too
general a statement to make about the technology and it fails to
address edge cases. A reader of the archive may be left with an
incorrect impression suggested by such a blanket wording.
I am trying to be helpful here.
. . . . . . . . Ken
--
Contact us for world-wide XML consulting and instructor-led training
Free 5-hour lecture: http://www.CraneSoftwrights.com/links/udemy.htm
Crane Softwrights Ltd. http://www.CraneSoftwrights.com/x/
G. Ken Holman mailto:gkholman@CraneSoftwrights.com
Google+ profile: https://plus.google.com/116832879756988317389/about
Legal business disclaimers: http://www.CraneSoftwrights.com/legal
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]