Re: Parsing of qualified 'about' attribute

Tim Bray:
> The spec *allows* but does not *require* <foo:bar id=""> and 
> <foo:bar foo:id=""> to be considered identical by namespace-sensitive
> applications.  This was a careful decision

Sigh.  I'm sure it was a careful decision, but it is still a problematic
one.  It is exactly this sort of wishy-washiness in specs that undermines
the interchange story, and which drives implementors mad.

My RDF processor applies the XML Namespace [1] rules strictly.  I offer the
following interpretation as a strawman for recommended best practice.

If an attribute appears in this form:

<foo:bar id="1"/>

"id" is treated as an attribute named in the "Per-Element-Type Partition"
and takes on the namespace of the element, whatever it may be.

If an attribute appears in this form:

<foo:bar foo:id="1"/>

"id" is treated as an attribute named in the "Global Attribute Partition"
which theoretically can appear in any element context (XML Schema, RDF
Schema, or other controlling specifications notwithstanding), and has the
namespace associated with "foo".  Thus one could also have:

<x:jjj foo:id="2"/>

Thereofore, this form:

<foo:bar resource=.../>

is treated by my RDF processor as the property "resource" in the namespace
identified by "foo" of the implied anonymous description which is the value
of foo:bar.  In other words, it is an abbreviation of:


This form:

<foo:bar rdf:resource=.../>

is treated by my RDF processor as the "global" rdf:resource attribute which
matches production [6.18] (via the last alternative of [6.12]).

My serializer issues the following attributes without qualification (always
clear from element-type context):


[EXCEPT for typed nodes which declare an "about" attribute, etc., in which
case the attribute is qualified for the RDF namespace.]

and these with qualification always:




Received on Monday, 1 May 2000 16:31:27 UTC