宿題の手伝いが必要です。Person.xml と passedExams.xml の 2 つの XML ファイルがあります。
Person.xml フォーム ->
<listWrapper>
<items xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="person">
<address>Random street 2, Neverland</address>
<telephoneNumber>555-1-612-9999</telephoneNumber>
<name>Captain</name>
<sid>35168589</sid>
<surname>Obvious</surname>
</items>
<items xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="person">
<address>Random avenue, Neverland</address>
<telephoneNumber>555-1-123-9999</telephoneNumber>
<name>Gabe</name>
<sid>36431731</sid>
<surname>Newell</surname>
</items>
</listWrapper>
passedExams.xml フォーム ->
<listWrapper>
<items xsi:type="passedExams" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<id>
<ExamID>BM3409</ExamID>
<sid>36431731</sid>
</id>
<month>7</month>
<grade>4</grade>
</items>
<items xsi:type="passedExams" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<id>
<ExamID>MV7402</ExamID>
<sid>36441189</sid>
</id>
<month>7</month>
<grade>4</grade>
</items>
</listWrapper>
これらの 2 つのファイルを使用して、y か月に x 試験に合格したすべての人をリストしようとしています。たとえば、1 年の 10 か月目に 2 つの試験に合格したすべての人を取得します。私はそれが得意ではないので、良いクエリを書くのに苦労しています。これは私がこれまでに得たものです:
for $exam in doc("pasedExams.xml")/listWrapper//items[month = 1]
where $person in doc("Person.xml")/listWrapper/items[$exam/sid = $person/sid] satisfies (count($exam/sid) = 2)
return
<info>
$person
</info>
ここでは、デモ用に x = 1 および y = 2 とします。ユーザーは、プログラムの開始時にパラメーターを選択できます。この背後にあるロジックを明確にするために、1 月に行われた試験を反復して、試験の SID (学生 ID) を Person.xml の SID と一致させようとしています。 SID の発生数は、その学生が合格した試験の数であるため、passedExams での SID の発生。Stylus Studio でこれを実行すると、次のエラーが表示されます: [DataDirect][XQuery][err:XPST0003]Error at line 2, column 14. Expected "return", but occured "in".
どうすればこれを機能させることができますか?