2014-03-06 1 views
1

루트 노드가 entity 인 XML 문서가 있습니다. 각 문서에 대해 얼마나 많은 노드를 가지고 있는지를 tender으로 계산하고 속성으로 entity에 추가하려고합니다.Zorba XQuery에서 속성을 추가하는 방법은 무엇입니까?

import module namespace file = "http://expath.org/ns/file"; 

for $file in file:list("../api/entity/p/", true(), "??????.xml") 
let $doc := doc(concat("../api/entity/p/", $file)) 
return 
    update insert attribute number_of_tenders {count($doc//tender)} into $doc/entity 

나는 조르바를 위해하지 않은, http://exist-db.org/exist/apps/doc/update_ext.xml을 다음했지만, 나는이 표준 XQuery를 짐작.

나는 오류 내가 잘못 뭐하는 거지

6,69: static error [err:XPST0003]: invalid expression: syntax error, unexpected expression (missing comma "," between expressions?) 

을 얻을?

답변

1

귀하의 업데이트 진술이 Zorba에 맞지 않을 것으로 판단됩니다. eXist는 XQuery 업데이트 1.0 초안을 구현합니다. http://www.w3.org/TR/xquery-update-10/

을 같이 아마 뭔가 : 특히

for $file in file:list("../api/entity/p/", true(), "??????.xml") 
let $doc := doc(concat("../api/entity/p/", $file)) 
return 
    insert node attribute number_of_tenders {count($doc//tender)} into $doc/entity 

http://www.w3.org/TR/xquery-update-10/#id-insert

+0

의 읽기가 네 그 것 나는 당신의 갱신이 대신을 준수해야하므로 조르바가 제대로, XQuery를 업데이트 1.0 사양을 implemenets 대신 믿는다 맞다. – wcandillon

+0

다음은 Zorba의 작동 예제입니다. http://try.zorba.io/queries/xquery/U%2FcxnnwOm8RG0mpsMI2hBikeIe%3D이 예제에서는 xquery 스크립팅을 사용하여 업데이트를 적용하고 결과를 반환합니다. – wcandillon