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