Re: namespaces for name attribute values?

Eric Hellman (eric@hellman.net)
Fri, 2 Oct 1998 14:07:53 -0400


Well, a versioned URL for Dublin Core would be nice, but I was thinking of
something different.

I'm suggesting that it may be useful to make a namespace declaration simply
to declare semantics of something that isn't in a DTD, namely the attribute
values.

I've been afraid to respond to the list given the "Ownership of Names"
orgy, but here's another example:

Suppose you want an attribute value to contain a MIME type. Right now, you
can either declare the attribute as CDATA or you can enumerate the possible
MIME types.

Suppose your goals are as follows:
1. You don't want a parser to check the value of the attribute.
2. You do want to instruct authors about appropriate values of the attribute.
3. You don't want to change the DTD when a new MIME type is invented.

If you enumerate the MIME types, you have to change the DTD for every new
MIME type that gets invented.

If you declare the attribute as CDATA, then an author has to read a comment
in your DTD to know where what attribute values are appropriate. This
eliminates 99% of your pool of potential authors.

If you declare a default xmlns (with an appropriate URL) for an element, an
XML authoring application could know where information about appropriate
attribute values might be found, and may avoid forcing authors to plow
through your DTD.

It's clear that this was not an intended use of namespaces, but as far as I
can see, it won't do any harm.

Eric

David Brownell wrote:
>Andrew Layman wrote:
>>
>> Perhaps you do not really have a problem. What I'm thinking is that if you
>> wrote something similar to the example you showed,
>>
>> <foo xmlns:DC="http://purl.org/metadata/dublin_core">
>> <DC:Creator>Eric Hellman</DC:Creator>
>> </foo>
>>
>> then the meaning of DC:Creator is not affected by any additions made to
>> Dublin Core. Your DTD remains valid, simply not as extensive as the
>> (expanded) Dublin Core.
>
>For Dublin Core, perhaps -- but not in general. Suppose
>the addition were to modify the content model for something
>like the "Creator" element referred to above? Validity isn't
>automatically preserved in such cases.
>
>Namespaces need versioning. URIs can easily include date
>codes like "02Nov1997"; W3C itself uses such a scheme, as
>you can see by looking at versions of the namespace spec.
>
>I'd expect the definers of such namespaces to identify
>their versioning policy, including publishing URLs which
>apply to each iteration. A "most current" URL can be of
>use in some cases (loose coupling), but not usually in
>systems that depend on precise semantics and hence need
>updates to support new features.
>
>
>So my response to Eric is to get a versioned URL for the
>Dublin Core, and to use that! ;-)
>
>- - Dave
Eric Hellman
Openly Informatics, Inc.
http://www.openly.com/ Tools for 21st Century Scholarly Publishing