XQuery 구문
XQuery는 대소문자를 구분하며 XQuery 요소, 속성 및 변수는 유효한 XML 이름이어야 합니다.
XQuery 기본 구문 규칙
몇 가지 기본 구문 규칙:
- XQuery는 대소문자를 구분합니다.
- XQuery 요소, 속성 및 변수는 유효한 XML 이름이어야 합니다.
- XQuery 문자열 값은 작은따옴표나 큰따옴표로 묶일 수 있습니다.
- XQuery 변수는 $ 다음에 이름이 따라오는 것으로 정의됩니다(예: $bookstore).
- XQuery 주석은 (: 및 :)로 구분됩니다. 예: (: XQuery 주석 :)
XML 예제 문서
아래 예제에서 "books.xml" 문서를 사용할 것입니다(이전 장에서와 동일한 XML 파일).
XQuery 조건식
"If-Then-Else" 표현식은 XQuery에서 허용됩니다.
다음 예를 보십시오.
for $x in doc("books.xml")/bookstore/book
return if ($x/@category="children")
then <child>{data($x/title)}</child>
else <adult>{data($x/title)}</adult>
"if-then-else" 구문에 대한 참고 사항: if 표현식을 괄호로 묶어야 합니다. else는 필수이지만 else()일 수도 있습니다.
위 예제의 결과는 다음과 같습니다.
<adult>Everyday Italian</adult>
<child>Harry Potter</child>
<adult>XQuery Kick Start</adult>
<adult>Learning XML</adult>
XQuery 비교
XQuery에는 값을 비교하는 두 가지 방법이 있습니다.
1. 일반 비교: =, !=, <, <=, >, >=
2. 값 비교: eq, ne, lt, le, gt, ge
두 비교 방법의 차이점은 다음과 같습니다.
다음 식은 q 속성에 10보다 큰 값이 있는 경우 true를 반환합니다.
$bookstore//book/@q > 10
다음 표현식은 표현식에서 반환된 q 속성이 하나만 있고 해당 값이 10보다 큰 경우 true를 반환합니다. 둘 이상의 q가 반환되면 오류가 발생합니다.
$bookstore//book/@q gt 10