2012-10-04 5 views
1

XQJ API를 통해 eXist 데이터베이스를 쿼리하려고합니다. 따라서 데이터베이스의 여러 컬렉션 안에있는 여러 다른 문서에 적용 할 XQuery 파일이 있습니다.XQJ 연결의 기본/기본 모음을 설정하는 방법

제 질문은 문서/컬렉션에 대한 경로를 어떻게 설정할 수 있습니까? 특정 문서/콜렉션에만 XQuery를 적용하고 XQuery 문서 (doc ('path/to/doc') 함수 사용)에서 직접 경로를 설정할 수 없습니다. 왜냐하면 동일한 XQuery를 여러 문서에 적용하기를 원하기 때문입니다. 다른 경로를 가진 파일.

Java 변수를 Xquery 표현식에 바인드 할 수 있지만 XQJ API로이 태스크를 수행하는보다 우아한 방법이 있어야합니다. 조금이라도 나를 도울 수 있기를 바랍니다.

+0

XQY가 경로 관리에 대한 책임이 있거나 Java가있는 것처럼 보입니다.이 경우 경로를 외부 변수로 XQY에 전달해야합니다. 나는 더 우아한 방법이 있는지 확신하지 못한다. – wst

답변

1

특정 문서 URI를 미리 알고 있다면 URI 묶음을 xs : 문자열 시퀀스로 바인딩 할 수 있습니다. 그런 다음 XQuery 표현식에서 URI를 반복하여 필요에 따라 각 URI에 대해 작업을 수행 할 수 있습니다.

declare variable $uris as xs:string* external; 

for $uri in $uris 
return (
(: perform operation against $uri :) 
) 

또는 컬렉션의 URI를 알고있는 경우, 존재 XQJ의 API의 이후 버전에서

declare variable $collection-uri as xs:string external; 

for $document-node in fn:collection($collection-uri) 
return (
    (: perform operation against document-node() :) 
) 

, 당신은 XQJ 모두에 반하는 기본 컨텍스트로 컬렉션을 설정할 수 있습니다 표준 및 XQuery 1.0/3.0 표준을 사용하지만 다른 사용자는이 기능을 아주 나 빠지고 싶어합니다.

+0

OK, 여러분, 고맙습니다. 변수 바인딩이 주위에 나올 수 있기를 바랍니다. – chris

관련 문제