Attributes and namespaces

G. Ken Holman gkholman at
Mon Sep 27 22:27:59 BST 1999

At 99/09/27 15:55 -0400, Shawn Silverman wrote:
>I'm confused about how namespaces should be applied to attributes.

According to section 5.2 
"Note that default namespaces do not apply directly to attributes" and 5.3 
"the default namespace does not apply to attribute names".  This is quite 

>are two questions:
><?xml version="1.0"?>
>   <!-- all elements here are explicitly in the HTML namespace -->
>   <html:html xmlns:html=''>
>     <html:head><html:title>Frobnostication</html:title></html:head>
>     <html:body><html:p>Moved to
>       <html:a href=''>here.</html:a></html:p></html:body>
>   </html:html>
>To which namespace does the "href" attribute in the "html:a" tag
>belong?  To the same one as its parent?  "html:"?

It doesn't belong to a namespace.  According to XML Rec 1.0  section 3.3 "Attributes are 
used to associate name-value pairs with elements.".

Given that and what I cited up top, I would conclude that href "belongs" to 
the html:a element and doesn't "belong" to any namespace at all.

><?xml version="1.0"?>
>   <doc xmlns="mydefault">
>     <mytag myatt="blah"/>
>   </doc>
>To which namespace does the "myatt" attribute belong?

Same answer ... it doesn't belong to a namespace.

>The spec says
>that the default namespace doesn't apply,

Right ... in more than one place.

>however from question 1, we
>can infer that attributes take on the namespace of their parents.

My answer to question 1 was that doesn't belong to a namespace.

>assuming, though, that "myatt" belongs to no namespace.  What shall I
>assume here?

That the attribute "belongs" to the element, not to a namespace, and the 
element "belongs" to the default namespace.  I gather there is nothing more 
to infer about the attribute.

I was asked on the weekend about programming interfaces to attributes, the 
correspondent citing a specific interface.  There was no documentation 
regarding the value returned for the namespace property for an 
attribute.  When the namespace is therefore returned for an attribute, I 
would assume in the interface that a null prefix indicates "no namespace" 
instead of "default namespace", per the namespaces spec.  I would assume 
the similar interface for an element would return null indicating the 
default namespace of the element type.

I can't think of a better word than "belongs", so I've quoted it above 
because I think it isn't quite right ... who can recommend a better word to 
use in future discussions of this topic?

I hope this helps.  It is my understand and is subject to being corrected 
by those who know better than I do.

.............. Ken

G. Ken Holman                    mailto:gkholman at
Crane Softwrights Ltd.   
Box 266, Kars, Ontario CANADA K0A-2E0   +1(613)489-0999   (Fax:-0995)
Website:  XSL/XML/DSSSL/SGML services, training, libraries, products.
Practical Transformation Using XSLT and XPath      ISBN 1-894049-01-2
Next instructor-led training:  1999-11-08, 1999-11-09, 1999-12-05/06,
                              1999-12-07, 2000-02-27/28, 2000-05-11/12

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as: and on CD-ROM/ISBN 981-02-3594-1
To (un)subscribe, mailto:majordomo at the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at

More information about the Xml-dev mailing list