PS: you can use typeswitch instead of 'if ($node instance of ...) then ... else 
if ...'

> -----Original Message-----
> From: [email protected] 
> [mailto:[email protected]] On Behalf Of 
> Geert Josten
> Sent: dinsdag 15 september 2009 21:59
> To: General Mark Logic Developer Discussion
> Subject: RE: [MarkLogic Dev General] element construct with recursion
> 
> Hi Paul,
> 
> I believe that adding the following line to the element 
> construction should work:
> 
>         $node/namespace::*,
> 
> Kind regards,
> Geert
> 
> >
> 
> 
> Drs. G.P.H. Josten
> Consultant
> 
> 
> http://www.daidalos.nl/
> Daidalos BV
> Source of Innovation
> Hoekeindsehof 1-4
> 2665 JZ Bleiswijk
> Tel.: +31 (0) 10 850 1200
> Fax: +31 (0) 10 850 1199
> http://www.daidalos.nl/
> KvK 27164984
> De informatie - verzonden in of met dit emailbericht - is 
> afkomstig van Daidalos BV en is uitsluitend bestemd voor de 
> geadresseerde. Indien u dit bericht onbedoeld hebt ontvangen, 
> verzoeken wij u het te verwijderen. Aan dit bericht kunnen 
> geen rechten worden ontleend.
> 
> 
> > From: [email protected]
> > [mailto:[email protected]] On Behalf Of Paul M
> > Sent: dinsdag 15 september 2009 21:36
> > To: [email protected]
> > Subject: [MarkLogic Dev General] element construct with recursion
> >
> > define function remove-elements-deep
> >   ( $nodes as node()* ,
> >     $names as xs:string* )  as node()* {
> >
> >    for $node in $nodes
> >    return
> >      if ($node instance of element())
> >      then if (fn:name($node)=$names)
> >           then ()
> >           else element { fn:node-name($node)}
> >                 { $node/@*,
> >                   remove-elements-deep($node/node(), $names)}
> >      else if ($node instance of document-node())
> >      then remove-elements-deep($node/node(), $names)
> >      else $node
> >  }
> >
> >
> > let $in-xml-2 :=
> >
> > <in-xml xmlns="dns" xmlns:x="http://x";>
> >    <x:a>
> >       <b>b1</b>
> >       <c>c1</c>
> >    </x:a>
> >    <x:c>Mixed <bb>content</bb></x:c>
> > </in-xml>
> >
> > return
> > remove-elements-deep(
> >      $in-xml-2,
> >      'c')
> >
> > (:
> >
> > <in-xml xmlns="dns"><a xmlns="http://x";><b xmlns="dns">b1</b></a><c 
> > xmlns="http://x";>Mixed <bb xmlns="dns">content</bb></c></in-xml>
> >
> > The above expands prefixes to actually uri namespaces, and adds 
> > inherited parent namespaces. I assume during element 
> construction this 
> > occurs? Is there any method around this?  I understand it is 
> > equivalent xml, but it is a  bit more verbose.
> >
> >
> >
> 
> _______________________________________________
> General mailing list
> [email protected]
> http://xqzone.com/mailman/listinfo/general
> _______________________________________________
General mailing list
[email protected]
http://xqzone.com/mailman/listinfo/general

Reply via email to