Re: xml:* attributes

On 8/17/2012 2:14 AM, James Clark wrote:
> After giving this a lot of thought, my preference is for A (no colons
> in attribute names anywhere).
>
> The following considerations have influenced me.
>
> a) I want to minimize the things in MicroXML that make sense only if
> you know the historical context of MicroXML. If somebody who knows
> nothing about XML reads the MicroXML spec, I want their reaction to
> be: this is a pretty reasonable way to do document markup.  Wherever
> possible I want to eliminate things that would appear strange to
> somebody with no XML background. To put it another way, I want
> MicroXML not just to be simpler than XML but less ugly (more beautiful
> would be going too far).  In my view allowing an "xml:" prefix on
> attributes increases the ugliness of the language.
>
> b) Adding "xml:" attributes reduces the self-containedness of
> MicroXML.  Even though it's only a SHOULD, adding "xml:" attributes
> means users have to consult a broad ranges of existing XML specs to
> know how they are supposed to use an aspect of the MicroXML language.
>
> c) Adding "xml:" attributes adds some complexity to the specification:
> it's not just a matter of the BNF; there have to be some words too.
> It's much less complexity than was in John's editor's draft, but it's
> nonetheless a consideration.
>
> d)  It is likely encourage a MicroXML culture where people use xml:*
> attributes in their documents and schemas.  I would prefer to
> encourage a simpler culture where people use unprefixed attribute
> names, as in HTML5.  The presence of colons in some names (even if
> only after "xml") is likely to create a negative reaction in some
> potential users.
>
> e) I am unconvinced of the utility of the xml:* attributes.  I think
> the semantics of some of them are common and important, but I do not
> think that much value comes from having particular attribute names
> that are bound to these semantics regardless of the document type.
>
> f) If applications really need the document-type-independent binding
> provided by the use of the xml: prefix, they are likely to need it not
> just for xml:* attributes but for other attributes and elements as
> well, which means they will need XML Namespaces. This makes them
> unsuitable for MicroXML, since full XML Namespaces are a non-starter
> for MicroXML.
>
> None of these considerations is decisive on its own, but together they
> make my preference for option A quite strong.
>
> James
+1

Thank you for this clear statement, James.

 From the viewpoint of somebody entirely new to MicroXML and XML, I 
imagine the existence of special xml: attributes would appear to be an 
unusual historical anomaly. For a specification that is concerned with 
designing an extensible semantics-free syntax, the inclusion of a small 
number of reserved names with semantics attached just seems weird. Why 
those semantics, in particular? I mean xml:lang is useful, why not 
xml:direction (for right-to-left scripts)?  Perhaps id, lang, space and 
the one I forget right now are the *most* useful application-level 
semantic elements we could standardize (although I doubt it), but in any 
case they are certainly not the only useful cross-vocabulary ideas 
(think links, and include).

XML and MicroXML are supposed to empower their users to create their own 
vocabularies. A mechanism for reserving names is useful for that, and is 
what namespaces provide.  It's a little sad not to have such a thing, 
but there are all kinds of good reasons to leave it behind. Having 
decided to abandon namespaces, we need to abide by that decision.  I 
find something a little bit condescending in the idea that it's OK for 
us spec writers to define reserved names and semantics (at least 
suggested semantics), but not to provide a mechanism for vocabulary 
writers to do the same.

-Mike

Received on Friday, 17 August 2012 15:27:49 UTC