2013-01-24 10 views
3

는의 XQuery를 작성의 내가 생각할 수있는 가장 간단한 함수를 보자 :xquery 함수를 선언 할 곳은 어디입니까?

declare function local:identityFunction($v as xs:integer) 
{ 
    return ($v) 
}; 

는 내가 어디를 선언합니까?

exist-db와 basex를 모두 시도하지만 쿼리 프로세서 창에서 작성하면 일부 오류가 발생합니다 (일반적인 xqueries가 작동하지만).

예를 들어 basex는 "Expecting expression"메시지와 함께 불평합니다.

답변

4

일반 표현식 앞에 삽입 할 수 있습니다.

xquery 함수는 항상 마지막 (그리고 유일한) 값을 반환하기 때문에 실수로 'return'을 사용하지 않아도됩니다.

세미콜론 다음에 다른 표현식을 사용해야합니다.

따라서이 작동합니다 :

declare function local:identityFunction($v as xs:integer) 
{ 
    $v 
};  
local:identityFunction(17) 
+0

당신에게 대단히 감사합니다. 나는 그것이 단순한 문제라는 것을 알았다. xml 데이터베이스가 이러한 기능을 관리하는 방법을 물어볼 수 있습니까? 관계형 데이터베이스에서는이를 저장할 수 있습니다. 이 경우도 마찬가지입니까? – Kami

+0

데이터베이스에 대해서는 실제로 알지 못합니다.하지만 독립형 xquery에서는 표현식 내에 두거나 모듈에 넣을 수 있습니다. – BeniBela

+0

감사합니다. 모듈의 경우 이러한 선언이 모두 포함 된 간단한 텍스트 파일을 의미합니까? – Kami