XQuery 함수
XQuery 1.0, XPath 2.0 및 XSLT 2.0은 동일한 기능 라이브러리를 공유합니다.
XQuery 함수
XQuery는 XPath 표현식을 기반으로 합니다. XQuery 1.0과 XPath 2.0은 동일한 데이터 모델을 공유하고 동일한 기능과 연산자를 지원합니다.
XQuery에서 고유한 기능을 정의할 수도 있습니다.
XQuery 데이터 유형
XQuery는 XSD(XML Schema 1.0)와 동일한 데이터 유형을 공유합니다.
함수 호출의 예
함수 호출은 표현식이 나타날 수 있는 곳에 나타날 수 있습니다. 아래의 예를 보십시오.
예 1: 요소에서
<name>{upper-case($booktitle)}</name>
예 2: 경로 표현식의 술어에서
doc("books.xml")/bookstore/book[substring(title,1,5)='Harry']
예 3: let 절에서
let $name := (substring($booktitle,1,4))
XQuery 사용자 정의 함수
필요한 XQuery 함수를 찾을 수 없으면 직접 작성할 수 있습니다.
사용자 정의 함수는 쿼리 또는 별도의 라이브러리에서 정의할 수 있습니다.
통사론
declare function prefix:function_name($parameter as datatype)
as returnDatatype
{
...function code here...
};
사용자 정의 함수에 대한 참고 사항:
- 선언 함수 키워드 사용
- 함수의 이름은 접두사여야 합니다.
- 매개변수의 데이터 유형은 대부분 XML 스키마에 정의된 데이터 유형과 동일합니다.
- 함수의 본문은 중괄호로 둘러싸여야 합니다.
쿼리에 선언된 사용자 정의 함수의 예
declare function local:minPrice($p as xs:decimal?,$d as xs:decimal?)
as xs:decimal?
{
let $disc := ($p * $d) div 100
return ($p - $disc)
};
Below is an example of how to call the function above:
<minPrice>{local:minPrice($book/price,$book/discount)}</minPrice>