On Mon, May 16, 2005 at 10:46:40AM -0400, Rob Richards wrote:
> Daniel Veillard wrote:
> 
> > instead of recreating all the namespace declaration used in the subtree
> >at the insertion point, then reuse the declaration already in scope at that
> >insertion point. Example if {"dbk", "http://docbook.org"} is in scope at 
> >the
> >insertion point due to an ancestor holding the declaration, then if this
> >is among the namespace bindings in use by the subtree, do not redeclare
> >it at the insertion point. Apparently a difference between PHP5 and 
> >javascript
> >implementation of import seems to be that javascript one would reuse the
> >namespace declaration if defined with a different prefix (hence changing 
> >the
> >prefixes in the pruned subtree), I don't know which smeantic is DOM's one 
> >:-)
> > 
> >
> Few comments on the decisions made in PHP 5 implementation:
> 
> There is no standard way to do this, at least none that I could find. 
> This issue had been asked on the php-xml list a few times over the past 
> year and a half so I can tell you why I decided to go the recreate 
> route. Javascript will only reuse namespaces in the top level node. Any 
> namespaces declared in children are not mapped to existing ones once 
> appended. Rather than lead to more user confusion (As namespace 
> questions were asked a lot early on), I decided to go for consistency 
> and have all namespaces recreated, instead of just ones in the children, 
> defined in appended node, preserving the original prefixes. Also why 
> involve more processing to attempt to remap namespaces when the copy 
> works perfectly fine and does not alter the meaning of the document? 
> Other than having to initially explain that the documents meant the same 
> thing (one reusing namespaces and one recreating the namespace 
> declaration), the user questions surrounding this have stopped, so I 
> assume it is a non-issue for them now.

  Okay thanks for the feedback

> adopting a node...
> 
> DOM Core 3 and complex to implement gave it a low implementation 
> priority. While looking at it, however, starting with some simple 
> documents, I ran into issues with IDs - as these needed to be taken into 
> account as well when moving subtrees as at a minimum, the original doc 
> needs to be cleaned up, which got me off the adopting stuff and on the 
> attribute ID tangent (still working on it as time has been short for me 
> lately).

  oh, right I forgot about the ID/REF as other kind of pointers within
the document. That would have to be handled too !

> With regard to Kasimier's comments, I agree on the safe method.
> 
> imo, an unsafe method should have its own function name or a big warning 
> added to comments for a single function stating that passing the extra 
> parameter(s) could blow up your code if not handled correctly.

  okay, thanks for the informations! I assume you will follow this thread
and check that the outcome could be used for your implementation within 
PHP, right ?

Daniel

-- 
Daniel Veillard      | Red Hat Desktop team http://redhat.com/
[EMAIL PROTECTED]  | libxml GNOME XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
[email protected]
http://mail.gnome.org/mailman/listinfo/xml

Reply via email to