Hi,

> Von: "Theodore H. Smith" <[EMAIL PROTECTED]>
> Datum: Fri, 30 Dec 2005 15:10:08 +0000
> 
> Hi people,

[...]

> So, I got this problem with xmlCopyNode, it's putting a namespace  
> into the XML, when I don't actually want one there.
> 
> before I had this:
> 
> <metadata>
>      <schema>ADL SCORM</schema>
>      <schemaversion>CAM 1.3</schemaversion>
> </metadata>
> 
> then I end up with this:
> 
> <metadata xmlns="http://www.imsglobal.org/xsd/imscp_v1p1";>
>      <schema>ADL SCORM</schema>
>      <schemaversion>CAM 1.3</schemaversion>
> </metadata>
> 
> Is there some way to disable this behaviour?

I don't think there's a public function in Libxml2 which does
what you want.
What I currently use to avoid creation of namespace declarations
is the following:
- Walk the tree to be copied on your side.
- Build the resulting tree-copy on your side.
- Use xmlDocCopyNode() with an @extended argument of 0. Doing this
  will only copy the rudimental element node; i.e. no ns-decls, no
  children and no attributes.
- Copy the already existent ns-decls on your side.
- Copy attribute nodes on your side.
- Finally use xmlDOMWrapReconcileNamespaces() to ensure that
  node->ns entries point to in-scope ns-decls.

Actually a public version of xmlStaticCopyNode() would do the
job you want if you have a @parent argument at hand. It would
search the ns-decls of the destination tree as well, thus would
avoid creation of redundant ns-decls.
Does anyone see problems wrt adding a public wrapper for
xmlStaticCopyNode() which also takes a @parent argument?

However, in the long term I would like to add a function
similar to xmlDOMWrapAdoptNode(), which does a copy of the
tree and provides customizable handling of ns-references.

Regards,

Kasimier
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
[email protected]
http://mail.gnome.org/mailman/listinfo/xml

Reply via email to