Re: [xml] redicting parts of trees
- From: Rob Richards <rrichards ctindustries net>
- To: veillard redhat com
- Cc: xml gnome org, Martijn Faassen <faassen infrae com>
- Subject: Re: [xml] redicting parts of trees
- Date: Mon, 16 May 2005 10:46:40 -0400
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.
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).
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.
Rob
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]