The DOM Working Group is considering backing off from the currently
defined behavior for default attributes. Currently the spec states:
[[
To re-specify the attribute as the default value from the DTD, the user
must delete the attribute. The implementation will then make a new
attribute available with specified set to false and the default value
(if one exists).
]]

The DOM Working Group plans to remove all the magic related to
reappearance of default attributes. 
Instead the default attributes will be updated according to the
specified grammar at the time normalizeDocument() method is called.

This change would introduce some backward incompatibility with DOM Level
2. Please, let us know (or speak up on www-dom mailing list) if you have
any concerns.

I am also forwarding the message that was posted on www-dom public
mailing list regarding this issue.

Thank you,
-- 
Elena Litani / IBM Toronto



-------- Original Message --------
Subject: Default attributes
Resent-Date: Wed, 19 Dec 2001 18:17:13 -0500 (EST)
Resent-From: [EMAIL PROTECTED]
Date: Wed, 19 Dec 2001 15:16:18 -0800
From: Arnaud Le Hors <[EMAIL PROTECTED]>
Organization: IBM
To: [EMAIL PROTECTED]

Hi all,

DOM Level 1 was designed to work with XML 1.0 only. XML Namespaces
didn't exist, and DTDs were the only type of grammar that was used with
XML. Because DTDs provide a simple and straightforward way of
associating default attributes with elements, the DOM Level 1 was made
so that default attributes were handled automagically by the
implementation. This included adding them on element creation as well as
adding them back on removal of specified attributes for which a default
value exists.

DOM Level 2 came out with additional support to cope with XML
Namespaces. However, because DTDs are not "namespace aware", several
issues were later found with the way namespaces interact with DTD
information in general, and default attributes in particular. Namely,
because the DOM doesn't perform any namespace binding it is unclear how
default attributes should be updated in cases where the qualified name
of an element or an attribute is changed, through the change of its
prefix.

Now, with the introduction of XML Schemas, the task has become even more
challenging. One might like the DOM implementation to have a similar
behavior with regard to default attributes, but with XML Schemas the
name and namespace URI of an element are not even enough to specify its
type. The type of an element may vary according to its position in the
tree!

The three put together creates a level of complexity that makes it
basically impossible to define something that would be understandable by
both users and implementors, and it is believed that it will in any case
be error prone, both at the level of the spec and the implementations. 

As an alternative, the Working Group is considering backing off from the
currently defined behavior and specify in DOM Level 3 that attributes
are not updated dynamically as the tree is being mutated but instead are
only updated according to the governing grammar at specific times.
Specifically at the time the normalizeDocument() method is called.

We do realize, however, that this change would introduce some backward
incompatibility with the previous versions of the DOM. We would
therefore appreciate feedback from others on whether this is seen as too
disruptive or whether the gain in simplicity and better interoperability
is worth this breakage.

Thanks in advance for your input.
-- 
Arnaud  Le Hors - IBM, XML Standards Strategy Group / W3C AC Rep.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to