- From: Eve L. Maler <Eve.Maler@east.sun.com>
- Date: Mon, 10 Apr 2000 11:06:49 -0400
- To: "IETF/W3C XML-DSig WG" <w3c-ietf-xmldsig@w3.org>
At 02:54 PM 4/10/00 +0900, Martin J. Duerst wrote:
>It's not the algorithm for finding URIs for plain
>Element or Attribute qnames that is difficult. In that
>case, what's a qname is very well defined and very
>easily identified, and how to find the corresponding URI
>is equally well defined.
>
>But that's not what I'm taking about. It's the use of
>qnames in attribute values, in XPath, and so on, which
>is frightening me. In these cases, what is a qname is
>not at all globally defined, you need additional knowledge.
>Also, how to find the relevant URI may depend on a lot of
>things inside and outside the attribute. And almost every
>spec that tries to use qnames invents another way to find
>the URI. All of this is done with a side glance to the
>Namespace spec, but is not at all based on the Namespace
>spec. So my claim is that Qnames don't easily scale to wider
>use than Element/Attribute names.
I recently made a posting on the Linking IG list that analyzed exactly this
concern, related to XLink's use of QNames in attribute values on the role
and behavior attributes. I've reproduced most of it below. (The original
post was at
http://lists.w3.org/Archives/Member/w3c-xml-linking-ig/2000Apr/0025.html.)
* * *
The reason that I'd like to avoid QNames in attribute values is that it
raises a number of questions whose answers our group has no charter to
decide.
It's pretty clear that the Namespace spec (non-normative Section A.2,
http://www.w3.org/TR/REC-xml-names/#ns-breakdown) suggests the following
"partitions" of a namespace (syntax made up by me):
{NS}GI (element name unique throughout the NS)
{NS}att (attribute name unique throughout the NS)
{NS}{GI}att (attribute name unique for a certain GI)
The use of QNames in attribute values in the XML Schema and XSLT specs is
confined (mostly? or all?) to references to these sorts of names. They
would still have canonicalization problems because their prefixes wouldn't
get normalized, but at least they're not inventing new partitions in these
cases.
Our use of QNames in the value of the role attribute conforms to something
like this partition, I think:
{NS}attval (attribute value -- or generalized and call it
a token? -- unique throughout the NS)
But I think our use of QNames in the value of the behavior attributes is
something like this (because all of XLink's attributes are global, and
because I'm not sure we intend to disallow "xlink:new" as the value some
other attribute that we might add later, such as
xlink:disallowTheseBehaviors :-):
{NS}{att}attval (attribute value unique for a certain global
attribute)
And that suggests yet another possibility (though this starts smelling more
and more like a regular set of enumerated values set up in a DTD or schema):
{NS}{GI}{att}attval (attribute value unique for a certain attribute
on a certain element)
I just don't want to go here in advance of its being sorted out in the
Namespaces spec, even if other specs have started in this direction. It's
quite possible that XLink and the other specs already clash on these
matters in some respect anyway, which is exactly the danger of using
something that hasn't been standardized.
Eve Maler +1 781 442 3190
Sun Microsystems XML Technology Center elm @ east.sun.com
Received on Monday, 10 April 2000 11:06:53 UTC