Hi,
well this has been fun. Ive looked into this a bit now and think I
know whats going on. cloneNode is implemented by using importNode.
Unfortunately there is a difference in behaviour.
>From the level 2 spec for importNode:
"Specified attribute nodes of the source element are imported, and the
generated Attr nodes are attached to the generated Element. Default
attributes are not copied, though if the document being imported into
defines default attributes for this element name, those are assigned."
>From the Level 2 spec for cloneNode:
"Cloning an Element copies all attributes and their values, including
those generated by the XML processor to represent defaulted attributes"
The code for importNode seems to be correct.
for(XMLSize_t i=0;i<srcattr->getLength();++i)
{
DOMAttr *attr = (DOMAttr *) srcattr->item(i);
if (attr -> getSpecified()) { // not a default attribute
so this is a bug. Its not our fault though because this code was ported
from the java ;)
Gareth
On Mon, 23 Sep 2002, Erik Rydgren wrote:
> Well now it is time to set things streight.
> The default values in DOM are in fact working *blush*.
> Found it out during the test that Gareth did suggest. The extra code that I
> suggested is not needed.
> Somewhere deep down in the parser the default values are transferred into
> the standard attribute list.
> (There I got fooled by not reading all the hundred thousand lines of code
> but just a subset. Silly me.)
>
> BUT! After a document clone then the default values ARE in fact removed. So
> if there is something that needs fixing it is the document clone process.
>
> Sorry for taking up your time.
> / Erik Rydgren
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
--
Gareth Reakes, Head of Product Development
DecisionSoft Ltd. http://www.decisionsoft.com
Office: +44 (0) 1865 203192
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]