Мова програмування XQuery визначає FLWOR (вимовляється як «flower») як вирази, які підтримують ітерацію та прив’язування змінних до проміжних результатів. FLWOR — це абревіатура: FOR, LET, WHERE, ORDER BY, RETURN. FLWOR майже аналогічний SELECT-FROM-WHERE SQL і може використовуватися для надання функціональних можливостей, подібних до XML-документів.
Значення кожної букви абревіатури
Як згадувалось раніше ,FLWOR це абревіатура, і кожна буква означає певний вираз.
F - for. Вибирає набір усіх вузлів L - let. Помістіть результат у змінну XQuery W - where. Вибирає вузол, заданий умовою. O - order by. Сортує вказані вузли відповідно до умов. R - return. Повертає кінцевий результат.
Приклад Ось для прикладу у нас є такий xml документ під назвою ("file.xml").Тут вказані школи(school) з їхніми id та учні(student) , що навчаються у даних школах. Також кожен учень має ім'я(Name),
прізвище (Surname), стать(Sex), та рік народження(BirthYear).Імена та прізвища вигадані. Будь-які збіжності випадкові. <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Schools> <School id="SH001"> <Students> <Student id="ST1SH001"> <Name>Sviatoslav</Name> <Surname>Kondera</Surname> <Sex>Man</Sex> <BirthYear>2002</BirthYear> </Student> <Student id="ST2SH001"> <Name>Orest</Name> <Surname>Rodtsevych</Surname> <Sex>Man</Sex> <BirthYear>2002</BirthYear> </Student> <Student id="ST3SH001"> <Name>Solomiya</Name> <Surname>Tymnyak</Surname> <Sex>Woman</Sex> <BirthYear>2005</BirthYear> </Student> </Students> </School> <School id="SH002"> <Students> <Student id="ST1SH002"> <Name>Yarina</Name> <Surname>Panteriy</Surname> <Sex>Woman</Sex> <BirthYear>2003</BirthYear> </Student> <Student id="S2SH002"> <Name>Nazar</Name> <Surname>Rodtsevych</Surname> <Sex>Man</Sex> <BirthYear>2005</BirthYear> </Student> </Students> </School> </Schools>Приклад запиту XQuery . У даному прикладі ми йдемо циклом по усіх учнях(Student) та створюємо змінну StudentYears , яка позначає кількість років учня. Далі ми сортуємо учнів по року народження та вибираємо учнів , які мають більше або рівне 18 років. Та повертаємо ім'я , прізвище та кількість років. for $student in doc("file.xml")//Student let $StudentYears:= year-from-date(current-date())- $student/BirthYear order by $student/BirthYear where $StudentYears>=18 return (concat("Name: ",$student/Name ," Surname: ",$student/Surname," Years: ",$StudentYears))Результат Запиту Name: Sviatoslav Surname: Kondera Years: 19 Name: Orest Surname: Rodtsevych Years: 19 Name: Yarina Surname: Panteriy Years: 18
Посилання
W3C XML Query (XQuery) - FLWOR Expressions Introduction to FLWOR https://web.archive.org/web/20111008001258/http://w3schools.com/xquery/xquery_flwor.asp https://www.w3schools.com/xml/xquery_flwor.asp