Is there a particular reason why I can't do this (mixing let with copy/modify):
declare namespace ddi = "http://www.icpsr.umich.edu/DDI"; let $codeBook := collection()[1]/ddi:codeBook let $titlStmt := $codeBook/ddi:stdyDscr/ddi:citation/ddi:titlStmt copy $titlStmt1 := $titlStmt modify ( rename node $titlStmt1 as QName('http://www.icpsr.umich.edu/DDI%27,%27CopyOfTitlStmt') ) return $titlStmt1
but this works: declare namespace ddi = "http://www.icpsr.umich.edu/DDI"; copy $titlStmt1 := collection()[1]/ddi:codeBook/ddi:stdyDscr/ddi:citation/ddi:titlStmt modify ( rename node $titlStmt1 as QName('http://www.icpsr.umich.edu/DDI%27,%27CopyOfTitlStmt') ) return $titlStmt1
thanks *P
Hi Pascal,
it comes down to a syntax error - there's a 'return' statement missing before the 'copy'. It should work like this:
*declare namespace ddi = "http://www.icpsr.umich.edu/DDI%22;* *let $codeBook := collection()[1]/ddi:codeBook* *let $titlStmt := $codeBook/ddi:stdyDscr/ddi:citation/ddi:titlStmt* *return copy $titlStmt1 := $titlStmt* *modify (* * rename node $titlStmt1 as* *QName('http://www.icpsr.umich.edu/DDI%27,%27CopyOfTitlStmt%27)* *)* *return $titlStmt1* * * I always check queries in the Query Editor of BaseX if I come across issues like this. Just as a hint ...
Cheers, Lukas
basex-talk@mailman.uni-konstanz.de