Attributes and namespaces

G. Ken Holman gkholman at CraneSoftwrights.com
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 http://www.w3.org/TR/1999/REC-xml-names-19990114 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 
explicit.

>Here
>are two questions:
>
>1)
>
><?xml version="1.0"?>
>   <!-- all elements here are explicitly in the HTML namespace -->
>   <html:html xmlns:html='http://www.w3.org/TR/REC-html40'>
>     <html:head><html:title>Frobnostication</html:title></html:head>
>     <html:body><html:p>Moved to
>       <html:a href='http://frob.com'>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 
http://www.w3.org/TR/1998/REC-xml-19980210  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.

>2)
>
><?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.

>I'm
>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 CraneSoftwrights.com
Crane Softwrights Ltd.             http://www.CraneSoftwrights.com/x/
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 ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)





More information about the Xml-dev mailing list