Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ППТС-2 / Лекции / Lect4-05.doc
Скачиваний:
6
Добавлен:
12.05.2015
Размер:
645.12 Кб
Скачать

5.1.1.4.4. Булевские функции и операторы

Две функции-конструкторы

fn:true() as xs:boolean

и

fn:false() as xs:boolean

возвращают соответственно значения trueиfalse.

Для булевских данных определены следующие операторы:

  • op:boolean-equal($value1 as xs:boolean, $value2 as xs:boolean) as xs:boolean– возвращаетtrueв случае, если оба аргумента равныtrueили оба аргумента равныfalse, в противном случае возвращаетfalse;

  • op:boolean-less-than($arg1 as xs:boolean, $arg2 as xs:boolean) as xs:boolean– возвращаетtrueв случае, если первый аргумент равен false, а второй –true, в противном случае возвращаетfalse;

  • op:boolean-greater-than($arg1 as xs:boolean, $arg2 as xs:boolean) as xs:boolean– возвращаетtrueв случае, если первый аргумент равенtrue, а второй –false, в противном случае возвращаетfalse;

Функция

fn:not($arg as item()*) as xs:boolean

возвращает false в случае, если первый аргумент приводится к булевскому значению true, в противном случае возвращаетtrue.

Примеры использования булевских функций и операторов:

1. fn:true() – возвращает true.

2. op:boolean-equal(true, false) – возвращает false.

3. op:boolean-less-than(true, false) – возвращает false.

4. op:boolean-greater-than(true, false) – возвращает true.

5. fn:not(false) – возвращает true.

6. fn:not(3<5) – возвращаетfalse.

5.1.1.4.5. Функции и операторы для продолжительности, дат и времени

Функции и операторы дат и времени определены для следующих типов данных: s:dateTime,xs:date,xs:time,xs:gYearMonth,xs:gYear,xs:gMonthDay,xs:gMonthиxs:gDay, а функции продолжительности определены для типов данныхxs:duration,xs:yearMonthDurationиxs:dayTimeDuration.

Для типов данных xs:gYearMonth,xs:gYear,xs:gMonthDay,xs:gMonthиxs:gDay, а также типа данныхxs:durationопределены только сравнения на равенство и неравенство.

Для продолжительности, дат и времени определены следующие группы операторов и функций:

  • операторы сравнения;

  • функции извлечения компонент;

  • арифметические операторы для продолжительности, дат и времени.

5.1.1.4.5.1. Операторы сравнения

