Possible Errata for SMIL2.0, SMIL Animation, and SVG 1.1 - attributeName and "default namespace"

 

There appears to be a problem with the use of the term “default namespace” in SMIL 2.0 Animation Modules [1], Section 3.4.1. In particular, in the third paragraph under the heading ”The target attribute”, there appears the following language:

 

“if no CSS match is made (or CSS does not apply) the default namespace for the target element will be matched”

 

Also, in the fourth paragraph there appears:

 

“If a target attribute is defined in an XML Namespace other than the default namespace for the target element”

 

The same problematic use of “default namespace” appears in SMIL Animation [2], Section 3.1.

 

Slightly different, but nevertheless problematic language appears in SVG 1.1 [3], Section 3.1, under the definition of the “XML” value for the attributeType attribute:

 

“This specifies that the value of "attributeName" is the name of an XML attribute defined in the default XML namespace for the target element. Note that if the value for attributeName has an XMLNS prefix, the implementation must use the associated namespace as defined in the scope of the animation element.”

 

The problem with the above language is that it implies that unqualified attributes are defined in the default namespace for a target element; however, according to XMLNAMES [4], Section 5.{2,3}, attributes are not defined in the default namespace; rather, they are defined either in the global attribute partition (if qualified) or in a per-element-type partition (if unqualified).  The relevant language from XMLNAMES is:

 

Section 5.2, 1st paragraph, last sentence:

 

“Note that default namespaces do not apply directly to attributes.”

 

Section 5.3, paragraph before last example:

 

“However, each of the following is legal, the second because the default namespace does not apply to attribute names”

 

Annex A.2, definition of per-element-type partitions:

 

“Each type in the All Element Types Partition has an associated namespace in which appear the names of the unqualified attributes that are provided for that element. This is a traditional namespace because the appearance of duplicate attribute names on an element is forbidden by XML 1.0. The combination of the attribute name with the element's type and namespace name uniquely identifies each unqualified attribute.”

 

Annex A.2, last paragraph:

 

“In XML documents conforming to this specification, the names of all qualified (prefixed) attributes are assigned to the global attribute partition, and the names of all unqualified attributes are assigned to the appropriate per-element-type partition.”

 

I would imagine that the intended meaning of the SMIL and SVG text quoted above is something like:

 

If the qname value of the attributeName attribute does not contain a prefix (i.e., is a local name), then the named attribute is considered to be a member of the per-element-type partition namespace of the targetElement, and, as such, is associated with the XML namespace of the target element [which is not necessarily associated with the namespace value of the currently in-scope xmlns attribute, i.e., the default [XML] namespace].

 

The problem with the current text, is that it appears to read just the opposite of the above; namely, that an unqualified attribute name in attributeName is associated with the namespace value of the currently in-scope xmlns attribute. Or, at least, this is how I read the current text.

 

Regards,

Glenn Adams

 

[1] http://www.w3.org/TR/smil20/animation.html


[2] http://www.w3.org/TR/smil-animation/


[3] http://www.w3.org/TR/SVG11/animate.html#TargetAttributes


[4] http://www.w3.org/TR/REC-xml-names/


 

Received on Sunday, 1 December 2002 14:53:25 UTC