FLWOR式let節メモ
んんー、こんな使い方もできるのかっていう。
courseLIst.xml
<courseList> <course genreNo="00"> <master instructorNo="00"/> </course> <course genreNo="01"> <master instructorNo="01"/> </course> </courseList>
instructorList.xml
<instructorList> <instructor no="00"><last>master</last><first>hoge</first></instructor> <instructor no="01"><last>master</last><first>piyo</first></instructor> </instructorList>
XQuery
let $course_seq := fn:doc("courseList.xml")//course let $inst_seq := fn:doc("instructorList.xml")//instructor let $inst := for $master in $course_seq/master return $inst_seq[@no=$master/@instructorNo] return $inst
let節の右辺にFLWOR式が書けるんですね。で、そのreturnがバインドされると。
result
<instructor no="00"> <last>master</last> <first>hoge</first> </instructor> <instructor no="01"> <last>master</last> <first>piyo</first> </instructor>
もしかしてfor節にも書けるのかな? 試す。仕様書読んだほうが早くて正確だけど。
XQuery
let $course_seq := fn:doc("courseList.xml")//course let $inst_seq := fn:doc("instructorList.xml")//instructor for $master in for $course in $course_seq return $course/master return $inst_seq[@no=$master/@instructorNo]
result
<instructor no="00"> <last>master</last> <first>hoge</first> </instructor> <instructor no="01"> <last>master</last> <first>piyo</first> </instructor>
やったー書けたよー\(^o^)/