В XPath и XQuery для продолжительности, дат и времени определены следующие операторы сравнения:

  • op:yearMonthDuration-less-than($arg1 as xs:yearMonthDuration, $arg2 as xs:yearMonthDuration) as xs:Boolean– возвращаетtrueтолько в том случае, если$arg1меньше$arg2, в противном случае возвращаетfalse;

  • op:yearMonthDuration-greater-than($arg1 as xs:yearMonthDuration, $arg2 as xs:yearMonthDuration) as xs:boolean– возвращаетtrueтолько в том случае, если$arg1больше$arg2, в противном случае возвращаетfalse;

  • op:dayTimeDuration-less-than($arg1 as xs:dayTimeDuration, $arg2 as xs:dayTimeDuration) as xs:boolean– возвращаетtrueтолько в том случае, если$arg1меньше$arg2, в противном случае возвращаетfalse;

  • op:dayTimeDuration-greater-than($arg1 as xs:dayTimeDuration, $arg2 as xs:dayTimeDuration) as xs:boolean– возвращаетtrueтолько в том случае, если$arg1больше$arg2, в противном случае возвращаетfalse;

  • op:duration-equal($arg1 as xs:duration, $arg2 as xs:duration) as xs:boolean– возвращаетtrueтолько в том случае, если компонентыxs:yearMonthDurationиxs:dayTimeDurationв$arg1и$arg2равны друг другу, в противном случае возвращаетfalse;

  • op:dateTime-equal($arg1 as xs:dateTime, $arg2 as xs:dateTime) as xs:boolean– возвращаетtrueтолько в том случае, если$arg1и$arg2равны друг другу, в противном случае возвращаетfalse;

  • op:dateTime-less-than($arg1 as xs:dateTime, $arg2 as xs:dateTime) as xs:boolean– возвращаетtrueтолько в том случае, если$arg1меньше$arg2, в противном случае возвращаетfalse;

  • op:dateTime-greater-than( $arg1 as xs:dateTime, $arg2 as xs:dateTime) as s:boolean– возвращаетtrueтолько в том случае, если$arg1больше$arg2, в противном случае возвращаетfalse;

  • op:date-equal($arg1 as xs:date, $arg2 as xs:date) as xs:boolean– возвращаетtrueтолько в том случае, если$arg1равен$arg2, в противном случае возвращаетfalse;

  • op:date-less-than($arg1 as xs:date, $arg2 as xs:date) as xs:boolean– возвращаетtrueтолько в том случае, если$arg1меньше$arg2, в противном случае возвращаетfalse;

  • op:date-greater-than($arg1 as xs:date, $arg2 as xs:date) as xs:boolean – возвращаетtrueтолько в том случае, если$arg1больше$arg2, в противном случае возвращаетfalse;

  • op:time-equal($arg1 as xs:time, $arg2 as xs:time) as xs:boolean– возвращаетtrueтолько в том случае, если$arg1и$arg2, преобразованные к типуxs:dateTime, равны друг другу, в противном случае возвращаетfalse;

  • op:time-less-than($arg1 as xs:time, $arg2 as xs:time) as xs:boolean– возвращаетtrueтолько в том случае, если для$arg1и$arg2, преобразованных к типуxs:dateTime, выполняется отношение$arg1меньше$arg2, в противном случае возвращаетfalse;

  • op:time-greater-than($arg1 as xs:time, $arg2 as xs:time) as xs:boolean– возвращаетtrueтолько в том случае, если для$arg1и$arg2, преобразованных к типуxs:dateTime, выполняется отношение$arg1больше$arg2, в противном случае возвращаетfalse;

  • op:gYearMonth-equal($arg1 as xs:gYearMonth, $arg2 as xs:gYearMonth) as xs:boolean– возвращаетtrueтолько в том случае, если$arg1и$arg2, преобразованные к типуxs:dateTime, равны друг другу, в противном случае возвращаетfalse;

  • op:gYear-equal($arg1 as xs:gYear, $arg2 as xs:gYear) as xs:boolean– возвращаетtrueтолько в том случае, если$arg1и$arg2, преобразованные к типуxs:dateTime, равны друг другу, в противном случае возвращаетfalse;

  • op:gMonth-equal($arg1 as xs:gMonth, $arg2 as xs:gMonth) as xs:boolean– возвращаетtrueтолько в том случае, если$arg1и$arg2, преобразованные к типуxs:dateTime, равны друг другу, в противном случае возвращаетfalse;

  • op:gDay-equal($arg1 as xs:gDay, $arg2 as xs:gDay) as xs:boolean– возвращаетtrueтолько в том случае, если$arg1и$arg2, преобразованные к типуxs:dateTime, равны друг другу, в противном случае возвращаетfalse.

Примеры использования операторов сравнения для продолжительности, дат и времени:

1. op:yearMonthDuration-less-than (xs:yearMonthDuration("P2Y"), xs:yearMonthDuration("P1Y11M")) – возвращает true.

2. op:dayTimeDuration-greater-than(xs:dayTimeDuration ("PT10D"), xs:dayTimeDuration ("PT10D11H")) – возвращает false.

3. op:duration-equal(xs:duration("PT10D"), xs:duration("PT9D24H")) – возвращает true.

4. op:dateTime-less-than(xs:dateTime("2002-05-12T00:00:00"),

xs:dateTime("2002-05-12T12:00:00")) – возвращает true.

5. op:date-equal(xs:date("2007-12-30"),

xs:date("2007-12-29")) – возвращаетfalse.

6. op:time-less-than(xs:time("10:15:00"),

xs:time("12:00:40")) – возвращает true.

7. op:gYearMonth-equal(xs:gYearMonth("2005-09"),

xs:gYearMonth("2005-09")) – возвращает true.

8. op:gYear-equal(gYear("2005"),

gYear("2004")) – возвращает false.

9. op:gMonth-equal(xs:gMonth("-12-"),

Xs:gMonth("-09-")) – возвращает false.

10. op:gDay-equal(xs:gDay("-15"),

xs:gDay("-15")) – возвращаетtrue.

Соседние файлы в папке Лекции